player killing things, level change

This commit is contained in:
smsteel 2019-02-09 19:52:21 +03:00
parent b4a2d626d3
commit e9edd30acc
4 changed files with 67 additions and 4 deletions

16
pom.xml
View File

@ -6,7 +6,7 @@
<groupId>org.mc</groupId> <groupId>org.mc</groupId>
<artifactId>webhooks</artifactId> <artifactId>webhooks</artifactId>
<version>0.1</version> <version>0.2</version>
<name>mcwebhooks</name> <name>mcwebhooks</name>
<!-- FIXME change it to the project's website --> <!-- FIXME change it to the project's website -->
@ -61,6 +61,18 @@
<artifactId>httpclient</artifactId> <artifactId>httpclient</artifactId>
<version>4.3.6</version> <version>4.3.6</version>
</dependency> </dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpasyncclient</artifactId>
<version>4.1.4</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore-nio</artifactId>
<version>4.4.11</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
@ -110,7 +122,7 @@
<version>3.0.0</version> <version>3.0.0</version>
<configuration> <configuration>
<descriptorRefs> <descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef> <descriptorRef>full</descriptorRef>
</descriptorRefs> </descriptorRefs>
<archive> <archive>
<manifest> <manifest>

View File

@ -2,11 +2,14 @@ package mcwebhooks;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player; 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.player.PlayerQuitEvent; 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.EntityDamageEvent;
import org.bukkit.event.entity.EntityDeathEvent; import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
@ -58,19 +61,43 @@ public final class MCWebHooks extends JavaPlugin implements Listener {
this.sendHookedEvent(hookEvent); this.sendHookedEvent(hookEvent);
} }
@EventHandler
public void onKick(PlayerKickEvent event) {
QuitHookEvent hookEvent = new QuitHookEvent(event.getPlayer().getDisplayName());
this.sendHookedEvent(hookEvent);
}
@EventHandler @EventHandler
public void onEntityDeath(EntityDeathEvent event) { public void onEntityDeath(EntityDeathEvent event) {
Entity ent = event.getEntity(); Entity ent = event.getEntity();
EntityDamageEvent entDamageEvent = ent.getLastDamageCause(); EntityDamageEvent entDamageEvent = ent.getLastDamageCause();
if (ent instanceof Player) { if (ent instanceof Player) {
DamageCause damageCause = entDamageEvent.getCause();
Player p = (Player)ent; Player p = (Player)ent;
DamageCause damageCause = entDamageEvent.getCause();
DeathHookEvent hookEvent = new DeathHookEvent(p.getDisplayName(), damageCause.toString()); DeathHookEvent hookEvent = new DeathHookEvent(p.getDisplayName(), damageCause.toString());
this.sendHookedEvent(hookEvent); 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) { 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(); ObjectMapper mapper = new ObjectMapper();

View File

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

View File

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