processing fixes, additional death info
This commit is contained in:
parent
23e8120c82
commit
7c522808f2
@ -2,11 +2,13 @@ package mcwebhooks;
|
||||
|
||||
final class DeathHookEvent extends PlayerHookEvent
|
||||
{
|
||||
public String deathMessage;
|
||||
public String deathType;
|
||||
public String killerName;
|
||||
|
||||
public DeathHookEvent(String displayName, String deathMessage) {
|
||||
public DeathHookEvent(String displayName, String deathType) {
|
||||
super(displayName);
|
||||
this.type = "death";
|
||||
this.deathMessage = deathMessage;
|
||||
this.deathType = deathType;
|
||||
this.killerName = "?";
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,6 @@ final class JoinHookEvent extends PlayerHookEvent
|
||||
{
|
||||
public JoinHookEvent(String displayName) {
|
||||
super(displayName);
|
||||
this.type = "login";
|
||||
this.type = "join";
|
||||
}
|
||||
}
|
||||
|
@ -1,11 +1,14 @@
|
||||
package mcwebhooks;
|
||||
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.bukkit.entity.Entity;
|
||||
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.entity.PlayerDeathEvent;
|
||||
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityDeathEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||
import org.apache.http.impl.client.HttpClientBuilder;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
@ -20,21 +23,18 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
public final class MCWebHooks extends JavaPlugin implements Listener {
|
||||
private Config config;
|
||||
private HttpClient httpClient;
|
||||
private ObjectMapper mapper;
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
this.mapper = new ObjectMapper();
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
try {
|
||||
getLogger().info("Loading config");
|
||||
this.config = this.mapper.readValue(new File("plugins/webhooks.json"), Config.class);
|
||||
this.config = mapper.readValue(new File("plugins/webhooks.json"), Config.class);
|
||||
getLogger().info(String.format("Hooks will be sent to: %s", this.config.hookUrl));
|
||||
} catch (IOException e) {
|
||||
getLogger().info("Config loading failed");
|
||||
e.printStackTrace();
|
||||
}
|
||||
this.httpClient = HttpClientBuilder.create().build();
|
||||
getServer().getPluginManager().registerEvents(this, this);
|
||||
}
|
||||
|
||||
@ -50,17 +50,26 @@ public final class MCWebHooks extends JavaPlugin implements Listener {
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerDeath(PlayerDeathEvent event) {
|
||||
DeathHookEvent hookEvent = new DeathHookEvent(event.getEntity().getDisplayName(), event.getDeathMessage());
|
||||
this.sendHookedEvent(hookEvent);
|
||||
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());
|
||||
this.sendHookedEvent(hookEvent);
|
||||
}
|
||||
}
|
||||
|
||||
private final void sendHookedEvent(HookEvent event) {
|
||||
getLogger().info(String.format("Event: %s", event.type));
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
HttpClient httpClient = HttpClientBuilder.create().build();
|
||||
HttpPost request = new HttpPost(this.config.hookUrl);
|
||||
request.addHeader("content-type", "application/json");
|
||||
try {
|
||||
StringEntity params = new StringEntity(this.mapper.writeValueAsString(event));
|
||||
StringEntity params = new StringEntity(mapper.writeValueAsString(event));
|
||||
request.setEntity(params);
|
||||
} catch (JsonProcessingException | UnsupportedEncodingException e1) {
|
||||
getLogger().info("Parsing failed");
|
||||
@ -68,7 +77,7 @@ public final class MCWebHooks extends JavaPlugin implements Listener {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
this.httpClient.execute(request);
|
||||
httpClient.execute(request);
|
||||
getLogger().info("Request sent");
|
||||
} catch (IOException e) {
|
||||
getLogger().info("Request failed");
|
||||
|
Loading…
x
Reference in New Issue
Block a user