1 package com.irtimaled.bbor.forge;
3 import com.irtimaled.bbor.common.EventBus;
4 import com.irtimaled.bbor.common.messages.PayloadReader;
5 import net.minecraft.util.ResourceLocation;
6 import net.minecraftforge.fml.network.NetworkEvent;
7 import net.minecraftforge.fml.network.NetworkRegistry;
9 import java.util.function.Consumer;
10 import java.util.function.Function;
12 class ForgeNetworkHelper {
13 private static final String PROTOCOL_VERSION = Integer.toString(1);
15 static <T extends NetworkEvent> void addBusEventConsumer(String name, Function<PayloadReader, ?> getEventSupplier) {
16 addConsumer(name, e -> EventBus.publish(getEventSupplier.apply(new PayloadReader(e.getPayload()))));
19 static <T extends NetworkEvent> void addConsumer(String name, Consumer<T> consumer) {
20 NetworkRegistry.newEventChannel(new ResourceLocation(name), () -> PROTOCOL_VERSION, PROTOCOL_VERSION::equals, PROTOCOL_VERSION::equals)
21 .addListener(consumer);