first commit
This commit is contained in:
		
							
								
								
									
										6
									
								
								src/main/java/mcwebhooks/Config.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								src/main/java/mcwebhooks/Config.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| package mcwebhooks; | ||||
|  | ||||
| public final class Config | ||||
| { | ||||
|     public String hookUrl; | ||||
| } | ||||
							
								
								
									
										12
									
								
								src/main/java/mcwebhooks/DeathHookEvent.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/main/java/mcwebhooks/DeathHookEvent.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | ||||
| package mcwebhooks; | ||||
|  | ||||
| final class DeathHookEvent extends PlayerHookEvent | ||||
| { | ||||
|     public String deathMessage; | ||||
|  | ||||
|     public DeathHookEvent(String displayName, String deathMessage) { | ||||
|         super(displayName); | ||||
|         this.type = "death"; | ||||
|         this.deathMessage = deathMessage; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										6
									
								
								src/main/java/mcwebhooks/HookEvent.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								src/main/java/mcwebhooks/HookEvent.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| package mcwebhooks; | ||||
|  | ||||
| abstract class HookEvent | ||||
| { | ||||
|     public String type; | ||||
| } | ||||
							
								
								
									
										9
									
								
								src/main/java/mcwebhooks/JoinHookEvent.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								src/main/java/mcwebhooks/JoinHookEvent.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| package mcwebhooks; | ||||
|  | ||||
| final class JoinHookEvent extends PlayerHookEvent | ||||
| { | ||||
|     public JoinHookEvent(String displayName) { | ||||
|         super(displayName); | ||||
|         this.type = "login"; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										78
									
								
								src/main/java/mcwebhooks/MCWebHooks.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								src/main/java/mcwebhooks/MCWebHooks.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,78 @@ | ||||
| package mcwebhooks; | ||||
|  | ||||
| import org.bukkit.plugin.java.JavaPlugin; | ||||
| import org.bukkit.event.EventHandler; | ||||
| import org.bukkit.event.Listener; | ||||
| import org.bukkit.event.player.PlayerJoinEvent; | ||||
| import org.bukkit.event.entity.PlayerDeathEvent; | ||||
|  | ||||
| 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 java.io.IOException; | ||||
| import java.io.UnsupportedEncodingException; | ||||
| import java.io.File; | ||||
|  | ||||
| import com.fasterxml.jackson.core.JsonProcessingException; | ||||
| 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(); | ||||
|         try { | ||||
|             getLogger().info("Loading config"); | ||||
|             this.config = this.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); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void onDisable() { | ||||
|         getLogger().info("Web hooks are disabled"); | ||||
|     } | ||||
|  | ||||
|     @EventHandler | ||||
|     public void onJoin(PlayerJoinEvent event) { | ||||
|         JoinHookEvent hookEvent = new JoinHookEvent(event.getPlayer().getDisplayName()); | ||||
|         this.sendHookedEvent(hookEvent); | ||||
|     } | ||||
|  | ||||
|     @EventHandler | ||||
|     public void onPlayerDeath(PlayerDeathEvent event) { | ||||
|         DeathHookEvent hookEvent = new DeathHookEvent(event.getEntity().getDisplayName(), event.getDeathMessage()); | ||||
|         this.sendHookedEvent(hookEvent); | ||||
|     } | ||||
|  | ||||
|     private final void sendHookedEvent(HookEvent event) { | ||||
|         getLogger().info(String.format("Event: %s", event.type)); | ||||
|         HttpPost request = new HttpPost(this.config.hookUrl); | ||||
|         request.addHeader("content-type", "application/json"); | ||||
|         try { | ||||
|             StringEntity params = new StringEntity(this.mapper.writeValueAsString(event)); | ||||
|             request.setEntity(params); | ||||
|         } catch (JsonProcessingException | UnsupportedEncodingException e1) { | ||||
|             getLogger().info("Parsing failed"); | ||||
|             e1.printStackTrace(); | ||||
|             return; | ||||
|         } | ||||
|         try { | ||||
|             this.httpClient.execute(request); | ||||
|             getLogger().info("Request sent"); | ||||
|         } catch (IOException e) { | ||||
|             getLogger().info("Request failed"); | ||||
|             e.printStackTrace(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										10
									
								
								src/main/java/mcwebhooks/PlayerHookEvent.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								src/main/java/mcwebhooks/PlayerHookEvent.java
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | ||||
| package mcwebhooks; | ||||
|  | ||||
| abstract class PlayerHookEvent extends HookEvent | ||||
| { | ||||
|     public String displayName; | ||||
|  | ||||
|     public PlayerHookEvent(String displayName) { | ||||
|         this.displayName = displayName; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user