processing fixes, additional death info
This commit is contained in:
parent
23e8120c82
commit
7c522808f2
@ -2,11 +2,13 @@ package mcwebhooks;
|
|||||||
|
|
||||||
final class DeathHookEvent extends PlayerHookEvent
|
final class DeathHookEvent extends PlayerHookEvent
|
||||||
{
|
{
|
||||||
public String deathMessage;
|
public String deathType;
|
||||||
|
public String killerName;
|
||||||
|
|
||||||
public DeathHookEvent(String displayName, String deathMessage) {
|
public DeathHookEvent(String displayName, String deathType) {
|
||||||
super(displayName);
|
super(displayName);
|
||||||
this.type = "death";
|
this.type = "death";
|
||||||
this.deathMessage = deathMessage;
|
this.deathType = deathType;
|
||||||
|
this.killerName = "?";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,6 @@ final class JoinHookEvent extends PlayerHookEvent
|
|||||||
{
|
{
|
||||||
public JoinHookEvent(String displayName) {
|
public JoinHookEvent(String displayName) {
|
||||||
super(displayName);
|
super(displayName);
|
||||||
this.type = "login";
|
this.type = "join";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
package mcwebhooks;
|
package mcwebhooks;
|
||||||
|
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
|
import org.bukkit.event.entity.EntityDeathEvent;
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||||
import org.apache.http.impl.client.HttpClientBuilder;
|
import org.apache.http.impl.client.HttpClientBuilder;
|
||||||
import org.apache.http.client.HttpClient;
|
import org.apache.http.client.HttpClient;
|
||||||
import org.apache.http.client.methods.HttpPost;
|
import org.apache.http.client.methods.HttpPost;
|
||||||
@ -20,21 +23,18 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|||||||
|
|
||||||
public final class MCWebHooks extends JavaPlugin implements Listener {
|
public final class MCWebHooks extends JavaPlugin implements Listener {
|
||||||
private Config config;
|
private Config config;
|
||||||
private HttpClient httpClient;
|
|
||||||
private ObjectMapper mapper;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
this.mapper = new ObjectMapper();
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
try {
|
try {
|
||||||
getLogger().info("Loading config");
|
getLogger().info("Loading config");
|
||||||
this.config = this.mapper.readValue(new File("plugins/webhooks.json"), Config.class);
|
this.config = mapper.readValue(new File("plugins/webhooks.json"), Config.class);
|
||||||
getLogger().info(String.format("Hooks will be sent to: %s", this.config.hookUrl));
|
getLogger().info(String.format("Hooks will be sent to: %s", this.config.hookUrl));
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
getLogger().info("Config loading failed");
|
getLogger().info("Config loading failed");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
this.httpClient = HttpClientBuilder.create().build();
|
|
||||||
getServer().getPluginManager().registerEvents(this, this);
|
getServer().getPluginManager().registerEvents(this, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -50,17 +50,26 @@ public final class MCWebHooks extends JavaPlugin implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onPlayerDeath(PlayerDeathEvent event) {
|
public void onEntityDeath(EntityDeathEvent event) {
|
||||||
DeathHookEvent hookEvent = new DeathHookEvent(event.getEntity().getDisplayName(), event.getDeathMessage());
|
Entity ent = event.getEntity();
|
||||||
this.sendHookedEvent(hookEvent);
|
|
||||||
|
EntityDamageEvent entDamageEvent = ent.getLastDamageCause();
|
||||||
|
if (ent instanceof Player) {
|
||||||
|
DamageCause damageCause = entDamageEvent.getCause();
|
||||||
|
Player p = (Player)ent;
|
||||||
|
DeathHookEvent hookEvent = new DeathHookEvent(p.getDisplayName(), damageCause.toString());
|
||||||
|
this.sendHookedEvent(hookEvent);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final void sendHookedEvent(HookEvent event) {
|
private final void sendHookedEvent(HookEvent event) {
|
||||||
getLogger().info(String.format("Event: %s", event.type));
|
getLogger().info(String.format("Event: %s", event.type));
|
||||||
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
|
HttpClient httpClient = HttpClientBuilder.create().build();
|
||||||
HttpPost request = new HttpPost(this.config.hookUrl);
|
HttpPost request = new HttpPost(this.config.hookUrl);
|
||||||
request.addHeader("content-type", "application/json");
|
request.addHeader("content-type", "application/json");
|
||||||
try {
|
try {
|
||||||
StringEntity params = new StringEntity(this.mapper.writeValueAsString(event));
|
StringEntity params = new StringEntity(mapper.writeValueAsString(event));
|
||||||
request.setEntity(params);
|
request.setEntity(params);
|
||||||
} catch (JsonProcessingException | UnsupportedEncodingException e1) {
|
} catch (JsonProcessingException | UnsupportedEncodingException e1) {
|
||||||
getLogger().info("Parsing failed");
|
getLogger().info("Parsing failed");
|
||||||
@ -68,7 +77,7 @@ public final class MCWebHooks extends JavaPlugin implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
this.httpClient.execute(request);
|
httpClient.execute(request);
|
||||||
getLogger().info("Request sent");
|
getLogger().info("Request sent");
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
getLogger().info("Request failed");
|
getLogger().info("Request failed");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user