Advertisement
Stiepen

Derpy EventHandler file

Mar 11th, 2013
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.16 KB | None | 0 0
  1. package de.kilobyte22.plugin.bukkit.kibicraft;
  2.  
  3. import com.google.common.eventbus.Subscribe;
  4. import de.kilobyte22.plugin.bukkit.kibicraft.event.MessageEvent;
  5. import org.bukkit.Bukkit;
  6. import org.bukkit.event.EventHandler;
  7. import org.bukkit.event.EventPriority;
  8. import org.bukkit.event.Listener;
  9. import org.bukkit.event.entity.PlayerDeathEvent;
  10. import org.bukkit.event.player.*;
  11. import org.json.JSONObject;
  12.  
  13. import java.lang.reflect.InvocationTargetException;
  14. import java.lang.reflect.Method;
  15. import java.util.logging.Level;
  16.  
  17. /**
  18.  * Created with IntelliJ IDEA.
  19.  * User: Stephan
  20.  * Date: 10.03.13
  21.  * Time: 21:34
  22.  * To change this template use File | Settings | File Templates.
  23.  */
  24. public class EventListener implements Listener {
  25.     @Subscribe
  26.     public void onKibiMessage(MessageEvent event) {
  27.         String type = event.getJSON().getString("type");
  28.         for(Method m : this.getClass().getMethods()) {
  29.             MethodHandler h = m.getAnnotation(MethodHandler.class);
  30.             if (h != null && h.value().equals(type)) {
  31.                 try {
  32.                     m.invoke(this, event);
  33.                 } catch (IllegalAccessException e) {
  34.                     e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
  35.                 } catch (InvocationTargetException e) {
  36.                     e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
  37.                 }
  38.             }
  39.         }
  40.         /*if (h == null)
  41.             KibiCraft.logger.log(Level.WARNING, "Received unknown command of type " + );*/
  42.     }
  43.  
  44.     @MethodHandler("broadcast")
  45.     public void broadcast(JSONObject obj) {
  46.         KibiCraft.logger.log(Level.INFO, obj.getString("message"));
  47.         KibiCraft.broadcast(obj.getString("message"));
  48.     }
  49.  
  50.     /**
  51.      * Requires:
  52.      * - sender
  53.      * - command
  54.      * - params
  55.      * @param obj
  56.      */
  57.     @MethodHandler("command")
  58.     public void command(JSONObject obj) {
  59.         //Bukkit.getServer().getPluginCommand(obj.getString("command")).execute(new KibiCommandSender(obj.getString("sender")))
  60.     }
  61.  
  62.     @EventHandler(priority = EventPriority.MONITOR)
  63.     public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) {
  64.         JSONObject obj = new JSONObject();
  65.         obj.put("type", "precommand");
  66.         obj.put("sender", event.getPlayer().getName());
  67.         obj.put("command", event.getMessage());
  68.         KibiCraft.connection.sendMessage(obj);
  69.  
  70.     }
  71.  
  72.     @EventHandler(priority=EventPriority.MONITOR)
  73.     public void onPlayerChat(AsyncPlayerChatEvent event) {
  74.         JSONObject obj = new JSONObject();
  75.         obj.put("type", "message");
  76.         obj.put("sender", event.getPlayer().getName());
  77.         obj.put("message", event.getMessage());
  78.         KibiCraft.connection.sendMessage(obj);
  79.     }
  80.  
  81.     @EventHandler(priority=EventPriority.MONITOR)
  82.     public void onPlayerJoin(PlayerJoinEvent event) {
  83.         JSONObject obj = new JSONObject();
  84.         obj.put("type", "join");
  85.         obj.put("sender", event.getPlayer().getName());
  86.         KibiCraft.connection.sendMessage(obj);
  87.     }
  88.  
  89.     @EventHandler(priority=EventPriority.MONITOR)
  90.     public void onPlayerQuit(PlayerQuitEvent event) {
  91.         JSONObject obj = new JSONObject();
  92.         obj.put("type", "quit");
  93.         obj.put("sender", event.getPlayer().getName());
  94.         KibiCraft.connection.sendMessage(obj);
  95.     }
  96.  
  97.     @EventHandler(priority=EventPriority.MONITOR)
  98.     public void onPlayerKick(PlayerKickEvent event) {
  99.         JSONObject obj = new JSONObject();
  100.         obj.put("type", "kick");
  101.         obj.put("sender", event.getPlayer().getName());
  102.         obj.put("reason", (event.getReason().length() == 0) ? null : event.getReason());
  103.         KibiCraft.connection.sendMessage(obj);
  104.     }
  105.  
  106.     @EventHandler(priority = EventPriority.MONITOR)
  107.     public void onPlayerDeath(PlayerDeathEvent event) {
  108.         JSONObject obj = new JSONObject();
  109.         obj.put("type", "player_death");
  110.         obj.put("sender", event.getEntity().getName());
  111.         obj.put("message", event.getDeathMessage());
  112.         KibiCraft.connection.sendMessage(obj);
  113.     }
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement