mirror of
https://github.com/architectury/architectury-api.git
synced 2026-03-28 03:56:59 -05:00
Add EventFactory.attachToForge
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
package me.shedaniel.architectury.event;
|
||||
|
||||
import com.google.common.reflect.AbstractInvocationHandler;
|
||||
import me.shedaniel.architectury.ExpectPlatform;
|
||||
import net.jodah.typetools.TypeResolver;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.InteractionResultHolder;
|
||||
@@ -112,6 +113,11 @@ public final class EventFactory {
|
||||
}));
|
||||
}
|
||||
|
||||
@ExpectPlatform
|
||||
public static <T> Event<Consumer<T>> attachToForge(Event<Consumer<T>> event) {
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
||||
private static class EventImpl<T> implements Event<T> {
|
||||
private final Function<T[], T> function;
|
||||
private T invoker = null;
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package me.shedaniel.architectury.event.fabric;
|
||||
|
||||
import me.shedaniel.architectury.event.Event;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class EventFactoryImpl {
|
||||
public static <T> Event<Consumer<T>> attachToForge(Event<Consumer<T>> event) {
|
||||
return event;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package me.shedaniel.architectury.event.forge;
|
||||
|
||||
import me.shedaniel.architectury.event.Event;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class EventFactoryImpl {
|
||||
public static <T> Event<Consumer<T>> attachToForge(Event<Consumer<T>> event) {
|
||||
event.register(eventObj -> {
|
||||
if (!(eventObj instanceof net.minecraftforge.eventbus.api.Event)) {
|
||||
throw new ClassCastException(eventObj.getClass() + " is not an instance of forge Event!");
|
||||
}
|
||||
MinecraftForge.EVENT_BUS.post((net.minecraftforge.eventbus.api.Event) eventObj);
|
||||
});
|
||||
return event;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user