Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.github.dnx5.bukkit.util;
- import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
- import org.bukkit.event.Event;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.HandlerList;
- import org.bukkit.event.Listener;
- public class BukkitUnregisterListener {
- public static void unregisterListener(Listener listener) {
- for (Method method : listener.getClass().getDeclaredMethods()) {
- if (method.isAnnotationPresent(EventHandler.class)) {
- for (Class<?> clazz : method.getParameterTypes()) {
- if (Event.class.isAssignableFrom(clazz)) {
- try {
- Method getHandlerList = clazz.getMethod("getHandlerList");
- HandlerList handlers = (HandlerList) getHandlerList.invoke(null);
- handlers.unregister(listener);
- } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
- e.printStackTrace();
- }
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement