commit
This commit is contained in:
1
Makefile
1
Makefile
@ -2,5 +2,4 @@ all: build
|
|||||||
|
|
||||||
|
|
||||||
build:
|
build:
|
||||||
export JAVA_HOME=/usr/lib/jvm/default-java
|
|
||||||
mvn clean compile assembly:single
|
mvn clean compile assembly:single
|
4
pom.xml
4
pom.xml
@ -14,8 +14,8 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<maven.compiler.source>1.7</maven.compiler.source>
|
<maven.compiler.source>1.8</maven.compiler.source>
|
||||||
<maven.compiler.target>1.7</maven.compiler.target>
|
<maven.compiler.target>1.8</maven.compiler.target>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<repositories>
|
<repositories>
|
||||||
|
@ -5,10 +5,10 @@ final class DeathHookEvent extends PlayerHookEvent
|
|||||||
public String deathType;
|
public String deathType;
|
||||||
public String killerName;
|
public String killerName;
|
||||||
|
|
||||||
public DeathHookEvent(String displayName, String deathType) {
|
public DeathHookEvent(String displayName, String deathType, String killerName) {
|
||||||
super(displayName);
|
super(displayName);
|
||||||
this.type = "death";
|
this.type = "death";
|
||||||
this.deathType = deathType;
|
this.deathType = deathType;
|
||||||
this.killerName = "?";
|
this.killerName = killerName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package mcwebhooks;
|
package mcwebhooks;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
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.LivingEntity;
|
||||||
@ -13,12 +14,15 @@ 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;
|
||||||
|
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.impl.client.HttpClientBuilder;
|
||||||
import org.apache.http.client.HttpClient;
|
import org.apache.http.client.HttpClient;
|
||||||
import org.apache.http.client.methods.HttpPost;
|
import org.apache.http.client.methods.HttpPost;
|
||||||
import org.apache.http.entity.StringEntity;
|
import org.apache.http.entity.StringEntity;
|
||||||
|
import org.apache.http.conn.HttpHostConnectException;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
@ -74,16 +78,28 @@ public final class MCWebHooks extends JavaPlugin implements Listener {
|
|||||||
if (ent instanceof Player) {
|
if (ent instanceof Player) {
|
||||||
Player p = (Player)ent;
|
Player p = (Player)ent;
|
||||||
DamageCause damageCause = entDamageEvent.getCause();
|
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);
|
this.sendHookedEvent(hookEvent);
|
||||||
} else if (ent instanceof LivingEntity) {
|
} else if (ent instanceof LivingEntity) {
|
||||||
LivingEntity e = (LivingEntity)ent;
|
LivingEntity le = (LivingEntity)ent;
|
||||||
if (e.getKiller() == null) {
|
if (le.getKiller() == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PlayerKilledEntityEvent hookEvent = new PlayerKilledEntityEvent(
|
PlayerKilledEntityEvent hookEvent = new PlayerKilledEntityEvent(
|
||||||
e.getKiller().getDisplayName(),
|
le.getKiller().getDisplayName(),
|
||||||
e.getName()
|
le.getName()
|
||||||
);
|
);
|
||||||
this.sendHookedEvent(hookEvent);
|
this.sendHookedEvent(hookEvent);
|
||||||
}
|
}
|
||||||
@ -108,17 +124,22 @@ public final class MCWebHooks extends JavaPlugin implements Listener {
|
|||||||
try {
|
try {
|
||||||
StringEntity params = new StringEntity(mapper.writeValueAsString(event));
|
StringEntity params = new StringEntity(mapper.writeValueAsString(event));
|
||||||
request.setEntity(params);
|
request.setEntity(params);
|
||||||
} catch (JsonProcessingException | UnsupportedEncodingException e1) {
|
} catch (JsonProcessingException | UnsupportedEncodingException e) {
|
||||||
getLogger().info("Parsing failed");
|
getLogger().info("Parsing failed");
|
||||||
e1.printStackTrace();
|
e.printStackTrace();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Bukkit.getScheduler().runTaskAsynchronously(this, () -> {
|
||||||
try {
|
try {
|
||||||
httpClient.execute(request);
|
httpClient.execute(request);
|
||||||
getLogger().info("Request sent");
|
getLogger().info("Request sent");
|
||||||
|
} catch (HttpHostConnectException e) {
|
||||||
|
getLogger().info(String.format("Failed to connect to: [%s]", this.config.hookUrl));
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
getLogger().info("Request failed");
|
getLogger().info("Request failed");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user