diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-10-23 19:24:20 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-10-23 19:28:32 +0800 |
| commit | 1f3c9837e3c3e7e2cae805aeb7e839db5c52fb1c (patch) | |
| tree | a6394342faf80439d06f7fcda834127de795306b | |
| parent | 1eed4cdcea68a9b305120b51390a18868c550ef2 (diff) | |
| download | RoughlyEnoughItems-1f3c9837e3c3e7e2cae805aeb7e839db5c52fb1c.tar.gz RoughlyEnoughItems-1f3c9837e3c3e7e2cae805aeb7e839db5c52fb1c.tar.bz2 RoughlyEnoughItems-1f3c9837e3c3e7e2cae805aeb7e839db5c52fb1c.zip | |
Fix #640
3 files changed, 19 insertions, 5 deletions
diff --git a/fabric/src/main/java/me/shedaniel/rei/fabric/RoughlyEnoughItemsInitializerImpl.java b/fabric/src/main/java/me/shedaniel/rei/fabric/RoughlyEnoughItemsInitializerImpl.java index 47f671dc0..6c02624ac 100644 --- a/fabric/src/main/java/me/shedaniel/rei/fabric/RoughlyEnoughItemsInitializerImpl.java +++ b/fabric/src/main/java/me/shedaniel/rei/fabric/RoughlyEnoughItemsInitializerImpl.java @@ -28,6 +28,7 @@ import me.shedaniel.rei.RoughlyEnoughItemsState; import net.fabricmc.api.EnvType; import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.SemanticVersion; +import net.fabricmc.loader.api.Version; import net.fabricmc.loader.api.VersionParsingException; public class RoughlyEnoughItemsInitializerImpl { @@ -59,6 +60,16 @@ public class RoughlyEnoughItemsInitializerImpl { } if (!FabricLoader.getInstance().isModLoaded("architectury")) { RoughlyEnoughItemsState.error("Architectury API is not installed!", "https://www.curseforge.com/minecraft/mc-mods/architectury-fabric/files/all"); + } else { + Version version = FabricLoader.getInstance().getModContainer("architectury").get().getMetadata().getVersion(); + + try { + if (version instanceof SemanticVersion && SemanticVersion.parse("2.6.0").compareTo((SemanticVersion) version) > 0) { + RoughlyEnoughItemsState.error("Architectury API is too old, please update!", "https://www.curseforge.com/minecraft/mc-mods/architectury-fabric/files/all"); + } + } catch (VersionParsingException e) { + e.printStackTrace(); + } } if (isClient()) { try { diff --git a/gradle.properties b/gradle.properties index bf0e018fd..8a60c4393 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,6 +9,6 @@ fabricloader_version=0.11.6 cloth_config_version=5.0.37 modmenu_version=2.0.2 fabric_api=0.40.8+1.17 -architectury_version=2.5.32 +architectury_version=2.6.35 api_exculde= #api_include=me.shedaniel.cloth:cloth-events,me.shedaniel.cloth:config-2,me.sargunvohra.mcmods:autoconfig1u,org.jetbrains:annotations,net.fabricmc.fabric-api:fabric diff --git a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java index 8973e6a51..545cdda1e 100644 --- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java +++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java @@ -24,6 +24,7 @@ package me.shedaniel.rei; import dev.architectury.networking.NetworkManager; +import dev.architectury.networking.transformers.SplitPacketTransformer; import io.netty.buffer.Unpooled; import me.shedaniel.rei.api.common.category.CategoryIdentifier; import me.shedaniel.rei.api.common.display.Display; @@ -41,6 +42,8 @@ import net.minecraft.world.inventory.InventoryMenu; import net.minecraft.world.inventory.RecipeBookMenu; import net.minecraft.world.item.ItemStack; +import java.util.Collections; + public class RoughlyEnoughItemsNetwork { public static final ResourceLocation DELETE_ITEMS_PACKET = new ResourceLocation("roughlyenoughitems", "delete_item"); public static final ResourceLocation CREATE_ITEMS_PACKET = new ResourceLocation("roughlyenoughitems", "create_item"); @@ -50,7 +53,7 @@ public class RoughlyEnoughItemsNetwork { public static final ResourceLocation NOT_ENOUGH_ITEMS_PACKET = new ResourceLocation("roughlyenoughitems", "og_not_enough"); public static void onInitialize() { - NetworkManager.registerReceiver(NetworkManager.c2s(), DELETE_ITEMS_PACKET, (buf, context) -> { + NetworkManager.registerReceiver(NetworkManager.c2s(), DELETE_ITEMS_PACKET, Collections.singletonList(new SplitPacketTransformer()), (buf, context) -> { ServerPlayer player = (ServerPlayer) context.getPlayer(); if (player.getServer().getProfilePermissions(player.getGameProfile()) < player.getServer().getOperatorUserPermissionLevel()) { player.displayClientMessage(new TranslatableComponent("text.rei.no_permission_cheat").withStyle(ChatFormatting.RED), false); @@ -62,7 +65,7 @@ public class RoughlyEnoughItemsNetwork { menu.broadcastChanges(); } }); - NetworkManager.registerReceiver(NetworkManager.c2s(), CREATE_ITEMS_PACKET, (buf, context) -> { + NetworkManager.registerReceiver(NetworkManager.c2s(), CREATE_ITEMS_PACKET, Collections.singletonList(new SplitPacketTransformer()), (buf, context) -> { ServerPlayer player = (ServerPlayer) context.getPlayer(); if (player.getServer().getProfilePermissions(player.getGameProfile()) < player.getServer().getOperatorUserPermissionLevel()) { player.displayClientMessage(new TranslatableComponent("text.rei.no_permission_cheat").withStyle(ChatFormatting.RED), false); @@ -75,7 +78,7 @@ public class RoughlyEnoughItemsNetwork { player.displayClientMessage(new TranslatableComponent("text.rei.failed_cheat_items"), false); } }); - NetworkManager.registerReceiver(NetworkManager.c2s(), CREATE_ITEMS_GRAB_PACKET, (buf, context) -> { + NetworkManager.registerReceiver(NetworkManager.c2s(), CREATE_ITEMS_GRAB_PACKET, Collections.singletonList(new SplitPacketTransformer()), (buf, context) -> { ServerPlayer player = (ServerPlayer) context.getPlayer(); if (player.getServer().getProfilePermissions(player.getGameProfile()) < player.getServer().getOperatorUserPermissionLevel()) { player.displayClientMessage(new TranslatableComponent("text.rei.no_permission_cheat").withStyle(ChatFormatting.RED), false); @@ -94,7 +97,7 @@ public class RoughlyEnoughItemsNetwork { menu.broadcastChanges(); NetworkManager.sendToPlayer(player, RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, new FriendlyByteBuf(Unpooled.buffer()).writeItem(itemStack.copy()).writeUtf(player.getScoreboardName(), 32767)); }); - NetworkManager.registerReceiver(NetworkManager.c2s(), MOVE_ITEMS_PACKET, (packetByteBuf, context) -> { + NetworkManager.registerReceiver(NetworkManager.c2s(), MOVE_ITEMS_PACKET, Collections.singletonList(new SplitPacketTransformer()), (packetByteBuf, context) -> { ServerPlayer player = (ServerPlayer) context.getPlayer(); CategoryIdentifier<Display> category = CategoryIdentifier.of(packetByteBuf.readResourceLocation()); AbstractContainerMenu container = player.containerMenu; |
