diff --git a/build.bat b/build.bat new file mode 100644 index 0000000..7e7c322 --- /dev/null +++ b/build.bat @@ -0,0 +1 @@ +mvn clean compile assembly:single \ No newline at end of file diff --git a/src/main/java/mcwebhooks/DeathHookEvent.java b/src/main/java/mcwebhooks/DeathHookEvent.java index ea68400..e2fca43 100644 --- a/src/main/java/mcwebhooks/DeathHookEvent.java +++ b/src/main/java/mcwebhooks/DeathHookEvent.java @@ -2,11 +2,13 @@ package mcwebhooks; 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); this.type = "death"; - this.deathMessage = deathMessage; + this.deathType = deathType; + this.killerName = "?"; } } diff --git a/src/main/java/mcwebhooks/JoinHookEvent.java b/src/main/java/mcwebhooks/JoinHookEvent.java index 3759dbd..89136d7 100644 --- a/src/main/java/mcwebhooks/JoinHookEvent.java +++ b/src/main/java/mcwebhooks/JoinHookEvent.java @@ -4,6 +4,6 @@ final class JoinHookEvent extends PlayerHookEvent { public JoinHookEvent(String displayName) { super(displayName); - this.type = "login"; + this.type = "join"; } } diff --git a/src/main/java/mcwebhooks/MCWebHooks.java b/src/main/java/mcwebhooks/MCWebHooks.java index d45c730..28fe445 100644 --- a/src/main/java/mcwebhooks/MCWebHooks.java +++ b/src/main/java/mcwebhooks/MCWebHooks.java @@ -1,11 +1,14 @@ package mcwebhooks; 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.Listener; 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.client.HttpClient; 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 { private Config config; - private HttpClient httpClient; - private ObjectMapper mapper; @Override public void onEnable() { - this.mapper = new ObjectMapper(); + ObjectMapper mapper = new ObjectMapper(); try { 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)); } catch (IOException e) { getLogger().info("Config loading failed"); e.printStackTrace(); } - this.httpClient = HttpClientBuilder.create().build(); getServer().getPluginManager().registerEvents(this, this); } @@ -50,17 +50,26 @@ public final class MCWebHooks extends JavaPlugin implements Listener { } @EventHandler - public void onPlayerDeath(PlayerDeathEvent event) { - DeathHookEvent hookEvent = new DeathHookEvent(event.getEntity().getDisplayName(), event.getDeathMessage()); - this.sendHookedEvent(hookEvent); + public void onEntityDeath(EntityDeathEvent event) { + Entity ent = event.getEntity(); + + 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) { getLogger().info(String.format("Event: %s", event.type)); + ObjectMapper mapper = new ObjectMapper(); + HttpClient httpClient = HttpClientBuilder.create().build(); HttpPost request = new HttpPost(this.config.hookUrl); request.addHeader("content-type", "application/json"); try { - StringEntity params = new StringEntity(this.mapper.writeValueAsString(event)); + StringEntity params = new StringEntity(mapper.writeValueAsString(event)); request.setEntity(params); } catch (JsonProcessingException | UnsupportedEncodingException e1) { getLogger().info("Parsing failed"); @@ -68,7 +77,7 @@ public final class MCWebHooks extends JavaPlugin implements Listener { return; } try { - this.httpClient.execute(request); + httpClient.execute(request); getLogger().info("Request sent"); } catch (IOException e) { getLogger().info("Request failed");