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>
<artifactId>webhooks</artifactId>
<version>0.1</version>
<version>0.2</version>
<name>mcwebhooks</name>
<!-- FIXME change it to the project's website -->
@ -61,6 +61,18 @@
<artifactId>httpclient</artifactId>
<version>4.3.6</version>
</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>
<build>
@ -110,7 +122,7 @@
<version>3.0.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
<descriptorRef>full</descriptorRef>
</descriptorRefs>
<archive>
<manifest>

View File

@ -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;
@ -59,16 +62,40 @@ public final class MCWebHooks extends JavaPlugin implements Listener {
}
@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;
DeathHookEvent hookEvent = new DeathHookEvent(p.getDisplayName(), damageCause.toString());
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) {
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) {

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