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;
+ }
+}