Guest User

Untitled

a guest
Oct 24th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. package org.bukkit.event;
  2.  
  3. import java.lang.reflect.Method;
  4. import java.util.Map;
  5. import org.bukkit.plugin.EventExecutor;
  6.  
  7. public abstract class OptimizedListener implements Listener {
  8.  
  9. private Map<Event.Type, Method> registeredEventHandlers = null;
  10.  
  11. public OptimizedListener(){
  12. this.registeredEventHandlers = this.getEventHandlers();
  13. }
  14.  
  15. public EventExecutor getEventExecutor(Event event) {
  16. if (this.registeredEventHandlers == null || !this.registeredEventHandlers.containsKey(event.getType())) {
  17. return null;
  18. }
  19.  
  20. final Method eventHandler = this.registeredEventHandlers.get(event.getType());
  21. final Listener listener = this;
  22.  
  23. return new EventExecutor() {
  24. public void execute(Listener listener, Event event) {
  25. try {
  26. eventHandler.invoke(listener, event);
  27. } catch (Exception e) {
  28. throw new RuntimeException(e);
  29. }
  30. }
  31. };
  32. }
  33.  
  34. protected abstract Map<Event.Type, Method> getEventHandlers();
  35. }
Add Comment
Please, Sign In to add comment