From 377a0f592b87d3ac929c1ec19ffeec9db1851a80 Mon Sep 17 00:00:00 2001 From: lukasabbe <67807954+lukasabbe@users.noreply.github.com> Date: Wed, 30 Oct 2024 23:35:54 +0100 Subject: [PATCH] 1.21.4 version, reworks to network handling. No code changes just made it more clear --- gradle.properties | 10 ++--- .../Bookshelfinspector.java | 37 ++++--------------- .../BookshelfinspectorClient.java | 28 +++----------- .../client/BookShelfInventoryHandler.java | 28 ++++++++++++++ .../network/client/ModPayloadHandler.java | 19 ++++++++++ .../BookShelfInventoryPayload.java | 3 +- .../BookShelfInventoryRequestPayload.java | 3 +- .../LecternInventoryRequestPayload.java | 3 +- .../{ => packets}/ModCheckPayload.java | 3 +- ...okShelfInventoryRequestPayloadHandler.java | 25 +++++++++++++ ...LecternInventoryRequestPayloadHandler.java | 26 +++++++++++++ .../bookshelfinspector/util/Inspector.java | 4 +- .../assets/bookshelfinspector/lang/sv_se.json | 2 +- src/main/resources/fabric.mod.json | 2 +- 14 files changed, 129 insertions(+), 64 deletions(-) create mode 100644 src/main/java/me/lukasabbe/bookshelfinspector/network/client/BookShelfInventoryHandler.java create mode 100644 src/main/java/me/lukasabbe/bookshelfinspector/network/client/ModPayloadHandler.java rename src/main/java/me/lukasabbe/bookshelfinspector/network/{ => packets}/BookShelfInventoryPayload.java (88%) rename src/main/java/me/lukasabbe/bookshelfinspector/network/{ => packets}/BookShelfInventoryRequestPayload.java (86%) rename src/main/java/me/lukasabbe/bookshelfinspector/network/{ => packets}/LecternInventoryRequestPayload.java (84%) rename src/main/java/me/lukasabbe/bookshelfinspector/network/{ => packets}/ModCheckPayload.java (83%) create mode 100644 src/main/java/me/lukasabbe/bookshelfinspector/network/server/BookShelfInventoryRequestPayloadHandler.java create mode 100644 src/main/java/me/lukasabbe/bookshelfinspector/network/server/LecternInventoryRequestPayloadHandler.java diff --git a/gradle.properties b/gradle.properties index 1d29558..f3da13b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,16 +2,16 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://modmuss50.me/fabric.html -minecraft_version=1.21.2 -yarn_mappings=1.21.2+build.1 -loader_version=0.16.7 +minecraft_version=24w44a +yarn_mappings=24w44a+build.1 +loader_version=0.16.9 # Mod Properties -mod_version=1.5+1.21.2 +mod_version=1.5+1.21.4-SNAPSHOT.1 maven_group=me.lukasabbe archives_base_name=Bookshelfinspector # Dependencies -fabric_version=0.106.1+1.21.2 +fabric_version=0.107.0+1.21.4 cloth_config=16.0.141 modmenu=12.0.0-beta.1 YAML_snake=2.2 \ No newline at end of file diff --git a/src/main/java/me/lukasabbe/bookshelfinspector/Bookshelfinspector.java b/src/main/java/me/lukasabbe/bookshelfinspector/Bookshelfinspector.java index e65a5db..c5fe547 100644 --- a/src/main/java/me/lukasabbe/bookshelfinspector/Bookshelfinspector.java +++ b/src/main/java/me/lukasabbe/bookshelfinspector/Bookshelfinspector.java @@ -1,17 +1,15 @@ package me.lukasabbe.bookshelfinspector; -import me.lukasabbe.bookshelfinspector.network.BookShelfInventoryPayload; -import me.lukasabbe.bookshelfinspector.network.BookShelfInventoryRequestPayload; -import me.lukasabbe.bookshelfinspector.network.LecternInventoryRequestPayload; -import me.lukasabbe.bookshelfinspector.network.ModCheckPayload; -import me.lukasabbe.bookshelfinspector.util.BookshelfTools; -import me.lukasabbe.bookshelfinspector.util.LecternTools; +import me.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryPayload; +import me.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryRequestPayload; +import me.lukasabbe.bookshelfinspector.network.packets.LecternInventoryRequestPayload; +import me.lukasabbe.bookshelfinspector.network.packets.ModCheckPayload; +import me.lukasabbe.bookshelfinspector.network.server.BookShelfInventoryRequestPayloadHandler; +import me.lukasabbe.bookshelfinspector.network.server.LecternInventoryRequestPayloadHandler; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; import net.minecraft.server.MinecraftServer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,28 +27,9 @@ public class Bookshelfinspector implements ModInitializer { PayloadTypeRegistry.playS2C().register(BookShelfInventoryPayload.ID,BookShelfInventoryPayload.CODEC); PayloadTypeRegistry.playS2C().register(ModCheckPayload.ID, ModCheckPayload.CODEC); - ServerPlayNetworking.registerGlobalReceiver(BookShelfInventoryRequestPayload.ID,((payload, context) -> context.server().execute(() -> { - if(Bookshelfinspector.serverInstance == null) return; + ServerPlayNetworking.registerGlobalReceiver(BookShelfInventoryRequestPayload.ID, new BookShelfInventoryRequestPayloadHandler()); - ItemStack stack = BookshelfTools.getItemById(payload.pos(),payload.slotNum(),context.player()); - if(stack == null){ - ServerPlayNetworking.send(context.player(), new BookShelfInventoryPayload(Items.AIR.getDefaultStack(), payload.pos(), payload.slotNum())); - return; - } - ServerPlayNetworking.send(context.player(), new BookShelfInventoryPayload(stack, payload.pos(), payload.slotNum())); - }))); - - ServerPlayNetworking.registerGlobalReceiver(LecternInventoryRequestPayload.ID, ((payload, context) -> context.server().execute(() ->{ - if(Bookshelfinspector.serverInstance == null) return; - - ItemStack stack = LecternTools.getItemStack(payload.pos(), context.player()); - - if(stack == null){ - ServerPlayNetworking.send(context.player(), new BookShelfInventoryPayload(Items.AIR.getDefaultStack(), payload.pos(), 0)); - return; - } - ServerPlayNetworking.send(context.player(), new BookShelfInventoryPayload(stack, payload.pos(), 0)); - }))); + ServerPlayNetworking.registerGlobalReceiver(LecternInventoryRequestPayload.ID, new LecternInventoryRequestPayloadHandler()); ServerPlayConnectionEvents.JOIN.register(((handler, sender, server) -> { serverInstance = server; diff --git a/src/main/java/me/lukasabbe/bookshelfinspector/BookshelfinspectorClient.java b/src/main/java/me/lukasabbe/bookshelfinspector/BookshelfinspectorClient.java index 00f7903..218ba51 100644 --- a/src/main/java/me/lukasabbe/bookshelfinspector/BookshelfinspectorClient.java +++ b/src/main/java/me/lukasabbe/bookshelfinspector/BookshelfinspectorClient.java @@ -3,14 +3,15 @@ package me.lukasabbe.bookshelfinspector; import me.lukasabbe.bookshelfinspector.config.Config; import me.lukasabbe.bookshelfinspector.data.BookData; import me.lukasabbe.bookshelfinspector.data.BookShelfData; -import me.lukasabbe.bookshelfinspector.network.BookShelfInventoryPayload; -import me.lukasabbe.bookshelfinspector.network.ModCheckPayload; +import me.lukasabbe.bookshelfinspector.network.client.BookShelfInventoryHandler; +import me.lukasabbe.bookshelfinspector.network.client.ModPayloadHandler; +import me.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryPayload; +import me.lukasabbe.bookshelfinspector.network.packets.ModCheckPayload; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; -import net.minecraft.item.Items; @Environment(EnvType.CLIENT) public class BookshelfinspectorClient implements ClientModInitializer { @@ -23,26 +24,9 @@ public class BookshelfinspectorClient implements ClientModInitializer { @Override public void onInitializeClient() { config.loadConfig(); - ClientPlayNetworking.registerGlobalReceiver(BookShelfInventoryPayload.ID, - ((payload, context) -> - context.client().execute(() ->{ - bookShelfData.requestSent = false; - if(payload.itemStack().isOf(Items.AIR)){ - bookShelfData.isCurrentBookDataToggled = false; - currentBookData = BookData.empty(); - currentBookData.slotId = -2; - } - else{ - bookShelfData.isCurrentBookDataToggled = true; - currentBookData = new BookData(payload.itemStack(),payload.pos(),payload.slotNum()); - } - }))); + ClientPlayNetworking.registerGlobalReceiver(BookShelfInventoryPayload.ID, new BookShelfInventoryHandler()); + ClientPlayNetworking.registerGlobalReceiver(ModCheckPayload.ID,new ModPayloadHandler()); - ClientPlayNetworking.registerGlobalReceiver(ModCheckPayload.ID, - (payload, context) -> context.client().execute(() ->{ - Bookshelfinspector.LOGGER.info("[bookshelfinspector] Connected to server"); - modAvailable = true; - })); ClientPlayConnectionEvents.DISCONNECT.register((handler, client) -> { modAvailable = false; bookShelfData = new BookShelfData(); diff --git a/src/main/java/me/lukasabbe/bookshelfinspector/network/client/BookShelfInventoryHandler.java b/src/main/java/me/lukasabbe/bookshelfinspector/network/client/BookShelfInventoryHandler.java new file mode 100644 index 0000000..6e1671b --- /dev/null +++ b/src/main/java/me/lukasabbe/bookshelfinspector/network/client/BookShelfInventoryHandler.java @@ -0,0 +1,28 @@ +package me.lukasabbe.bookshelfinspector.network.client; + +import me.lukasabbe.bookshelfinspector.BookshelfinspectorClient; +import me.lukasabbe.bookshelfinspector.data.BookData; +import me.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryPayload; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.item.Items; + +@Environment(EnvType.CLIENT) +public class BookShelfInventoryHandler implements ClientPlayNetworking.PlayPayloadHandler { + @Override + public void receive(BookShelfInventoryPayload bookShelfInventoryPayload, ClientPlayNetworking.Context context) { + context.client().execute(() ->{ + BookshelfinspectorClient.bookShelfData.requestSent = false; + if(bookShelfInventoryPayload.itemStack().isOf(Items.AIR)){ + BookshelfinspectorClient.bookShelfData.isCurrentBookDataToggled = false; + BookshelfinspectorClient.currentBookData = BookData.empty(); + BookshelfinspectorClient.currentBookData.slotId = -2; + } + else{ + BookshelfinspectorClient.bookShelfData.isCurrentBookDataToggled = true; + BookshelfinspectorClient.currentBookData = new BookData(bookShelfInventoryPayload.itemStack(),bookShelfInventoryPayload.pos(),bookShelfInventoryPayload.slotNum()); + } + }); + } +} diff --git a/src/main/java/me/lukasabbe/bookshelfinspector/network/client/ModPayloadHandler.java b/src/main/java/me/lukasabbe/bookshelfinspector/network/client/ModPayloadHandler.java new file mode 100644 index 0000000..58685e8 --- /dev/null +++ b/src/main/java/me/lukasabbe/bookshelfinspector/network/client/ModPayloadHandler.java @@ -0,0 +1,19 @@ +package me.lukasabbe.bookshelfinspector.network.client; + +import me.lukasabbe.bookshelfinspector.Bookshelfinspector; +import me.lukasabbe.bookshelfinspector.BookshelfinspectorClient; +import me.lukasabbe.bookshelfinspector.network.packets.ModCheckPayload; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; + +@Environment(EnvType.CLIENT) +public class ModPayloadHandler implements ClientPlayNetworking.PlayPayloadHandler { + @Override + public void receive(ModCheckPayload modCheckPayload, ClientPlayNetworking.Context context) { + context.client().execute(() ->{ + Bookshelfinspector.LOGGER.info("[bookshelfinspector] Connected to server"); + BookshelfinspectorClient.modAvailable = true; + }); + } +} diff --git a/src/main/java/me/lukasabbe/bookshelfinspector/network/BookShelfInventoryPayload.java b/src/main/java/me/lukasabbe/bookshelfinspector/network/packets/BookShelfInventoryPayload.java similarity index 88% rename from src/main/java/me/lukasabbe/bookshelfinspector/network/BookShelfInventoryPayload.java rename to src/main/java/me/lukasabbe/bookshelfinspector/network/packets/BookShelfInventoryPayload.java index 7ed9360..83719dd 100644 --- a/src/main/java/me/lukasabbe/bookshelfinspector/network/BookShelfInventoryPayload.java +++ b/src/main/java/me/lukasabbe/bookshelfinspector/network/packets/BookShelfInventoryPayload.java @@ -1,5 +1,6 @@ -package me.lukasabbe.bookshelfinspector.network; +package me.lukasabbe.bookshelfinspector.network.packets; +import me.lukasabbe.bookshelfinspector.network.BookShelfInspectorNetworkConstants; import net.minecraft.item.ItemStack; import net.minecraft.network.RegistryByteBuf; import net.minecraft.network.codec.PacketCodec; diff --git a/src/main/java/me/lukasabbe/bookshelfinspector/network/BookShelfInventoryRequestPayload.java b/src/main/java/me/lukasabbe/bookshelfinspector/network/packets/BookShelfInventoryRequestPayload.java similarity index 86% rename from src/main/java/me/lukasabbe/bookshelfinspector/network/BookShelfInventoryRequestPayload.java rename to src/main/java/me/lukasabbe/bookshelfinspector/network/packets/BookShelfInventoryRequestPayload.java index 34155fd..918dba2 100644 --- a/src/main/java/me/lukasabbe/bookshelfinspector/network/BookShelfInventoryRequestPayload.java +++ b/src/main/java/me/lukasabbe/bookshelfinspector/network/packets/BookShelfInventoryRequestPayload.java @@ -1,5 +1,6 @@ -package me.lukasabbe.bookshelfinspector.network; +package me.lukasabbe.bookshelfinspector.network.packets; +import me.lukasabbe.bookshelfinspector.network.BookShelfInspectorNetworkConstants; import net.minecraft.network.RegistryByteBuf; import net.minecraft.network.codec.PacketCodec; import net.minecraft.network.codec.PacketCodecs; diff --git a/src/main/java/me/lukasabbe/bookshelfinspector/network/LecternInventoryRequestPayload.java b/src/main/java/me/lukasabbe/bookshelfinspector/network/packets/LecternInventoryRequestPayload.java similarity index 84% rename from src/main/java/me/lukasabbe/bookshelfinspector/network/LecternInventoryRequestPayload.java rename to src/main/java/me/lukasabbe/bookshelfinspector/network/packets/LecternInventoryRequestPayload.java index 07751aa..29cd8e5 100644 --- a/src/main/java/me/lukasabbe/bookshelfinspector/network/LecternInventoryRequestPayload.java +++ b/src/main/java/me/lukasabbe/bookshelfinspector/network/packets/LecternInventoryRequestPayload.java @@ -1,5 +1,6 @@ -package me.lukasabbe.bookshelfinspector.network; +package me.lukasabbe.bookshelfinspector.network.packets; +import me.lukasabbe.bookshelfinspector.network.BookShelfInspectorNetworkConstants; import net.minecraft.network.RegistryByteBuf; import net.minecraft.network.codec.PacketCodec; import net.minecraft.network.packet.CustomPayload; diff --git a/src/main/java/me/lukasabbe/bookshelfinspector/network/ModCheckPayload.java b/src/main/java/me/lukasabbe/bookshelfinspector/network/packets/ModCheckPayload.java similarity index 83% rename from src/main/java/me/lukasabbe/bookshelfinspector/network/ModCheckPayload.java rename to src/main/java/me/lukasabbe/bookshelfinspector/network/packets/ModCheckPayload.java index 7d40785..5f2866c 100644 --- a/src/main/java/me/lukasabbe/bookshelfinspector/network/ModCheckPayload.java +++ b/src/main/java/me/lukasabbe/bookshelfinspector/network/packets/ModCheckPayload.java @@ -1,5 +1,6 @@ -package me.lukasabbe.bookshelfinspector.network; +package me.lukasabbe.bookshelfinspector.network.packets; +import me.lukasabbe.bookshelfinspector.network.BookShelfInspectorNetworkConstants; import net.minecraft.network.RegistryByteBuf; import net.minecraft.network.codec.PacketCodec; import net.minecraft.network.codec.PacketCodecs; diff --git a/src/main/java/me/lukasabbe/bookshelfinspector/network/server/BookShelfInventoryRequestPayloadHandler.java b/src/main/java/me/lukasabbe/bookshelfinspector/network/server/BookShelfInventoryRequestPayloadHandler.java new file mode 100644 index 0000000..18e211a --- /dev/null +++ b/src/main/java/me/lukasabbe/bookshelfinspector/network/server/BookShelfInventoryRequestPayloadHandler.java @@ -0,0 +1,25 @@ +package me.lukasabbe.bookshelfinspector.network.server; + +import me.lukasabbe.bookshelfinspector.Bookshelfinspector; +import me.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryPayload; +import me.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryRequestPayload; +import me.lukasabbe.bookshelfinspector.util.BookshelfTools; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; + +public class BookShelfInventoryRequestPayloadHandler implements ServerPlayNetworking.PlayPayloadHandler { + @Override + public void receive(BookShelfInventoryRequestPayload bookShelfInventoryRequestPayload, ServerPlayNetworking.Context context) { + context.server().execute(() -> { + if(Bookshelfinspector.serverInstance == null) return; + + ItemStack stack = BookshelfTools.getItemById(bookShelfInventoryRequestPayload.pos(),bookShelfInventoryRequestPayload.slotNum(),context.player()); + if(stack == null){ + ServerPlayNetworking.send(context.player(), new BookShelfInventoryPayload(Items.AIR.getDefaultStack(), bookShelfInventoryRequestPayload.pos(), bookShelfInventoryRequestPayload.slotNum())); + return; + } + ServerPlayNetworking.send(context.player(), new BookShelfInventoryPayload(stack, bookShelfInventoryRequestPayload.pos(), bookShelfInventoryRequestPayload.slotNum())); + }); + } +} diff --git a/src/main/java/me/lukasabbe/bookshelfinspector/network/server/LecternInventoryRequestPayloadHandler.java b/src/main/java/me/lukasabbe/bookshelfinspector/network/server/LecternInventoryRequestPayloadHandler.java new file mode 100644 index 0000000..6fdaa58 --- /dev/null +++ b/src/main/java/me/lukasabbe/bookshelfinspector/network/server/LecternInventoryRequestPayloadHandler.java @@ -0,0 +1,26 @@ +package me.lukasabbe.bookshelfinspector.network.server; + +import me.lukasabbe.bookshelfinspector.Bookshelfinspector; +import me.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryPayload; +import me.lukasabbe.bookshelfinspector.network.packets.LecternInventoryRequestPayload; +import me.lukasabbe.bookshelfinspector.util.LecternTools; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; + +public class LecternInventoryRequestPayloadHandler implements ServerPlayNetworking.PlayPayloadHandler{ + @Override + public void receive(LecternInventoryRequestPayload lecternInventoryRequestPayload, ServerPlayNetworking.Context context) { + context.server().execute(() ->{ + if(Bookshelfinspector.serverInstance == null) return; + + ItemStack stack = LecternTools.getItemStack(lecternInventoryRequestPayload.pos(), context.player()); + + if(stack == null){ + ServerPlayNetworking.send(context.player(), new BookShelfInventoryPayload(Items.AIR.getDefaultStack(), lecternInventoryRequestPayload.pos(), 0)); + return; + } + ServerPlayNetworking.send(context.player(), new BookShelfInventoryPayload(stack, lecternInventoryRequestPayload.pos(), 0)); + }); + } +} diff --git a/src/main/java/me/lukasabbe/bookshelfinspector/util/Inspector.java b/src/main/java/me/lukasabbe/bookshelfinspector/util/Inspector.java index 6a1db55..0e95b5f 100644 --- a/src/main/java/me/lukasabbe/bookshelfinspector/util/Inspector.java +++ b/src/main/java/me/lukasabbe/bookshelfinspector/util/Inspector.java @@ -3,8 +3,8 @@ package me.lukasabbe.bookshelfinspector.util; import me.lukasabbe.bookshelfinspector.BookshelfinspectorClient; import me.lukasabbe.bookshelfinspector.data.BookData; import me.lukasabbe.bookshelfinspector.mixin.BookshelfInvoker; -import me.lukasabbe.bookshelfinspector.network.BookShelfInventoryRequestPayload; -import me.lukasabbe.bookshelfinspector.network.LecternInventoryRequestPayload; +import me.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryRequestPayload; +import me.lukasabbe.bookshelfinspector.network.packets.LecternInventoryRequestPayload; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; diff --git a/src/main/resources/assets/bookshelfinspector/lang/sv_se.json b/src/main/resources/assets/bookshelfinspector/lang/sv_se.json index 6d167bd..47a2c42 100644 --- a/src/main/resources/assets/bookshelfinspector/lang/sv_se.json +++ b/src/main/resources/assets/bookshelfinspector/lang/sv_se.json @@ -2,5 +2,5 @@ "bookshelfinspector.config.title": "Bookshelf Inspector Config", "bookshelfinspector.config.category": "Inställningar", "bookshelfinspector.config.lectern.toggle": "Stäng AV eller PÅ läspulpet stöd", - "bookshelfinspector.config.lectern.toggle.tooltip": "Denna inställning kommer stänga av eller på synligeten av läspulpet inspection" + "bookshelfinspector.config.lectern.toggle.tooltip": "Denna inställning kommer stänga av eller på synligeten av läspulpet inspektion" } \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 7cf0969..6e2125f 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -25,7 +25,7 @@ ], "depends": { "fabricloader": ">=${loader_version}", - "minecraft": ">=1.21.2", + "minecraft": ">=1.21.4-alpha.24.44.a", "fabric-api-base": "*", "fabric-networking-api-v1": "*", "fabric-lifecycle-events-v1": "*"