diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/platform/services/LibClientHelper.java b/Common/src/main/java/com/hypherionmc/craterlib/core/platform/services/LibClientHelper.java index 25ba8e1..99ae2ed 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/platform/services/LibClientHelper.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/platform/services/LibClientHelper.java @@ -39,8 +39,6 @@ public interface LibClientHelper { Connection getClientConnection(); - void registerClientReceiver(@NotNull ResourceLocation channelName, @NotNull Function> factory); - void registerBlockEntityRenderer(@NotNull BlockEntityType blockEntityType, @NotNull BlockEntityRendererProvider blockEntityRendererFactory); } diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/platform/services/LibCommonHelper.java b/Common/src/main/java/com/hypherionmc/craterlib/core/platform/services/LibCommonHelper.java index 885f749..efe7c5f 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/core/platform/services/LibCommonHelper.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/platform/services/LibCommonHelper.java @@ -33,8 +33,5 @@ public interface LibCommonHelper { MenuType createMenuType(TriFunction constructor); - /* FABRIC ONLY */ - void registerServerReceiver(ResourceLocation channelName, Function> factory); - Optional getCapabilityHandler(BlockEntity entity, Direction side, CraterCapabilityHandler capability); } diff --git a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/CommandMixin.java b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/CommandMixin.java index f8dce96..7342352 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/CommandMixin.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/CommandMixin.java @@ -18,7 +18,7 @@ public class CommandMixin { at = @At(value = "INVOKE", target = "Lcom/mojang/brigadier/CommandDispatcher;execute(Lcom/mojang/brigadier/ParseResults;)I", shift = At.Shift.BEFORE - ), cancellable = true, remap = false + ), cancellable = true ) private void injectCommandEvent(ParseResults stackParseResults, String command, CallbackInfoReturnable cir) { CraterCommandEvent commandEvent = new CraterCommandEvent(stackParseResults, command); diff --git a/Fabric/src/main/java/com/hypherionmc/craterlib/client/FabricClientHelper.java b/Fabric/src/main/java/com/hypherionmc/craterlib/client/FabricClientHelper.java index 68d75fb..8c4c48a 100644 --- a/Fabric/src/main/java/com/hypherionmc/craterlib/client/FabricClientHelper.java +++ b/Fabric/src/main/java/com/hypherionmc/craterlib/client/FabricClientHelper.java @@ -82,14 +82,6 @@ public class FabricClientHelper implements LibClientHelper { return Minecraft.getInstance().getConnection().getConnection(); } - @Override - public void registerClientReceiver(ResourceLocation channelName, Function> factory) { - ClientPlayNetworking.registerGlobalReceiver(channelName, (Minecraft client, ClientPacketListener handler, FriendlyByteBuf buf, PacketSender responseSender) -> { - CraterPacket packet = factory.apply(buf); - client.execute(() -> packet.handle(client.player, client)); - }); - } - public static void registerCreativeItems(CreativeModeTab tab, FabricItemGroupEntries entries) { } diff --git a/Fabric/src/main/java/com/hypherionmc/craterlib/client/FabricNetworkHelper.java b/Fabric/src/main/java/com/hypherionmc/craterlib/client/FabricNetworkHelper.java new file mode 100644 index 0000000..316c2c8 --- /dev/null +++ b/Fabric/src/main/java/com/hypherionmc/craterlib/client/FabricNetworkHelper.java @@ -0,0 +1,2 @@ +package com.hypherionmc.craterlib.client;public class FabricNetworkHelper { +} diff --git a/Fabric/src/main/java/com/hypherionmc/craterlib/common/FabricCommonHelper.java b/Fabric/src/main/java/com/hypherionmc/craterlib/common/FabricCommonHelper.java index 5d61d5b..70e9d42 100644 --- a/Fabric/src/main/java/com/hypherionmc/craterlib/common/FabricCommonHelper.java +++ b/Fabric/src/main/java/com/hypherionmc/craterlib/common/FabricCommonHelper.java @@ -47,14 +47,6 @@ public class FabricCommonHelper implements LibCommonHelper { return server; } - @Override - public void registerServerReceiver(ResourceLocation channelName, Function> factory) { - ServerPlayNetworking.registerGlobalReceiver(channelName, (MinecraftServer server, ServerPlayer player, ServerGamePacketListenerImpl handler, FriendlyByteBuf buf, PacketSender responseSender) -> { - CraterPacket packet = factory.apply(buf); - server.execute(() -> packet.handle(player, server)); - }); - } - @Override public void openMenu(ServerPlayer player, MenuProvider menu, Consumer initialData) { ExtendedScreenHandlerFactory factory = new ExtendedScreenHandlerFactory() { diff --git a/Fabric/src/main/java/com/hypherionmc/craterlib/network/FabricNetworkHandler.java b/Fabric/src/main/java/com/hypherionmc/craterlib/network/FabricNetworkHandler.java index f5a98e1..c5f5472 100644 --- a/Fabric/src/main/java/com/hypherionmc/craterlib/network/FabricNetworkHandler.java +++ b/Fabric/src/main/java/com/hypherionmc/craterlib/network/FabricNetworkHandler.java @@ -9,6 +9,7 @@ import com.hypherionmc.craterlib.core.platform.Platform; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; import net.fabricmc.fabric.api.networking.v1.PacketByteBufs; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.fabricmc.loader.api.FabricLoader; import net.minecraft.Util; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.protocol.Packet; @@ -44,8 +45,8 @@ public class FabricNetworkHandler implements CraterNetworkHandler { final Function> decoder = buf -> Util.make(supplier.get(), message -> message.read(buf)); switch (packetDirection) { - case TO_CLIENT -> ClientPlatform.CLIENT_HELPER.registerClientReceiver(channelName, decoder); - case TO_SERVER -> Platform.COMMON_HELPER.registerServerReceiver(channelName, decoder); + case TO_CLIENT -> FabricNetworkHelper.getForDist(FabricLoader.getInstance().getEnvironmentType()).registerClientReceiver(channelName, decoder); + case TO_SERVER -> FabricNetworkHelper.getForDist(FabricLoader.getInstance().getEnvironmentType()).registerServerReceiver(channelName, decoder); } } diff --git a/Fabric/src/main/java/com/hypherionmc/craterlib/network/FabricNetworkHelper.java b/Fabric/src/main/java/com/hypherionmc/craterlib/network/FabricNetworkHelper.java new file mode 100644 index 0000000..e5ec67f --- /dev/null +++ b/Fabric/src/main/java/com/hypherionmc/craterlib/network/FabricNetworkHelper.java @@ -0,0 +1,31 @@ +package com.hypherionmc.craterlib.network; + +import com.hypherionmc.craterlib.core.network.CraterPacket; +import com.hypherionmc.craterlib.network.impl.FabricClientNetworkHelper; +import com.hypherionmc.craterlib.network.impl.FabricServerNetworkHelper; +import net.fabricmc.api.EnvType; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.NotNull; + +import java.util.function.Function; + +public interface FabricNetworkHelper { + + /* FABRIC ONLY */ + void registerClientReceiver(@NotNull ResourceLocation channelName, @NotNull Function> factory); + void registerServerReceiver(ResourceLocation channelName, Function> factory); + + public static FabricNetworkHelper getForDist(EnvType dist) { + switch (dist) { + case CLIENT -> { + return new FabricClientNetworkHelper(); + } + case SERVER -> { + return new FabricServerNetworkHelper(); + } + } + return null; + } + +} diff --git a/Fabric/src/main/java/com/hypherionmc/craterlib/network/impl/FabricClientNetworkHelper.java b/Fabric/src/main/java/com/hypherionmc/craterlib/network/impl/FabricClientNetworkHelper.java new file mode 100644 index 0000000..df95b99 --- /dev/null +++ b/Fabric/src/main/java/com/hypherionmc/craterlib/network/impl/FabricClientNetworkHelper.java @@ -0,0 +1,28 @@ +package com.hypherionmc.craterlib.network.impl; + +import com.hypherionmc.craterlib.core.network.CraterPacket; +import com.hypherionmc.craterlib.network.FabricNetworkHelper; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.fabricmc.fabric.api.networking.v1.PacketSender; +import net.minecraft.client.Minecraft; +import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; + +import java.util.function.Function; + +public class FabricClientNetworkHelper implements FabricNetworkHelper { + + @Override + public void registerClientReceiver(ResourceLocation channelName, Function> factory) { + ClientPlayNetworking.registerGlobalReceiver(channelName, (Minecraft client, ClientPacketListener handler, FriendlyByteBuf buf, PacketSender responseSender) -> { + CraterPacket packet = factory.apply(buf); + client.execute(() -> packet.handle(client.player, client)); + }); + } + + @Override + public void registerServerReceiver(ResourceLocation channelName, Function> factory) { + + } +} diff --git a/Fabric/src/main/java/com/hypherionmc/craterlib/network/impl/FabricServerNetworkHelper.java b/Fabric/src/main/java/com/hypherionmc/craterlib/network/impl/FabricServerNetworkHelper.java new file mode 100644 index 0000000..161e011 --- /dev/null +++ b/Fabric/src/main/java/com/hypherionmc/craterlib/network/impl/FabricServerNetworkHelper.java @@ -0,0 +1,29 @@ +package com.hypherionmc.craterlib.network.impl; + +import com.hypherionmc.craterlib.core.network.CraterPacket; +import com.hypherionmc.craterlib.network.FabricNetworkHelper; +import net.fabricmc.fabric.api.networking.v1.PacketSender; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.MinecraftServer; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.server.network.ServerGamePacketListenerImpl; +import org.jetbrains.annotations.NotNull; + +import java.util.function.Function; + +public class FabricServerNetworkHelper implements FabricNetworkHelper { + @Override + public void registerClientReceiver(@NotNull ResourceLocation channelName, @NotNull Function> factory) { + + } + + @Override + public void registerServerReceiver(ResourceLocation channelName, Function> factory) { + ServerPlayNetworking.registerGlobalReceiver(channelName, (MinecraftServer server, ServerPlayer player, ServerGamePacketListenerImpl handler, FriendlyByteBuf buf, PacketSender responseSender) -> { + CraterPacket packet = factory.apply(buf); + server.execute(() -> packet.handle(player, server)); + }); + } +} diff --git a/gradle.properties b/gradle.properties index 83f3959..05db7ec 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ # Project version_major=0 version_minor=0 -version_patch=7d +version_patch=8d group=me.hypherionmc.craterlib # Common