From 594c6ce4234089c11b4b6dcdaa93eab4394bf3da Mon Sep 17 00:00:00 2001 From: Malte Reents Date: Fri, 19 Jul 2024 16:18:18 +0200 Subject: [PATCH] Almost everything fixed! MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Viel ist jetzt repariert, es gibt nur noch einen bug im Networking, wenn man den Knop im Schlaf oder DeathScreen drückt --- .../networking/modNetworkingClient.java | 31 ------------------- .../REServerModClient.java | 4 +-- .../mixin}/DeathScreen.java | 8 ++--- .../mixin}/SleepingChatScreen.java | 8 ++--- .../networking/modNetworkingClient.java | 31 +++++++++++++++++++ .../packet/respawnRequestS2CPacket.java | 6 +--- .../payload/deathMultiRespawnButtons.java | 4 +-- .../networking/payload/requestRespawn.java | 7 ++--- .../payload/startSleepingCallButtons.java | 4 +-- .../resources/reservermod.client.mixins.json | 2 +- .../event/playerAfterRespawnEvent.java | 3 +- .../networking/modNetworkingServer.java | 6 ++-- .../payload/deathMultiRespawnButtons.java | 3 +- .../networking/payload/requestRespawn.java | 1 - .../payload/startSleepingCallButtons.java | 2 +- src/main/resources/fabric.mod.json | 7 +++-- 16 files changed, 62 insertions(+), 65 deletions(-) delete mode 100755 src/client/java/modchest/networking/modNetworkingClient.java rename src/client/java/{modchest => modchestClient}/REServerModClient.java (88%) rename src/client/java/{modchest/mixin/client => modchestClient/mixin}/DeathScreen.java (95%) rename src/client/java/{modchest/mixin/client => modchestClient/mixin}/SleepingChatScreen.java (93%) create mode 100755 src/client/java/modchestClient/networking/modNetworkingClient.java rename src/client/java/{modchest => modchestClient}/networking/packet/respawnRequestS2CPacket.java (76%) rename src/client/java/{modchest => modchestClient}/networking/payload/deathMultiRespawnButtons.java (78%) rename src/client/java/{modchest => modchestClient}/networking/payload/requestRespawn.java (67%) rename src/client/java/{modchest => modchestClient}/networking/payload/startSleepingCallButtons.java (84%) diff --git a/src/client/java/modchest/networking/modNetworkingClient.java b/src/client/java/modchest/networking/modNetworkingClient.java deleted file mode 100755 index e8315c4..0000000 --- a/src/client/java/modchest/networking/modNetworkingClient.java +++ /dev/null @@ -1,31 +0,0 @@ -package modchest.networking; - -import modchest.REServerMod; -import modchest.networking.packet.respawnRequestS2CPacket; -import modchest.networking.payload.requestRespawn; -import modchest.networking.payload.startSleepingCallButtons; -import modchest.networking.payload.deathMultiRespawnButtons; -import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; -import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; -import net.minecraft.util.Identifier; - -public class modNetworkingClient { //Identifier werden eingeführt - //public static final Identifier request_respawn = Identifier.of(REServerMod.MOD_ID, "request_respawn"); //alle Identifier muessen leider IMMER auf Client und Server (doppelt) eingefuehrt werden - public static final Identifier start_sleeping_call_buttons = Identifier.of(REServerMod.MOD_ID, "start_sleeping_call_buttons"); - public static final Identifier death_multi_respawn_buttons = Identifier.of(REServerMod.MOD_ID, "death_call_respawn_buttons"); - - public static void registerC2SPackets() { //Identifier fuer packets werden registriert (Identifier die der Server aufruft um beim CLient was auszufuehren) - PayloadTypeRegistry.playC2S().register(startSleepingCallButtons.ID, startSleepingCallButtons.CODEC); - PayloadTypeRegistry.playC2S().register(deathMultiRespawnButtons.ID, deathMultiRespawnButtons.CODEC); - - - ClientPlayNetworking.registerGlobalReceiver(startSleepingCallButtons.ID, (payload, context) -> { - context.client().execute(() -> { - respawnRequestS2CPacket.receive(context.client(), payload); - } - );}); - - - //ClientPlayNetworking.registerGlobalReceiver(request_respawn, respawnRequestS2CPacket::receive); //was der Client dann machen soll steht in der receive Methode - } -} diff --git a/src/client/java/modchest/REServerModClient.java b/src/client/java/modchestClient/REServerModClient.java similarity index 88% rename from src/client/java/modchest/REServerModClient.java rename to src/client/java/modchestClient/REServerModClient.java index 0d18944..713660b 100755 --- a/src/client/java/modchest/REServerModClient.java +++ b/src/client/java/modchestClient/REServerModClient.java @@ -1,6 +1,6 @@ -package modchest; +package modchestClient; -import modchest.networking.modNetworkingClient; +import modchestClient.networking.modNetworkingClient; import net.fabricmc.api.ClientModInitializer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/client/java/modchest/mixin/client/DeathScreen.java b/src/client/java/modchestClient/mixin/DeathScreen.java similarity index 95% rename from src/client/java/modchest/mixin/client/DeathScreen.java rename to src/client/java/modchestClient/mixin/DeathScreen.java index 36328c3..acfa9b2 100755 --- a/src/client/java/modchest/mixin/client/DeathScreen.java +++ b/src/client/java/modchestClient/mixin/DeathScreen.java @@ -1,7 +1,7 @@ -package modchest.mixin.client; +package modchestClient.mixin; -import modchest.REServerModClient; -import modchest.networking.payload.startSleepingCallButtons; +import modchestClient.REServerModClient; +import modchestClient.networking.payload.startSleepingCallButtons; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.widget.ButtonWidget; @@ -61,7 +61,7 @@ public class DeathScreen extends Screen { try { ClientPlayNetworking.send(new startSleepingCallButtons(number)); } catch (Exception e) { - REServerModClient.LOGGER.info("Error when trying to network to server in DeathScreen class!"); + REServerModClient.LOGGER.info("Error when trying to network to server in DeathScreen class: " + e); } } } diff --git a/src/client/java/modchest/mixin/client/SleepingChatScreen.java b/src/client/java/modchestClient/mixin/SleepingChatScreen.java similarity index 93% rename from src/client/java/modchest/mixin/client/SleepingChatScreen.java rename to src/client/java/modchestClient/mixin/SleepingChatScreen.java index cfaffcb..dc11534 100755 --- a/src/client/java/modchest/mixin/client/SleepingChatScreen.java +++ b/src/client/java/modchestClient/mixin/SleepingChatScreen.java @@ -1,6 +1,7 @@ -package modchest.mixin.client; +package modchestClient.mixin; -import modchest.REServerModClient; +import modchestClient.REServerModClient; +import modchestClient.networking.payload.deathMultiRespawnButtons; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.widget.ButtonWidget; @@ -10,7 +11,6 @@ import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import modchest.networking.payload.deathMultiRespawnButtons; @Mixin(net.minecraft.client.gui.screen.SleepingChatScreen.class) public class SleepingChatScreen extends Screen { //Sehr identisch zu Death Screen, siehe dort fuer Kommentare! @@ -62,7 +62,7 @@ public class SleepingChatScreen extends Screen { //Sehr identisch zu Deat try { ClientPlayNetworking.send(new deathMultiRespawnButtons(number)); } catch (Exception e) { - REServerModClient.LOGGER.info("Error when trying to network to server in sleepingChatScreen class!"); + REServerModClient.LOGGER.info("Error when trying to network to server in sleepingChatScreen class: " + e); } } } \ No newline at end of file diff --git a/src/client/java/modchestClient/networking/modNetworkingClient.java b/src/client/java/modchestClient/networking/modNetworkingClient.java new file mode 100755 index 0000000..22b879e --- /dev/null +++ b/src/client/java/modchestClient/networking/modNetworkingClient.java @@ -0,0 +1,31 @@ +package modchestClient.networking; + +import modchest.REServerMod; +import modchestClient.networking.packet.respawnRequestS2CPacket; +import modchestClient.networking.payload.requestRespawn; +import modchestClient.networking.payload.startSleepingCallButtons; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; +import net.minecraft.util.Identifier; + +public class modNetworkingClient { //Identifier werden eingeführt //alle Identifier muessen leider IMMER auf Client und Server (doppelt) eingefuehrt werden + public static final Identifier request_respawn = Identifier.of(REServerMod.MOD_ID, "request_respawn"); + public static final Identifier start_sleeping_call_buttons = Identifier.of(REServerMod.MOD_ID, "start_sleeping_call_buttons"); + public static final Identifier death_call_respawn_buttons = Identifier.of(REServerMod.MOD_ID, "death_call_respawn_buttons"); + + public static void registerC2SPackets() { //Identifier fuer packets werden registriert (Identifier die der Server aufruft um beim CLient was auszufuehren) + //PayloadTypeRegistry.playC2S().register(startSleepingCallButtons.ID, startSleepingCallButtons.CODEC); + //PayloadTypeRegistry.playC2S().register(deathMultiRespawnButtons.ID, deathMultiRespawnButtons.CODEC); + PayloadTypeRegistry.playS2C().register(requestRespawn.ID, requestRespawn.CODEC); + + + ClientPlayNetworking.registerGlobalReceiver(requestRespawn.ID, (payload, context) -> { + context.client().execute(() -> { + respawnRequestS2CPacket.receive(context.client(), payload); + } + );}); + + + //ClientPlayNetworking.registerGlobalReceiver(request_respawn, respawnRequestS2CPacket::receive); //was der Client dann machen soll steht in der receive Methode + } +} diff --git a/src/client/java/modchest/networking/packet/respawnRequestS2CPacket.java b/src/client/java/modchestClient/networking/packet/respawnRequestS2CPacket.java similarity index 76% rename from src/client/java/modchest/networking/packet/respawnRequestS2CPacket.java rename to src/client/java/modchestClient/networking/packet/respawnRequestS2CPacket.java index 64e4364..586d8d1 100755 --- a/src/client/java/modchest/networking/packet/respawnRequestS2CPacket.java +++ b/src/client/java/modchestClient/networking/packet/respawnRequestS2CPacket.java @@ -1,10 +1,6 @@ -package modchest.networking.packet; +package modchestClient.networking.packet; -import modchest.REServerModClient; -import net.fabricmc.fabric.api.networking.v1.PacketSender; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.network.ClientPlayNetworkHandler; -import net.minecraft.network.PacketByteBuf; import net.minecraft.network.packet.CustomPayload; public class respawnRequestS2CPacket { diff --git a/src/client/java/modchest/networking/payload/deathMultiRespawnButtons.java b/src/client/java/modchestClient/networking/payload/deathMultiRespawnButtons.java similarity index 78% rename from src/client/java/modchest/networking/payload/deathMultiRespawnButtons.java rename to src/client/java/modchestClient/networking/payload/deathMultiRespawnButtons.java index c56e3bd..771c9cc 100644 --- a/src/client/java/modchest/networking/payload/deathMultiRespawnButtons.java +++ b/src/client/java/modchestClient/networking/payload/deathMultiRespawnButtons.java @@ -1,4 +1,4 @@ -package modchest.networking.payload; +package modchestClient.networking.payload; import modchest.networking.modNetworkingServer; import net.minecraft.network.RegistryByteBuf; @@ -7,7 +7,7 @@ import net.minecraft.network.codec.PacketCodecs; import net.minecraft.network.packet.CustomPayload; public record deathMultiRespawnButtons(int number) implements CustomPayload { - public static final Id ID = new Id<>(modNetworkingServer.request_respawn); + public static final CustomPayload.Id ID = new CustomPayload.Id<>(modNetworkingServer.death_call_respawn_buttons); public static final PacketCodec CODEC = PacketCodec.tuple(PacketCodecs.INTEGER, deathMultiRespawnButtons::number, deathMultiRespawnButtons::new); //PacketCodec.tuple(PacketCodecs.INTEGER, requestRespawn::new); diff --git a/src/client/java/modchest/networking/payload/requestRespawn.java b/src/client/java/modchestClient/networking/payload/requestRespawn.java similarity index 67% rename from src/client/java/modchest/networking/payload/requestRespawn.java rename to src/client/java/modchestClient/networking/payload/requestRespawn.java index ff59324..ffe3246 100644 --- a/src/client/java/modchest/networking/payload/requestRespawn.java +++ b/src/client/java/modchestClient/networking/payload/requestRespawn.java @@ -1,15 +1,14 @@ -package modchest.networking.payload; +package modchestClient.networking.payload; -import modchest.networking.modNetworkingServer; +import modchestClient.networking.modNetworkingClient; import net.minecraft.network.RegistryByteBuf; import net.minecraft.network.codec.PacketCodec; import net.minecraft.network.codec.PacketCodecs; import net.minecraft.network.packet.CustomPayload; public record requestRespawn(int number) implements CustomPayload { - public static final Id ID = new Id<>(modNetworkingServer.request_respawn); + public static final CustomPayload.Id ID = new CustomPayload.Id<>(modNetworkingClient.request_respawn); public static final PacketCodec CODEC = PacketCodec.tuple(PacketCodecs.INTEGER, requestRespawn::number, requestRespawn::new); - //PacketCodec.tuple(PacketCodecs.INTEGER, requestRespawn::new); @Override public Id getId() { diff --git a/src/client/java/modchest/networking/payload/startSleepingCallButtons.java b/src/client/java/modchestClient/networking/payload/startSleepingCallButtons.java similarity index 84% rename from src/client/java/modchest/networking/payload/startSleepingCallButtons.java rename to src/client/java/modchestClient/networking/payload/startSleepingCallButtons.java index c021f05..56f5d50 100644 --- a/src/client/java/modchest/networking/payload/startSleepingCallButtons.java +++ b/src/client/java/modchestClient/networking/payload/startSleepingCallButtons.java @@ -1,4 +1,4 @@ -package modchest.networking.payload; +package modchestClient.networking.payload; import modchest.networking.modNetworkingServer; import net.minecraft.network.RegistryByteBuf; @@ -7,7 +7,7 @@ import net.minecraft.network.codec.PacketCodecs; import net.minecraft.network.packet.CustomPayload; public record startSleepingCallButtons(int number) implements CustomPayload { - public static final CustomPayload.Id ID = new CustomPayload.Id<>(modNetworkingServer.request_respawn); + public static final CustomPayload.Id ID = new CustomPayload.Id<>(modNetworkingServer.start_sleeping_call_buttons); public static final PacketCodec CODEC = PacketCodec.tuple(PacketCodecs.INTEGER, startSleepingCallButtons::number, startSleepingCallButtons::new); @Override diff --git a/src/client/resources/reservermod.client.mixins.json b/src/client/resources/reservermod.client.mixins.json index 583fc92..6442100 100755 --- a/src/client/resources/reservermod.client.mixins.json +++ b/src/client/resources/reservermod.client.mixins.json @@ -1,6 +1,6 @@ { "required": true, - "package": "modchest.mixin.client", + "package": "modchestClient.mixin", "compatibilityLevel": "JAVA_17", "client": [ "DeathScreen", diff --git a/src/main/java/modchest/event/playerAfterRespawnEvent.java b/src/main/java/modchest/event/playerAfterRespawnEvent.java index f00ded7..0da4499 100644 --- a/src/main/java/modchest/event/playerAfterRespawnEvent.java +++ b/src/main/java/modchest/event/playerAfterRespawnEvent.java @@ -7,6 +7,7 @@ import net.minecraft.nbt.NbtCompound; import net.minecraft.registry.Registries; import net.minecraft.registry.Registry; import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; @@ -24,7 +25,7 @@ public class playerAfterRespawnEvent implements ServerPlayerEvents.AfterRespawn String[] parts = nbt.getString("dimension").split(":"); //holt sich die gespeicherte Dimension; trennt den String entspreichend; damit sollte es auch funktionieren, sollte eine Mod weitere Dimensionen hinzufuegen parts = parts[2].split("]"); - RegistryKey dim = RegistryKey.of(Registry, Identifier.of(parts[0])); + RegistryKey dim = RegistryKey.of(RegistryKeys.WORLD, Identifier.of(parts[0])); float angle = nbt.getFloat("angle"); //Und den blickwinkel diff --git a/src/main/java/modchest/networking/modNetworkingServer.java b/src/main/java/modchest/networking/modNetworkingServer.java index 3540623..fbe171a 100644 --- a/src/main/java/modchest/networking/modNetworkingServer.java +++ b/src/main/java/modchest/networking/modNetworkingServer.java @@ -13,10 +13,12 @@ import net.minecraft.util.Identifier; public class modNetworkingServer { //Identifier werden eingeführt public static final Identifier request_respawn = Identifier.of(REServerMod.MOD_ID, "request_respawn"); //alle Identifier muessen leider IMMER auf Client und Server (doppelt) eingefuehrt werden public static final Identifier start_sleeping_call_buttons = Identifier.of(REServerMod.MOD_ID, "start_sleeping_call_buttons"); - public static final Identifier death_multi_respawn_buttons = Identifier.of(REServerMod.MOD_ID, "death_call_respawn_buttons"); + public static final Identifier death_call_respawn_buttons = Identifier.of(REServerMod.MOD_ID, "death_call_respawn_buttons"); public static void registerS2CPackets() { //Identifier fuer packets werden registriert (Identifier die der Client aufruft um beim Server was auszufuehren) - PayloadTypeRegistry.playC2S().register(requestRespawn.ID, requestRespawn.CODEC); + PayloadTypeRegistry.playC2S().register(startSleepingCallButtons.ID, startSleepingCallButtons.CODEC); + PayloadTypeRegistry.playC2S().register(deathMultiRespawnButtons.ID, deathMultiRespawnButtons.CODEC); + //PayloadTypeRegistry.playC2S().register(requestRespawn.ID, requestRespawn.CODEC); ServerPlayNetworking.registerGlobalReceiver(startSleepingCallButtons.ID, (payload, context) -> { context.server().execute(() -> { diff --git a/src/main/java/modchest/networking/payload/deathMultiRespawnButtons.java b/src/main/java/modchest/networking/payload/deathMultiRespawnButtons.java index c56e3bd..508cb3c 100644 --- a/src/main/java/modchest/networking/payload/deathMultiRespawnButtons.java +++ b/src/main/java/modchest/networking/payload/deathMultiRespawnButtons.java @@ -7,9 +7,8 @@ import net.minecraft.network.codec.PacketCodecs; import net.minecraft.network.packet.CustomPayload; public record deathMultiRespawnButtons(int number) implements CustomPayload { - public static final Id ID = new Id<>(modNetworkingServer.request_respawn); + public static final CustomPayload.Id ID = new CustomPayload.Id<>(modNetworkingServer.death_call_respawn_buttons); public static final PacketCodec CODEC = PacketCodec.tuple(PacketCodecs.INTEGER, deathMultiRespawnButtons::number, deathMultiRespawnButtons::new); - //PacketCodec.tuple(PacketCodecs.INTEGER, requestRespawn::new); @Override public Id getId() { diff --git a/src/main/java/modchest/networking/payload/requestRespawn.java b/src/main/java/modchest/networking/payload/requestRespawn.java index ffa064a..cbca919 100644 --- a/src/main/java/modchest/networking/payload/requestRespawn.java +++ b/src/main/java/modchest/networking/payload/requestRespawn.java @@ -9,7 +9,6 @@ import net.minecraft.network.packet.CustomPayload; public record requestRespawn(int number) implements CustomPayload { public static final CustomPayload.Id ID = new CustomPayload.Id<>(modNetworkingServer.request_respawn); public static final PacketCodec CODEC = PacketCodec.tuple(PacketCodecs.INTEGER, requestRespawn::number, requestRespawn::new); - //PacketCodec.tuple(PacketCodecs.INTEGER, requestRespawn::new); @Override public Id getId() { diff --git a/src/main/java/modchest/networking/payload/startSleepingCallButtons.java b/src/main/java/modchest/networking/payload/startSleepingCallButtons.java index ed16d32..e69f627 100644 --- a/src/main/java/modchest/networking/payload/startSleepingCallButtons.java +++ b/src/main/java/modchest/networking/payload/startSleepingCallButtons.java @@ -7,7 +7,7 @@ import net.minecraft.network.codec.PacketCodecs; import net.minecraft.network.packet.CustomPayload; public record startSleepingCallButtons(int number) implements CustomPayload { - public static final Id ID = new Id<>(modNetworkingServer.request_respawn); + public static final CustomPayload.Id ID = new CustomPayload.Id<>(modNetworkingServer.start_sleeping_call_buttons); public static final PacketCodec CODEC = PacketCodec.tuple(PacketCodecs.INTEGER, startSleepingCallButtons::number, startSleepingCallButtons::new); @Override diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 20a6044..1be6cb9 100755 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -9,7 +9,8 @@ "Theo Dupuis", "Paula Dupuis", "Jakob Kircher", - "Clemens von Molo" + "Clemens von Molo", + "Hanno Reents" ], "contact": { "homepage": "reents.tv", @@ -23,7 +24,7 @@ "modchest.REServerMod" ], "client": [ - "modchest.REServerModClient" + "modchestClient.REServerModClient" ], "fabric-datagen": [ "modchest.REServerModDataGenerator" @@ -38,7 +39,7 @@ ], "depends": { "fabricloader": ">=0.14.23", - "minecraft": "~1.19.2", + "minecraft": "~1.21", "java": ">=17", "fabric-api": "*" },