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