Class TEventFactory

java.lang.Object
io.github.thecsdev.tcdcommons.api.event.TEventFactory

public final class TEventFactory extends Object
An event system implementation inspired by and similar to dev.architectury.event's implementation.

The reason for this implementation is customization and avoiding dependencies.
See Also:
  • Method Details

    • createLoop

      @SafeVarargs public static <T> TEvent<T> createLoop(T... eventTypeClassGetter)

      Creates a TEvent.

      This type of event stores its listeners in a List, and the listeners must be single-method interfaces that return void when executed.

      Type Parameters:
      T - The event listener interface type.
      Parameters:
      eventTypeClassGetter - Generic type getter. Leave this empty. Do not pass any arguments.
    • createEventResult

      @SafeVarargs public static <T> TEvent<T> createEventResult(T... eventTypeClassGetter)
      Same as createLoop(Object...), but listeners must return a TEventResult.
      Type Parameters:
      T - The event listener interface type.
      Parameters:
      eventTypeClassGetter - Generic type getter. Leave this empty. Do not pass any arguments.
    • createWeakLoop

      @SafeVarargs public static <T> TEvent<T> createWeakLoop(T... eventTypeClassGetter)
      Similar to createLoop(Object...), but the listeners are stored in a List of WeakReferences.
      Type Parameters:
      T - The event listener interface type.
      Parameters:
      eventTypeClassGetter - Generic type getter. Leave this empty. Do not pass any arguments.
    • createWeakEventResult

      @SafeVarargs public static <T> TEvent<T> createWeakEventResult(T... eventTypeClassGetter)
      Same as createEventResult(Object...), but the listeners are stored in a List of WeakReferences.
      Type Parameters:
      T - The event listener interface type.
      Parameters:
      eventTypeClassGetter - Generic type getter. Leave this empty. Do not pass any arguments.
    • createKeyedLoop

      @SafeVarargs public static <T> TKeyedEvent<T> createKeyedLoop(T... eventTypeClassGetter)

      Creates a TKeyedEvent.

      This type of event stores its listeners in a Map, and the listeners must be single-method interfaces that return void when executed.

      In the Map, each event handler is associated with a "key" that serves as a unique "identifier" for the given event handler.

      Type Parameters:
      T - The event listener interface type.
      Parameters:
      eventTypeClassGetter - Generic type getter. Leave this empty. Do not pass any arguments.
    • createKeyedEventResult

      @SafeVarargs public static <T> TKeyedEvent<T> createKeyedEventResult(T... eventTypeClassGetter)
      Same as createKeyedLoop(Object...), but listeners must return a TEventResult.
      Type Parameters:
      T - The event listener interface type.
      Parameters:
      eventTypeClassGetter - Generic type getter. Leave this empty. Do not pass any arguments.