Class AbstractConcurrentListenerMultimap<T>

java.lang.Object
com.comphenix.protocol.concurrency.AbstractConcurrentListenerMultimap<T>
Direct Known Subclasses:
SortedPacketListenerList

public abstract class AbstractConcurrentListenerMultimap<T> extends Object
A thread-safe implementation of a listener multimap.
  • Constructor Details

    • AbstractConcurrentListenerMultimap

      protected AbstractConcurrentListenerMultimap()
  • Method Details

    • addListener

      public void addListener(T listener, ListeningWhitelist whitelist)
      Adds a listener to its requested list of packet receivers.
      Parameters:
      listener - - listener with a list of packets to receive notifications for.
      whitelist - - the packet whitelist to use.
    • removeListener

      public List<PacketType> removeListener(T listener, ListeningWhitelist whitelist)
      Removes the given listener from the packet event list.
      Parameters:
      listener - - listener to remove.
      whitelist - - the packet whitelist that was used.
      Returns:
      Every packet ID that was removed due to no listeners.
    • getListener

      public Collection<PrioritizedListener<T>> getListener(PacketType type)
      Retrieve the registered listeners, in order from the lowest to the highest priority.

      The returned list is thread-safe and doesn't require synchronization.

      Parameters:
      type - - packet type.
      Returns:
      Registered listeners.
    • values

      public Iterable<PrioritizedListener<T>> values()
      Retrieve every listener.
      Returns:
      Every listener.
    • keySet

      public Set<PacketType> keySet()
      Retrieve every registered packet type:
      Returns:
      Registered packet type.
    • clearListeners

      protected void clearListeners()
      Remove all packet listeners.