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