fabric-api-base-1.0.0+14b92d896f.jar

Download file
    package net.fabricmc.fabric.api.event;

import java.util.function.Function;
import net.fabricmc.fabric.impl.base.event.EventFactoryImpl;
import net.minecraft.class_2960;

public final class EventFactory {
   private EventFactory() {
   }

   public static <T> Event<T> createArrayBacked(Class<? super T> type, Function<T[], T> invokerFactory) {
      return EventFactoryImpl.<T>createArrayBacked(type, invokerFactory);
   }

   public static <T> Event<T> createArrayBacked(Class<T> type, T emptyInvoker, Function<T[], T> invokerFactory) {
      return createArrayBacked(type, (listeners) -> {
         if (listeners.length == 0) {
            return emptyInvoker;
         } else {
            return listeners.length == 1 ? listeners[0] : invokerFactory.apply(listeners);
         }
      });
   }

   public static <T> Event<T> createWithPhases(Class<? super T> type, Function<T[], T> invokerFactory, class_2960... defaultPhases) {
      EventFactoryImpl.ensureContainsDefault(defaultPhases);
      EventFactoryImpl.ensureNoDuplicates(defaultPhases);
      Event<T> event = createArrayBacked(type, invokerFactory);

      for(int i = 1; i < defaultPhases.length; ++i) {
         event.addPhaseOrdering(defaultPhases[i - 1], defaultPhases[i]);
      }

      return event;
   }

   /** @deprecated */
   @Deprecated
   public static String getHandlerName(Object handler) {
      return handler.getClass().getName();
   }

   /** @deprecated */
   @Deprecated
   public static boolean isProfilingEnabled() {
      return false;
   }

   /** @deprecated */
   @Deprecated(
      forRemoval = true
   )
   public static void invalidate() {
      EventFactoryImpl.invalidate();
   }
}
    
Download file