Class EventBus

java.lang.Object
com.hypixel.hytale.event.EventBus
All Implemented Interfaces:
IEventBus, IEventRegistry

public class EventBus extends Object implements IEventBus
An implementation of the event bus interface for managing event listeners and dispatching events.
  • Constructor Details

    • EventBus

      public EventBus(boolean timeEvents)
      Default Constructor for an EventBus instance.
      Parameters:
      timeEvents - Whether to time events.
  • Method Details

    • shutdown

      public void shutdown()
      Called to shut down the event bus and all its registries.
    • getRegisteredEventClasses

      @Nonnull public Set<Class<? extends IBaseEvent<?>>> getRegisteredEventClasses()
      Returns:
      a set of all registered event classes for this event bus.
    • getRegisteredEventClassNames

      @Nonnull public Set<String> getRegisteredEventClassNames()
      Returns:
      a set of all registered event class names for this event bus.
    • getRegistry

      @Nullable public EventBusRegistry<?,?,?> getRegistry(@Nonnull String eventName)
      Called to get the event bus registry for the specified event name.
      Parameters:
      eventName - The event name.
      Returns:
      the event bus registry, or null if not found.
    • getRegistry

      @Nonnull public <KeyType, EventType extends IBaseEvent<KeyType>> EventBusRegistry<KeyType, EventType, ?> getRegistry(@Nonnull Class<? super EventType> eventClass)
      Called to get the event bus registry for the specified event class.
      Type Parameters:
      KeyType - The key type filter for this event call.
      EventType - The event type.
      Parameters:
      eventClass - The event class.
      Returns:
      the event bus registry.
    • getSyncRegistry

      @Nonnull public <KeyType, EventType extends IEvent<KeyType>> EventBusRegistry<KeyType, EventType, ?> getSyncRegistry(@Nonnull Class<? super EventType> eventClass)
      Called to get the synchronous event bus registry for the specified event class.
      Type Parameters:
      KeyType - The key type filter for this event call.
      EventType - The event type.
      Parameters:
      eventClass - The event class.
      Returns:
      the event bus registry.
    • register

      public <EventType extends IBaseEvent<Void>> EventRegistration<Void, EventType> register(@Nonnull Class<? super EventType> eventClass, @Nonnull Consumer<EventType> consumer)
      Description copied from interface: IEventRegistry
      Called to register an event listener for the given event class, with the given consumer.
      Specified by:
      register in interface IEventRegistry
      Type Parameters:
      EventType - The type of the event.
      Parameters:
      eventClass - The event class to register the listener for.
      consumer - The consumer to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • register

      public <EventType extends IBaseEvent<Void>> EventRegistration<Void, EventType> register(@Nonnull EventPriority priority, @Nonnull Class<? super EventType> eventClass, @Nonnull Consumer<EventType> consumer)
      Description copied from interface: IEventRegistry
      Called to register an event listener for the given event class, with the given priority and consumer.
      Specified by:
      register in interface IEventRegistry
      Type Parameters:
      EventType - The type of the event.
      Parameters:
      priority - The priority of the event listener.
      eventClass - The event class to register the listener for.
      consumer - The consumer to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • register

      public <EventType extends IBaseEvent<Void>> EventRegistration<Void, EventType> register(short priority, @Nonnull Class<? super EventType> eventClass, @Nonnull Consumer<EventType> consumer)
      Description copied from interface: IEventRegistry
      Called to register an event listener for the given event class, with the given priority and consumer.
      Specified by:
      register in interface IEventRegistry
      Type Parameters:
      EventType - The type of the event.
      Parameters:
      priority - The priority of the event listener.
      eventClass - The event class to register the listener for.
      consumer - The consumer to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • register

      public <KeyType, EventType extends IBaseEvent<KeyType>> EventRegistration<KeyType, EventType> register(@Nonnull Class<? super EventType> eventClass, @Nonnull KeyType key, @Nonnull Consumer<EventType> consumer)
      Description copied from interface: IEventRegistry
      Called to register an event listener for the given event class and key, with the given consumer.
      Specified by:
      register in interface IEventRegistry
      Type Parameters:
      KeyType - The key type.
      EventType - The type of the event.
      Parameters:
      eventClass - The event class to register the listener for.
      key - The key for the event.
      consumer - The consumer to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • register

      public <KeyType, EventType extends IBaseEvent<KeyType>> EventRegistration<KeyType, EventType> register(@Nonnull EventPriority priority, @Nonnull Class<? super EventType> eventClass, @Nonnull KeyType key, @Nonnull Consumer<EventType> consumer)
      Description copied from interface: IEventRegistry
      Called to register an event listener for the given event class and key, with the given priority and consumer.
      Specified by:
      register in interface IEventRegistry
      Type Parameters:
      KeyType - The key type.
      EventType - The type of the event.
      Parameters:
      priority - The priority of the event listener.
      eventClass - The event class to register the listener for.
      key - The key for the event.
      consumer - The consumer to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • register

      public <KeyType, EventType extends IBaseEvent<KeyType>> EventRegistration<KeyType, EventType> register(short priority, @Nonnull Class<? super EventType> eventClass, @Nullable KeyType key, @Nonnull Consumer<EventType> consumer)
      Description copied from interface: IEventRegistry
      Called to register an event listener for the given event class and key, with the given priority and consumer.
      Specified by:
      register in interface IEventRegistry
      Type Parameters:
      KeyType - The key type.
      EventType - The type of the event.
      Parameters:
      priority - The priority of the event listener.
      eventClass - The event class to register the listener for.
      key - The key for the event.
      consumer - The consumer to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • registerAsync

      public <EventType extends IAsyncEvent<Void>> EventRegistration<Void, EventType> registerAsync(@Nonnull Class<? super EventType> eventClass, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> function)
      Description copied from interface: IEventRegistry
      Called to register an async event listener for the given event class, with the given function.
      Specified by:
      registerAsync in interface IEventRegistry
      Type Parameters:
      EventType - The type of the event.
      Parameters:
      eventClass - The event class to register the listener for.
      function - The function to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • registerAsync

      public <EventType extends IAsyncEvent<Void>> EventRegistration<Void, EventType> registerAsync(@Nonnull EventPriority priority, @Nonnull Class<? super EventType> eventClass, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> function)
      Description copied from interface: IEventRegistry
      Called to register an async event listener for the given event class, with the given priority and function.
      Specified by:
      registerAsync in interface IEventRegistry
      Type Parameters:
      EventType - The type of the event.
      Parameters:
      priority - The priority of the event listener.
      eventClass - The event class to register the listener for.
      function - The function to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • registerAsync

      public <EventType extends IAsyncEvent<Void>> EventRegistration<Void, EventType> registerAsync(short priority, Class<? super EventType> eventClass, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> function)
      Description copied from interface: IEventRegistry
      Called to register an async event listener for the given event class, with the given priority and function.
      Specified by:
      registerAsync in interface IEventRegistry
      Type Parameters:
      EventType - The type of the event.
      Parameters:
      priority - The priority of the event listener.
      eventClass - The event class to register the listener for.
      function - The function to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • registerAsync

      public <KeyType, EventType extends IAsyncEvent<KeyType>> EventRegistration<KeyType, EventType> registerAsync(@Nonnull Class<? super EventType> eventClass, @Nonnull KeyType key, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> function)
      Description copied from interface: IEventRegistry
      Called to register an async event listener for the given event class and key, with the given function.
      Specified by:
      registerAsync in interface IEventRegistry
      Type Parameters:
      KeyType - The key type.
      EventType - The type of the event.
      Parameters:
      eventClass - The event class to register the listener for.
      key - The key for the event.
      function - The function to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • registerAsync

      public <KeyType, EventType extends IAsyncEvent<KeyType>> EventRegistration<KeyType, EventType> registerAsync(@Nonnull EventPriority priority, Class<? super EventType> eventClass, @Nonnull KeyType key, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> function)
      Description copied from interface: IEventRegistry
      Called to register an async event listener for the given event class and key, with the given priority and function.
      Specified by:
      registerAsync in interface IEventRegistry
      Type Parameters:
      KeyType - The key type.
      EventType - The type of the event.
      Parameters:
      priority - The priority of the event listener.
      eventClass - The event class to register the listener for.
      key - The key for the event.
      function - The function to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • registerAsync

      public <KeyType, EventType extends IAsyncEvent<KeyType>> EventRegistration<KeyType, EventType> registerAsync(short priority, @Nonnull Class<? super EventType> eventClass, @Nullable KeyType key, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> function)
      Description copied from interface: IEventRegistry
      Called to register an async event listener for the given event class and key, with the given priority and function.
      Specified by:
      registerAsync in interface IEventRegistry
      Type Parameters:
      KeyType - The key type.
      EventType - The type of the event.
      Parameters:
      priority - The priority of the event listener.
      eventClass - The event class to register the listener for.
      key - The key for the event.
      function - The function to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • registerGlobal

      public <KeyType, EventType extends IBaseEvent<KeyType>> EventRegistration<KeyType, EventType> registerGlobal(@Nonnull Class<? super EventType> eventClass, @Nonnull Consumer<EventType> consumer)
      Description copied from interface: IEventRegistry
      Called to register a global event listener for the given event class, with the given consumer.
      Specified by:
      registerGlobal in interface IEventRegistry
      Type Parameters:
      KeyType - The key type.
      EventType - The type of the event.
      Parameters:
      eventClass - The event class to register the listener for.
      consumer - The consumer to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • registerGlobal

      public <KeyType, EventType extends IBaseEvent<KeyType>> EventRegistration<KeyType, EventType> registerGlobal(@Nonnull EventPriority priority, @Nonnull Class<? super EventType> eventClass, @Nonnull Consumer<EventType> consumer)
      Description copied from interface: IEventRegistry
      Called to register a global event listener for the given event class, with the given priority and consumer.
      Specified by:
      registerGlobal in interface IEventRegistry
      Type Parameters:
      KeyType - The key type.
      EventType - The type of the event.
      Parameters:
      priority - The priority of the event listener.
      eventClass - The event class to register the listener for.
      consumer - The consumer to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • registerGlobal

      public <KeyType, EventType extends IBaseEvent<KeyType>> EventRegistration<KeyType, EventType> registerGlobal(short priority, @Nonnull Class<? super EventType> eventClass, @Nonnull Consumer<EventType> consumer)
      Description copied from interface: IEventRegistry
      Called to register a global event listener for the given event class, with the given priority and consumer.
      Specified by:
      registerGlobal in interface IEventRegistry
      Type Parameters:
      KeyType - The key type.
      EventType - The type of the event.
      Parameters:
      priority - The priority of the event listener.
      eventClass - The event class to register the listener for.
      consumer - The consumer to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • registerAsyncGlobal

      public <KeyType, EventType extends IAsyncEvent<KeyType>> EventRegistration<KeyType, EventType> registerAsyncGlobal(@Nonnull Class<? super EventType> eventClass, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> function)
      Description copied from interface: IEventRegistry
      Called to register a global async event listener for the given event class, with the given function.
      Specified by:
      registerAsyncGlobal in interface IEventRegistry
      Type Parameters:
      KeyType - The key type.
      EventType - The type of the event.
      Parameters:
      eventClass - The event class to register the listener for.
      function - The function to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • registerAsyncGlobal

      public <KeyType, EventType extends IAsyncEvent<KeyType>> EventRegistration<KeyType, EventType> registerAsyncGlobal(@Nonnull EventPriority priority, @Nonnull Class<? super EventType> eventClass, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> function)
      Description copied from interface: IEventRegistry
      Called to register a global async event listener for the given event class, with the given priority and function.
      Specified by:
      registerAsyncGlobal in interface IEventRegistry
      Type Parameters:
      KeyType - The key type.
      EventType - The type of the event.
      Parameters:
      priority - The priority of the event listener.
      eventClass - The event class to register the listener for.
      function - The function to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • registerAsyncGlobal

      public <KeyType, EventType extends IAsyncEvent<KeyType>> EventRegistration<KeyType, EventType> registerAsyncGlobal(short priority, @Nonnull Class<? super EventType> eventClass, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> function)
      Description copied from interface: IEventRegistry
      Called to register a global async event listener for the given event class, with the given priority and function.
      Specified by:
      registerAsyncGlobal in interface IEventRegistry
      Type Parameters:
      KeyType - The key type.
      EventType - The type of the event.
      Parameters:
      priority - The priority of the event listener.
      eventClass - The event class to register the listener for.
      function - The function to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • registerUnhandled

      public <KeyType, EventType extends IBaseEvent<KeyType>> EventRegistration<KeyType, EventType> registerUnhandled(@Nonnull Class<? super EventType> eventClass, @Nonnull Consumer<EventType> consumer)
      Description copied from interface: IEventRegistry
      Called to register an unhandled event listener for the given event class, with the given consumer.
      Specified by:
      registerUnhandled in interface IEventRegistry
      Type Parameters:
      KeyType - The key type.
      EventType - The type of the event.
      Parameters:
      eventClass - The event class to register the listener for.
      consumer - The consumer to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • registerUnhandled

      public <KeyType, EventType extends IBaseEvent<KeyType>> EventRegistration<KeyType, EventType> registerUnhandled(@Nonnull EventPriority priority, @Nonnull Class<? super EventType> eventClass, @Nonnull Consumer<EventType> consumer)
      Description copied from interface: IEventRegistry
      Called to register an unhandled event listener for the given event class, with the given priority and consumer.
      Specified by:
      registerUnhandled in interface IEventRegistry
      Type Parameters:
      KeyType - The key type.
      EventType - The type of the event.
      Parameters:
      priority - The priority of the event listener.
      eventClass - The event class to register the listener for.
      consumer - The consumer to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • registerUnhandled

      public <KeyType, EventType extends IBaseEvent<KeyType>> EventRegistration<KeyType, EventType> registerUnhandled(short priority, @Nonnull Class<? super EventType> eventClass, @Nonnull Consumer<EventType> consumer)
      Description copied from interface: IEventRegistry
      Called to register an unhandled event listener for the given event class, with the given priority and consumer.
      Specified by:
      registerUnhandled in interface IEventRegistry
      Type Parameters:
      KeyType - The key type.
      EventType - The type of the event.
      Parameters:
      priority - The priority of the event listener.
      eventClass - The event class to register the listener for.
      consumer - The consumer to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • registerAsyncUnhandled

      public <KeyType, EventType extends IAsyncEvent<KeyType>> EventRegistration<KeyType, EventType> registerAsyncUnhandled(@Nonnull Class<? super EventType> eventClass, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> function)
      Description copied from interface: IEventRegistry
      Called to register an async unhandled event listener for the given event class, with the given function.
      Specified by:
      registerAsyncUnhandled in interface IEventRegistry
      Type Parameters:
      KeyType - The key type.
      EventType - The type of the event.
      Parameters:
      eventClass - The event class to register the listener for.
      function - The function to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • registerAsyncUnhandled

      public <KeyType, EventType extends IAsyncEvent<KeyType>> EventRegistration<KeyType, EventType> registerAsyncUnhandled(@Nonnull EventPriority priority, @Nonnull Class<? super EventType> eventClass, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> function)
      Description copied from interface: IEventRegistry
      Called to register an async unhandled event listener for the given event class, with the given priority and function.
      Specified by:
      registerAsyncUnhandled in interface IEventRegistry
      Type Parameters:
      KeyType - The key type.
      EventType - The type of the event.
      Parameters:
      priority - The priority of the event listener.
      eventClass - The event class to register the listener for.
      function - The function to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • registerAsyncUnhandled

      public <KeyType, EventType extends IAsyncEvent<KeyType>> EventRegistration<KeyType, EventType> registerAsyncUnhandled(short priority, @Nonnull Class<? super EventType> eventClass, @Nonnull Function<CompletableFuture<EventType>, CompletableFuture<EventType>> function)
      Description copied from interface: IEventRegistry
      Called to register an async unhandled event listener for the given event class, with the given priority and function.
      Specified by:
      registerAsyncUnhandled in interface IEventRegistry
      Type Parameters:
      KeyType - The key type.
      EventType - The type of the event.
      Parameters:
      priority - The priority of the event listener.
      eventClass - The event class to register the listener for.
      function - The function to call when the event is dispatched.
      Returns:
      the event registration, or null if the registration failed.
    • dispatchFor

      @Nonnull public <KeyType, EventType extends IEvent<KeyType>> IEventDispatcher<EventType, EventType> dispatchFor(@Nonnull Class<? super EventType> eventClass, KeyType key)
      Description copied from interface: IEventBus
      Called to get an event dispatcher for the specified event class and key.
      Specified by:
      dispatchFor in interface IEventBus
      Type Parameters:
      KeyType - The key type filter for this event call.
      EventType - The event type.
      Parameters:
      eventClass - The event class to get the dispatcher for.
      key - The key to filter events by.
      Returns:
      the event dispatcher.
    • dispatchForAsync

      @Nonnull public <KeyType, EventType extends IAsyncEvent<KeyType>> IEventDispatcher<EventType, CompletableFuture<EventType>> dispatchForAsync(@Nonnull Class<? super EventType> eventClass, KeyType key)
      Description copied from interface: IEventBus
      Called to get an asynchronous event dispatcher for the specified event class and key.
      Specified by:
      dispatchForAsync in interface IEventBus
      Type Parameters:
      KeyType - The key type filter for this event call.
      EventType - The event type.
      Parameters:
      eventClass - The event class to get the dispatcher for.
      key - The key to filter events by.
      Returns:
      the asynchronous event dispatcher.