From 897e9545c2392bb7111f09b804a2c3e70aab140c Mon Sep 17 00:00:00 2001 From: KennyTV Date: Thu, 3 Sep 2020 16:47:35 +0200 Subject: [PATCH] Fix 1.13<->1.12 special case handling --- .../protocol1_12_2to1_13/data/BackwardsMappings.java | 6 ++++++ .../packets/BlockItemPackets1_13.java | 12 +++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/data/BackwardsMappings.java b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/data/BackwardsMappings.java index 1e579244..7216925b 100644 --- a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/data/BackwardsMappings.java +++ b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/data/BackwardsMappings.java @@ -84,6 +84,12 @@ public class BackwardsMappings extends nl.matsv.viabackwards.api.data.BackwardsM } } + @Override + public int getOldItemId(final int id) { + // Return -1 when missing + return this.itemMappings.inverse().get(id); + } + @Override @Nullable protected Mappings loadFromObject(JsonObject oldMappings, JsonObject newMappings, @Nullable JsonObject diffMappings, String key) { diff --git a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java index 47c853da..0c12c9b9 100644 --- a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java +++ b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_12_2to1_13/packets/BlockItemPackets1_13.java @@ -527,12 +527,9 @@ public class BlockItemPackets1_13 extends nl.matsv.viabackwards.api.rewriters.It // Look for custom mappings super.handleItemToClient(item); - // No custom mapping found, look at VV mappings - if (item.getIdentifier() == originalId) { - int oldId = protocol.getMappingData().getItemMappings().get(item.getIdentifier()); - if (oldId != -1) { - rawId = itemIdToRaw(oldId, item, tag); - } else if (item.getIdentifier() == 362) { // base/colorless shulker box + // Handle one-way special case + if (item.getIdentifier() == -1) { + if (originalId == 362) { // base/colorless shulker box rawId = 0xe50000; // purple shulker box } else { if (!Via.getConfig().isSuppressConversionWarnings() || Via.getManager().isDebug()) { @@ -816,8 +813,9 @@ public class BlockItemPackets1_13 extends nl.matsv.viabackwards.api.rewriters.It int identifier = item.getIdentifier(); item.setIdentifier(rawId); super.handleItemToServer(item); + // Mapped with original data, we can return here - if (item.getIdentifier() != rawId) return item; + if (item.getIdentifier() != rawId && item.getIdentifier() != -1) return item; // Set to legacy id again item.setIdentifier(identifier);