diff options
| author | shedaniel <daniel@shedaniel.me> | 2023-09-30 01:31:56 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2023-09-30 01:31:56 +0800 |
| commit | 56aea58a119aa3ea6b9611d6ca1a3dee7f9bfd07 (patch) | |
| tree | 8999fe622c0958586eecebb3e533b89b600d5e65 | |
| parent | 84d6904b59979e9d3d4af744df5aaaab3c189915 (diff) | |
| parent | 67d12db3f28127232ffe8e02957076f210c5cc92 (diff) | |
| download | RoughlyEnoughItems-56aea58a119aa3ea6b9611d6ca1a3dee7f9bfd07.tar.gz RoughlyEnoughItems-56aea58a119aa3ea6b9611d6ca1a3dee7f9bfd07.tar.bz2 RoughlyEnoughItems-56aea58a119aa3ea6b9611d6ca1a3dee7f9bfd07.zip | |
Merge remote-tracking branch 'origin/12.x-1.20' into 13.x-1.20.2
# Conflicts:
# runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java
| -rw-r--r-- | runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java | 11 | ||||
| -rw-r--r-- | runtime/src/main/java/me/shedaniel/rei/impl/client/transfer/SimpleTransferHandlerImpl.java | 8 |
2 files changed, 13 insertions, 6 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java index a54325403..58b4cd21a 100644 --- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java +++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java @@ -172,7 +172,9 @@ public class RoughlyEnoughItemsNetwork { boolean shift = packetByteBuf.readBoolean(); try { CompoundTag nbt = packetByteBuf.readNbt(); - List<InputIngredient<ItemStack>> inputs = readInputs(nbt.getCompound("Inputs")); + int version = nbt.getInt("Version"); + if (version != 1) throw new IllegalStateException("Server and client REI protocol version mismatch! Server: 1, Client: " + version); + List<InputIngredient<ItemStack>> inputs = readInputs(nbt.getList("Inputs", Tag.TAG_COMPOUND)); List<SlotAccessor> input = readSlots(container, player, nbt.getList("InputSlots", Tag.TAG_COMPOUND)); List<SlotAccessor> inventory = readSlots(container, player, nbt.getList("InventorySlots", Tag.TAG_COMPOUND)); NewInputSlotCrafter<AbstractContainerMenu, Container> crafter = new NewInputSlotCrafter<>(container, input, inventory, inputs); @@ -201,10 +203,11 @@ public class RoughlyEnoughItemsNetwork { return slots; } - private static List<InputIngredient<ItemStack>> readInputs(CompoundTag tag) { + private static List<InputIngredient<ItemStack>> readInputs(ListTag tag) { List<InputIngredient<ItemStack>> inputs = new ArrayList<>(); - for (Map.Entry<String, Tag> entry : tag.tags.entrySet()) { - InputIngredient<EntryStack<?>> stacks = InputIngredient.of(Integer.parseInt(entry.getKey()), EntryIngredient.read((ListTag) entry.getValue())); + for (Tag t : tag) { + CompoundTag compoundTag = (CompoundTag) t; + InputIngredient<EntryStack<?>> stacks = InputIngredient.of(compoundTag.getInt("Index"), EntryIngredient.read(compoundTag.getList("Ingredient", Tag.TAG_COMPOUND))); inputs.add(InputIngredient.withType(stacks, VanillaEntryTypes.ITEM)); } return inputs; diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/transfer/SimpleTransferHandlerImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/transfer/SimpleTransferHandlerImpl.java index ef7d59c79..893562fbe 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/transfer/SimpleTransferHandlerImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/transfer/SimpleTransferHandlerImpl.java @@ -94,6 +94,7 @@ public enum SimpleTransferHandlerImpl implements ClientInternals.SimpleTransferH private CompoundTag save(TransferHandler.Context context, List<InputIngredient<ItemStack>> inputs, Iterable<SlotAccessor> inputSlots, Iterable<SlotAccessor> inventorySlots) { CompoundTag tag = new CompoundTag(); + tag.putInt("Version", 1); tag.put("Inputs", saveInputs(inputs)); tag.put("InventorySlots", saveSlots(context,inventorySlots)); tag.put("InputSlots", saveSlots(context, inputSlots)); @@ -111,10 +112,13 @@ public enum SimpleTransferHandlerImpl implements ClientInternals.SimpleTransferH } private Tag saveInputs(List<InputIngredient<ItemStack>> inputs) { - CompoundTag tag = new CompoundTag(); + ListTag tag = new ListTag(); for (InputIngredient<ItemStack> input : inputs) { - tag.put(String.valueOf(input.getIndex()), EntryIngredients.ofItemStacks(input.get()).saveIngredient()); + CompoundTag innerTag = new CompoundTag(); + innerTag.put("Ingredient", EntryIngredients.ofItemStacks(input.get()).saveIngredient()); + innerTag.putInt("Index", input.getIndex()); + tag.add(innerTag); } return tag; |
