package com.golfing8.nms.event;
import com.golfing8.nms.reflection.FieldHandle;
import com.golfing8.nms.reflection.FieldHandles;
import org.bukkit.event.HandlerList;
import org.bukkit.plugin.RegisteredListener;
public class HandlerListAccessor {
private static FieldHandle<RegisteredListener[]> registeredListenersFieldHandle;
private static boolean setup;
public static RegisteredListener[] getRegisteredListeners(HandlerList handlerList) {
if (!setup)
return null;
return registeredListenersFieldHandle.get(handlerList);
}
public static void setRegisteredListeners(HandlerList handlerList, RegisteredListener[] listeners) {
if (!setup)
return;
registeredListenersFieldHandle.set(handlerList, listeners);
}
static {
try {
registeredListenersFieldHandle = (FieldHandle<RegisteredListener[]>) FieldHandles.getHandle("handlers", HandlerList.class);
setup = true;
} catch (Throwable thr) {
registeredListenersFieldHandle = null;
setup = false;
}
}
}
