From e9edd30acce68d00bb58749e4222108380a2128e Mon Sep 17 00:00:00 2001 From: smsteel Date: Sat, 9 Feb 2019 19:52:21 +0300 Subject: [PATCH] player killing things, level change --- pom.xml | 16 ++++++++-- src/main/java/mcwebhooks/MCWebHooks.java | 31 +++++++++++++++++-- .../mcwebhooks/PlayerKilledEntityEvent.java | 12 +++++++ .../PlayerLevelChangeHookEvent.java | 12 +++++++ 4 files changed, 67 insertions(+), 4 deletions(-) create mode 100644 src/main/java/mcwebhooks/PlayerKilledEntityEvent.java create mode 100644 src/main/java/mcwebhooks/PlayerLevelChangeHookEvent.java diff --git a/pom.xml b/pom.xml index a4ea47e..12181ba 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.mc webhooks - 0.1 + 0.2 mcwebhooks @@ -61,6 +61,18 @@ httpclient 4.3.6 + + + org.apache.httpcomponents + httpasyncclient + 4.1.4 + + + + org.apache.httpcomponents + httpcore-nio + 4.4.11 + @@ -110,7 +122,7 @@ 3.0.0 - jar-with-dependencies + full diff --git a/src/main/java/mcwebhooks/MCWebHooks.java b/src/main/java/mcwebhooks/MCWebHooks.java index f954c2e..63736c7 100644 --- a/src/main/java/mcwebhooks/MCWebHooks.java +++ b/src/main/java/mcwebhooks/MCWebHooks.java @@ -2,11 +2,14 @@ package mcwebhooks; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; 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.player.PlayerQuitEvent; +import org.bukkit.event.player.PlayerKickEvent; +import org.bukkit.event.player.PlayerLevelChangeEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDeathEvent; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; @@ -58,19 +61,43 @@ public final class MCWebHooks extends JavaPlugin implements Listener { this.sendHookedEvent(hookEvent); } + @EventHandler + public void onKick(PlayerKickEvent event) { + QuitHookEvent hookEvent = new QuitHookEvent(event.getPlayer().getDisplayName()); + this.sendHookedEvent(hookEvent); + } + @EventHandler 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; + DamageCause damageCause = entDamageEvent.getCause(); DeathHookEvent hookEvent = new DeathHookEvent(p.getDisplayName(), damageCause.toString()); this.sendHookedEvent(hookEvent); + } else if (ent instanceof LivingEntity) { + LivingEntity e = (LivingEntity)ent; + if (e.getKiller() == null) { + return; + } + PlayerKilledEntityEvent hookEvent = new PlayerKilledEntityEvent( + e.getKiller().getDisplayName(), + e.getName() + ); + this.sendHookedEvent(hookEvent); } } + @EventHandler + public void onPlayerLevelChange(PlayerLevelChangeEvent event) { + PlayerLevelChangeHookEvent hookEvent = new PlayerLevelChangeHookEvent( + event.getPlayer().getDisplayName(), + event.getNewLevel() + ); + this.sendHookedEvent(hookEvent); + } + private final void sendHookedEvent(HookEvent event) { getLogger().info(String.format("Event: %s", event.type)); ObjectMapper mapper = new ObjectMapper(); diff --git a/src/main/java/mcwebhooks/PlayerKilledEntityEvent.java b/src/main/java/mcwebhooks/PlayerKilledEntityEvent.java new file mode 100644 index 0000000..b856bd1 --- /dev/null +++ b/src/main/java/mcwebhooks/PlayerKilledEntityEvent.java @@ -0,0 +1,12 @@ +package mcwebhooks; + +final class PlayerKilledEntityEvent extends PlayerHookEvent +{ + public String entityName; + + public PlayerKilledEntityEvent(String displayName, String entityName) { + super(displayName); + this.type = "playerKilledEntity"; + this.entityName = entityName; + } +} diff --git a/src/main/java/mcwebhooks/PlayerLevelChangeHookEvent.java b/src/main/java/mcwebhooks/PlayerLevelChangeHookEvent.java new file mode 100644 index 0000000..92169e8 --- /dev/null +++ b/src/main/java/mcwebhooks/PlayerLevelChangeHookEvent.java @@ -0,0 +1,12 @@ +package mcwebhooks; + +final class PlayerLevelChangeHookEvent extends PlayerHookEvent +{ + public int newLevel; + + public PlayerLevelChangeHookEvent(String displayName, int newLevel) { + super(displayName); + this.type = "playerLevelChange"; + this.newLevel = newLevel; + } +}