This commit is contained in:
Timofey.Kovalev 2021-06-08 06:36:48 +11:00
parent dbd58443b9
commit 66a9e8d209
4 changed files with 40 additions and 20 deletions

View File

@ -2,5 +2,4 @@ all: build
build:
export JAVA_HOME=/usr/lib/jvm/default-java
mvn clean compile assembly:single

View File

@ -14,8 +14,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<repositories>

View File

@ -5,10 +5,10 @@ final class DeathHookEvent extends PlayerHookEvent
public String deathType;
public String killerName;
public DeathHookEvent(String displayName, String deathType) {
public DeathHookEvent(String displayName, String deathType, String killerName) {
super(displayName);
this.type = "death";
this.deathType = deathType;
this.killerName = "?";
this.killerName = killerName;
}
}

View File

@ -1,5 +1,6 @@
package mcwebhooks;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
@ -13,12 +14,15 @@ 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;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageByBlockEvent;
import org.bukkit.event.entity.ArrowBodyCountChangeEvent;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.conn.HttpHostConnectException;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
@ -74,16 +78,28 @@ public final class MCWebHooks extends JavaPlugin implements Listener {
if (ent instanceof Player) {
Player p = (Player)ent;
DamageCause damageCause = entDamageEvent.getCause();
DeathHookEvent hookEvent = new DeathHookEvent(p.getDisplayName(), damageCause.toString());
String killer = "";
if (entDamageEvent instanceof EntityDamageByEntityEvent) {
EntityDamageByEntityEvent entByEntityEvent = (EntityDamageByEntityEvent)entDamageEvent;
killer = entByEntityEvent.getDamager().getName();
}
if (entDamageEvent instanceof EntityDamageByBlockEvent) {
EntityDamageByBlockEvent entByEntityEvent = (EntityDamageByBlockEvent)entDamageEvent;
killer = entByEntityEvent.getDamager().toString();
}
DeathHookEvent hookEvent = new DeathHookEvent(p.getDisplayName(), damageCause.toString(), killer);
this.sendHookedEvent(hookEvent);
} else if (ent instanceof LivingEntity) {
LivingEntity e = (LivingEntity)ent;
if (e.getKiller() == null) {
LivingEntity le = (LivingEntity)ent;
if (le.getKiller() == null) {
return;
}
PlayerKilledEntityEvent hookEvent = new PlayerKilledEntityEvent(
e.getKiller().getDisplayName(),
e.getName()
le.getKiller().getDisplayName(),
le.getName()
);
this.sendHookedEvent(hookEvent);
}
@ -108,17 +124,22 @@ public final class MCWebHooks extends JavaPlugin implements Listener {
try {
StringEntity params = new StringEntity(mapper.writeValueAsString(event));
request.setEntity(params);
} catch (JsonProcessingException | UnsupportedEncodingException e1) {
} catch (JsonProcessingException | UnsupportedEncodingException e) {
getLogger().info("Parsing failed");
e1.printStackTrace();
e.printStackTrace();
return;
}
try {
httpClient.execute(request);
getLogger().info("Request sent");
} catch (IOException e) {
getLogger().info("Request failed");
e.printStackTrace();
}
Bukkit.getScheduler().runTaskAsynchronously(this, () -> {
try {
httpClient.execute(request);
getLogger().info("Request sent");
} catch (HttpHostConnectException e) {
getLogger().info(String.format("Failed to connect to: [%s]", this.config.hookUrl));
} catch (IOException e) {
getLogger().info("Request failed");
e.printStackTrace();
}
});
}
}