Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. package com.github.dnx5.bukkit.util;
  2.  
  3. import java.lang.reflect.InvocationTargetException;
  4. import java.lang.reflect.Method;
  5. import org.bukkit.event.Event;
  6. import org.bukkit.event.EventHandler;
  7. import org.bukkit.event.HandlerList;
  8. import org.bukkit.event.Listener;
  9.  
  10. public class BukkitUnregisterListener {
  11.  
  12. public static void unregisterListener(Listener listener) {
  13. for (Method method : listener.getClass().getDeclaredMethods()) {
  14. if (method.isAnnotationPresent(EventHandler.class)) {
  15. for (Class<?> clazz : method.getParameterTypes()) {
  16. if (Event.class.isAssignableFrom(clazz)) {
  17. try {
  18. Method getHandlerList = clazz.getMethod("getHandlerList");
  19. HandlerList handlers = (HandlerList) getHandlerList.invoke(null);
  20. handlers.unregister(listener);
  21. } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
  22. e.printStackTrace();
  23. }
  24. }
  25. }
  26. }
  27. }
  28. }
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement