Package org.bukkit.event

Examples of org.bukkit.event.HandlerList


            }
        }
    }

    private void fireEvent(Event event) {
        HandlerList handlers = event.getHandlers();
        RegisteredListener[] listeners = handlers.getRegisteredListeners();

        for (RegisteredListener registration : listeners) {
            if (!registration.getPlugin().isEnabled()) {
                continue;
            }
View Full Code Here


    }
  }
 
  public static void callEventAt(Event event, EventPriority priority)
  {
    HandlerList handlers = event.getHandlers();
    RegisteredListener[] listeners = handlers.getRegisteredListeners().clone();

    for (RegisteredListener registration : listeners)
    {
      try
      {
View Full Code Here

    }
  }
 
  public static void callEventAfter(Event event, Listener listener, EventPriority priority)
  {
    HandlerList handlers = event.getHandlers();
    RegisteredListener[] listeners = handlers.getRegisteredListeners().clone();

    boolean run = false;
    for (RegisteredListener registration : listeners)
    {
      if (run)
View Full Code Here

  public static void queueListenerFirst(Listener listener, Class<?> eventClass) {
    setListenerOrder(listener, eventClass, true);
  }

  private static void setListenerOrder(Listener listener, Class<?> eventClass, boolean first) {
    HandlerList list = getEventHandlerList(eventClass);
    final EventPriority prio = first ? EventPriority.LOWEST : EventPriority.MONITOR;
    synchronized (list) {
      EnumMap<EventPriority, ArrayList<RegisteredListener>> handlerSlots = SafeField.get(list, "handlerslots");
      ArrayList<RegisteredListener> registeredListenerList = handlerSlots.get(prio);
      int requestedIndex = first ? 0 : (registeredListenerList.size() - 1);

      // Try to find the registered listener
      for (int i = 0; i < registeredListenerList.size(); i++) {
        RegisteredListener registeredListener = registeredListenerList.get(i);
        // Check that the Listener matches
        if (registeredListener.getListener() != listener) {
          continue;
        } else if (i == requestedIndex) {
          // Already in order, do not do anything
          return;
        }
        RegisteredListener[] allListeners = list.getRegisteredListeners();

        // Change order in list
        registeredListenerList.remove(i);
        registeredListenerList.add(requestedIndex, registeredListener);

        // Get the index of the listener in the baked array
        ArrayList<RegisteredListener> newListeners = new ArrayList<RegisteredListener>(allListeners.length);
        if (first) {
          newListeners.add(registeredListener);
          for (RegisteredListener otherListener : allListeners) {
            if (otherListener != registeredListener) {
              newListeners.add(otherListener);
            }
          }
        } else {
          for (RegisteredListener otherListener : allListeners) {
            if (otherListener != registeredListener) {
              newListeners.add(otherListener);
            }
          }
          newListeners.add(registeredListener);
        }
        // Transfer the listeners over
        if (newListeners.toArray(allListeners) != allListeners) {
          // Strange failure, ensure a bake
          list.bake();
        }
        return;
      }
    }
  }
View Full Code Here

TOP

Related Classes of org.bukkit.event.HandlerList

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.