From 648f20e5dbdc9670e06c0370ef93c5393158c809 Mon Sep 17 00:00:00 2001 From: Oth3r Date: Mon, 29 Apr 2024 12:28:30 -0500 Subject: [PATCH] Revert "new packet system 1.20.5" This reverts commit fdd7aeaf4fb56464efab7987bf8d04680a5d42a3. --- .../java/one/oth3r/sit/PacketBuilder.java | 35 +++++++++++++++++++ src/main/java/one/oth3r/sit/Sit.java | 30 +++++----------- src/main/java/one/oth3r/sit/SitClient.java | 8 ++--- 3 files changed, 47 insertions(+), 26 deletions(-) create mode 100644 src/main/java/one/oth3r/sit/PacketBuilder.java diff --git a/src/main/java/one/oth3r/sit/PacketBuilder.java b/src/main/java/one/oth3r/sit/PacketBuilder.java new file mode 100644 index 0000000..6afb6cf --- /dev/null +++ b/src/main/java/one/oth3r/sit/PacketBuilder.java @@ -0,0 +1,35 @@ +package one.oth3r.sit; + +import io.netty.buffer.ByteBuf; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.fabricmc.fabric.api.networking.v1.PacketByteBufs; +import net.minecraft.network.PacketByteBuf; +import net.minecraft.util.Identifier; + +import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; + +public class PacketBuilder { + public static final String SETTINGS = "settings_v1.0"; + private final String message; + private final PacketByteBuf packetByteBuf = PacketByteBufs.create(); + public PacketBuilder(ByteBuf buf) { + // Read any data sent in the packet + message = buf.toString(StandardCharsets.UTF_8); + packetByteBuf.writeBytes(buf); + } + public PacketBuilder(String message) { + this.message = message; + packetByteBuf.writeBytes(ByteBuffer.wrap(message.getBytes(StandardCharsets.UTF_8)).array()); + } + public static Identifier getIdentifier() { + // only 1 packet rn + return new Identifier(Sit.MOD_ID, SETTINGS); + } + public void send() { + ClientPlayNetworking.send(getIdentifier(), packetByteBuf); + } + public String getMessage() { + return this.message; + } +} diff --git a/src/main/java/one/oth3r/sit/Sit.java b/src/main/java/one/oth3r/sit/Sit.java index 7ba996d..8b1f44a 100644 --- a/src/main/java/one/oth3r/sit/Sit.java +++ b/src/main/java/one/oth3r/sit/Sit.java @@ -5,18 +5,12 @@ import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import net.fabricmc.api.ModInitializer; -import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; -import net.minecraft.network.RegistryByteBuf; -import net.minecraft.network.codec.PacketCodec; -import net.minecraft.network.codec.PacketCodecs; -import net.minecraft.network.packet.CustomPayload; import net.minecraft.server.MinecraftServer; import net.minecraft.server.command.CommandManager; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.MutableText; import net.minecraft.text.Text; -import net.minecraft.util.Identifier; import one.oth3r.sit.file.Config; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -41,22 +35,16 @@ public class Sit implements ModInitializer { Config.load(); Events.register(); //PACKETS - PayloadTypeRegistry.playC2S().register(SettingsPayload.ID, SettingsPayload.CODEC); - ServerPlayNetworking.registerGlobalReceiver(SettingsPayload.ID,((payload, context) -> { + ServerPlayNetworking.registerGlobalReceiver(PacketBuilder.getIdentifier(), + (server, player, handler, buf, responseSender) -> { + // copy to not throw errors + PacketBuilder packet = new PacketBuilder(buf.copy()); server.execute(() -> { - Type hashMapToken = new TypeToken>() {}.getType(); - Gson gson = new GsonBuilder().disableHtmlEscaping().create(); - playerSettings.put(context.player(),gson.fromJson(payload.value,hashMapToken)); - }); - })); - } - public record SettingsPayload(String value) implements CustomPayload { - public static final CustomPayload.Id ID = new CustomPayload.Id<>(new Identifier(MOD_ID,"settings_v1.1")); - public static final PacketCodec CODEC = PacketCodecs.STRING.xmap(SettingsPayload::new, SettingsPayload::value).cast(); - @Override - public Id getId() { - return ID; - } + Type hashMapToken = new TypeToken>() {}.getType(); + Gson gson = new GsonBuilder().disableHtmlEscaping().create(); + playerSettings.put(player,gson.fromJson(packet.getMessage(),hashMapToken)); + }); + }); } public static MutableText lang(String key, Object... args) { if (isClient) return Text.translatable(key, args); diff --git a/src/main/java/one/oth3r/sit/SitClient.java b/src/main/java/one/oth3r/sit/SitClient.java index 555bd09..d8285fb 100644 --- a/src/main/java/one/oth3r/sit/SitClient.java +++ b/src/main/java/one/oth3r/sit/SitClient.java @@ -4,8 +4,6 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; -import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; -import net.minecraft.network.packet.CustomPayload; public class SitClient implements ClientModInitializer { public static boolean inGame = false; @@ -15,13 +13,13 @@ public class SitClient implements ClientModInitializer { ClientPlayConnectionEvents.JOIN.register((handler, sender, client) -> { inGame = true; // send a data packet whenever joining a server - ClientPlayNetworking.send(sendPackets()); + client.execute(SitClient::sendPackets); }); // reset inGame ClientPlayConnectionEvents.DISCONNECT.register((handler, client) -> inGame = false); } - public static CustomPayload sendPackets() { + public static void sendPackets() { Gson gson = new GsonBuilder().disableHtmlEscaping().create(); - return new Sit.SettingsPayload(gson.toJson(Utl.getHandSettings())); + new PacketBuilder(gson.toJson(Utl.HandSettings.getHandSettings())).send(); } }