processing fixes, additional death info
This commit is contained in:
		| @ -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"); | ||||
|  | ||||
		Reference in New Issue
	
	Block a user