Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.bukkit.event;
- import java.lang.reflect.Method;
- import java.util.Map;
- import org.bukkit.plugin.EventExecutor;
- public abstract class OptimizedListener implements Listener {
- private Map<Event.Type, Method> registeredEventHandlers = null;
- public OptimizedListener(){
- this.registeredEventHandlers = this.getEventHandlers();
- }
- public EventExecutor getEventExecutor(Event event) {
- if (this.registeredEventHandlers == null || !this.registeredEventHandlers.containsKey(event.getType())) {
- return null;
- }
- final Method eventHandler = this.registeredEventHandlers.get(event.getType());
- final Listener listener = this;
- return new EventExecutor() {
- public void execute(Listener listener, Event event) {
- try {
- eventHandler.invoke(listener, event);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
- };
- }
- protected abstract Map<Event.Type, Method> getEventHandlers();
- }
Add Comment
Please, Sign In to add comment