aboutsummaryrefslogtreecommitdiff
path: root/runtime-engine/menu-info/src/main/java/me
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-10-22 01:11:04 +0800
committershedaniel <daniel@shedaniel.me>2022-10-22 01:12:32 +0800
commit0ef0f8b21df4b9a603aaa2ab4a35d395ef6437c1 (patch)
treef6f38140f94fa98adcad5b880fdc2aa3bd4df844 /runtime-engine/menu-info/src/main/java/me
parentbb7920e447d599d23abfac3b67d8823cf24f8150 (diff)
downloadRoughlyEnoughItems-0ef0f8b21df4b9a603aaa2ab4a35d395ef6437c1.tar.gz
RoughlyEnoughItems-0ef0f8b21df4b9a603aaa2ab4a35d395ef6437c1.tar.bz2
RoughlyEnoughItems-0ef0f8b21df4b9a603aaa2ab4a35d395ef6437c1.zip
Make it not crash
Diffstat (limited to 'runtime-engine/menu-info/src/main/java/me')
-rw-r--r--runtime-engine/menu-info/src/main/java/me/shedaniel/rei/impl/common/transfer/TransferNetworkModule.java (renamed from runtime-engine/menu-info/src/main/java/me/shedaniel/rei/impl/common/transfer/REITransferNetwork.java)27
-rw-r--r--runtime-engine/menu-info/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java19
2 files changed, 27 insertions, 19 deletions
diff --git a/runtime-engine/menu-info/src/main/java/me/shedaniel/rei/impl/common/transfer/REITransferNetwork.java b/runtime-engine/menu-info/src/main/java/me/shedaniel/rei/impl/common/transfer/TransferNetworkModule.java
index 357bddfa9..fe7cde2f7 100644
--- a/runtime-engine/menu-info/src/main/java/me/shedaniel/rei/impl/common/transfer/REITransferNetwork.java
+++ b/runtime-engine/menu-info/src/main/java/me/shedaniel/rei/impl/common/transfer/TransferNetworkModule.java
@@ -25,11 +25,14 @@ package me.shedaniel.rei.impl.common.transfer;
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;
-import me.shedaniel.rei.impl.common.networking.NetworkModule;
+import me.shedaniel.rei.api.common.networking.NetworkModule;
+import me.shedaniel.rei.api.common.networking.NetworkModuleKey;
import net.minecraft.ChatFormatting;
import net.minecraft.Util;
+import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
@@ -39,22 +42,22 @@ import net.minecraft.world.inventory.RecipeBookMenu;
import java.util.Collections;
-public class REITransferNetwork implements NetworkModule {
- public static final ResourceLocation MOVE_ITEMS_PACKET = new ResourceLocation("roughlyenoughitems", "move_items");
+public class TransferNetworkModule implements NetworkModule<NetworkModule.TransferData> {
+ public static final ResourceLocation ID = new ResourceLocation("roughlyenoughitems", "move_items");
@Override
- public Object getKey() {
+ public NetworkModuleKey<NetworkModule.TransferData> getKey() {
return NetworkModule.TRANSFER;
}
@Override
- public boolean canUse() {
- return NetworkManager.canServerReceive(REITransferNetwork.MOVE_ITEMS_PACKET);
+ public boolean canUse(Object target) {
+ return NetworkManager.canServerReceive(TransferNetworkModule.ID);
}
@Override
public void onInitialize() {
- NetworkManager.registerReceiver(NetworkManager.c2s(), MOVE_ITEMS_PACKET, Collections.singletonList(new SplitPacketTransformer()), (packetByteBuf, context) -> {
+ NetworkManager.registerReceiver(NetworkManager.c2s(), ID, Collections.singletonList(new SplitPacketTransformer()), (packetByteBuf, context) -> {
ServerPlayer player = (ServerPlayer) context.getPlayer();
CategoryIdentifier<Display> category = CategoryIdentifier.of(packetByteBuf.readResourceLocation());
AbstractContainerMenu container = player.containerMenu;
@@ -88,4 +91,14 @@ public class REITransferNetwork implements NetworkModule {
}
});
}
+
+ @Override
+ public void send(Object target, TransferData data) {
+ FriendlyByteBuf buf = new FriendlyByteBuf(Unpooled.buffer());
+ buf.writeResourceLocation(data.categoryIdentifier().getIdentifier());
+ buf.writeBoolean(data.stacked());
+
+ buf.writeNbt(data.displayTag());
+ NetworkManager.sendToServer(TransferNetworkModule.ID, buf);
+ }
}
diff --git a/runtime-engine/menu-info/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java b/runtime-engine/menu-info/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java
index 096b36879..14f685906 100644
--- a/runtime-engine/menu-info/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java
+++ b/runtime-engine/menu-info/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java
@@ -23,17 +23,16 @@
package me.shedaniel.rei.plugin.autocrafting;
-import dev.architectury.networking.NetworkManager;
-import io.netty.buffer.Unpooled;
import it.unimi.dsi.fastutil.ints.IntArrayList;
import it.unimi.dsi.fastutil.ints.IntLinkedOpenHashSet;
import it.unimi.dsi.fastutil.ints.IntList;
import it.unimi.dsi.fastutil.ints.IntSet;
-import me.shedaniel.rei.api.client.ClientHelper;
import me.shedaniel.rei.api.client.registry.transfer.TransferHandler;
import me.shedaniel.rei.api.common.category.CategoryIdentifier;
import me.shedaniel.rei.api.common.display.Display;
import me.shedaniel.rei.api.common.entry.InputIngredient;
+import me.shedaniel.rei.api.common.networking.NetworkModule;
+import me.shedaniel.rei.api.common.networking.NetworkingHelper;
import me.shedaniel.rei.api.common.transfer.RecipeFinder;
import me.shedaniel.rei.api.common.transfer.info.MenuInfo;
import me.shedaniel.rei.api.common.transfer.info.MenuInfoContext;
@@ -41,13 +40,11 @@ import me.shedaniel.rei.api.common.transfer.info.MenuInfoRegistry;
import me.shedaniel.rei.api.common.transfer.info.MenuTransferException;
import me.shedaniel.rei.api.common.util.CollectionUtils;
import me.shedaniel.rei.api.common.util.EntryIngredients;
-import me.shedaniel.rei.impl.common.transfer.REITransferNetwork;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
import net.minecraft.client.gui.screens.recipebook.RecipeUpdateListener;
-import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.inventory.AbstractContainerMenu;
@@ -96,7 +93,7 @@ public class DefaultCategoryHandler implements TransferHandler {
})
.tooltipMissing(CollectionUtils.map(missing, ingredient -> EntryIngredients.ofItemStacks(ingredient.get())));
}
- if (!ClientHelper.getInstance().canUseMovePackets()) {
+ if (!NetworkingHelper.getInstance().canUse(NetworkModule.TRANSFER)) {
return Result.createFailed(new TranslatableComponent("error.rei.not.on.server"));
}
if (!context.isActuallyCrafting()) {
@@ -107,12 +104,10 @@ public class DefaultCategoryHandler implements TransferHandler {
if (containerScreen instanceof RecipeUpdateListener listener) {
listener.getRecipeBookComponent().ghostRecipe.clear();
}
- FriendlyByteBuf buf = new FriendlyByteBuf(Unpooled.buffer());
- buf.writeResourceLocation(display.getCategoryIdentifier().getIdentifier());
- buf.writeBoolean(context.isStackedCrafting());
-
- buf.writeNbt(menuInfo.save(menuInfoContext, display));
- NetworkManager.sendToServer(REITransferNetwork.MOVE_ITEMS_PACKET, buf);
+ NetworkingHelper.getInstance().sendToServer(NetworkModule.TRANSFER,
+ new NetworkModule.TransferData(display.getCategoryIdentifier(),
+ context.isStackedCrafting(),
+ menuInfo.save(menuInfoContext, display)));
return Result.createSuccessful();
}