From 803c24f4d3a9b3bb2e1bc1951ad596d59e56b84d Mon Sep 17 00:00:00 2001 From: KennyTV Date: Wed, 12 Aug 2020 22:32:19 +0200 Subject: [PATCH] Rewrite item/block/entity ids in statistics --- .../api/ViaBackwardsPlatform.java | 2 +- .../Protocol1_13_2To1_14.java | 4 +++ .../Protocol1_14_4To1_15.java | 4 +++ .../Protocol1_15_2To1_16.java | 34 +++---------------- .../Protocol1_16_1To1_16_2.java | 4 +++ pom.xml | 2 +- 6 files changed, 19 insertions(+), 31 deletions(-) diff --git a/core/src/main/java/nl/matsv/viabackwards/api/ViaBackwardsPlatform.java b/core/src/main/java/nl/matsv/viabackwards/api/ViaBackwardsPlatform.java index 402ac76d..3cc73b60 100644 --- a/core/src/main/java/nl/matsv/viabackwards/api/ViaBackwardsPlatform.java +++ b/core/src/main/java/nl/matsv/viabackwards/api/ViaBackwardsPlatform.java @@ -44,7 +44,7 @@ import static us.myles.ViaVersion.api.protocol.ProtocolRegistry.registerProtocol public interface ViaBackwardsPlatform { - String MINIMUM_VV_VERSION = "3.1.0"; + String MINIMUM_VV_VERSION = "3.1.1"; /** * Initialize ViaBackwards. diff --git a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_13_2to1_14/Protocol1_13_2To1_14.java b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_13_2to1_14/Protocol1_13_2To1_14.java index 26b9d61d..87921f0e 100644 --- a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_13_2to1_14/Protocol1_13_2To1_14.java +++ b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_13_2to1_14/Protocol1_13_2To1_14.java @@ -14,6 +14,7 @@ import us.myles.ViaVersion.api.PacketWrapper; import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.remapper.PacketHandler; import us.myles.ViaVersion.api.remapper.PacketRemapper; +import us.myles.ViaVersion.api.rewriters.StatisticsRewriter; import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.ClientboundPackets1_13; import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.ServerboundPackets1_13; @@ -52,6 +53,9 @@ public class Protocol1_13_2To1_14 extends BackwardsProtocol BackwardsMappings.blockMappings.getNewId(id), id -> + MappingData.oldToNewItems.inverse().get(id), entityPackets::getOldEntityId).register(ClientboundPackets1_14.STATISTICS); + cancelOutgoing(ClientboundPackets1_14.UPDATE_VIEW_POSITION); cancelOutgoing(ClientboundPackets1_14.UPDATE_VIEW_DISTANCE); cancelOutgoing(ClientboundPackets1_14.ACKNOWLEDGE_PLAYER_DIGGING); diff --git a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_14_4to1_15/Protocol1_14_4To1_15.java b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_14_4to1_15/Protocol1_14_4To1_15.java index 88867675..df8799cf 100644 --- a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_14_4to1_15/Protocol1_14_4To1_15.java +++ b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_14_4to1_15/Protocol1_14_4To1_15.java @@ -13,6 +13,7 @@ import nl.matsv.viabackwards.protocol.protocol1_14_4to1_15.packets.EntityPackets import us.myles.ViaVersion.api.PacketWrapper; import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.remapper.PacketRemapper; +import us.myles.ViaVersion.api.rewriters.StatisticsRewriter; import us.myles.ViaVersion.api.rewriters.TagRewriter; import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.ClientboundPackets1_14; @@ -80,6 +81,9 @@ public class Protocol1_14_4To1_15 extends BackwardsProtocol BackwardsMappings.blockMappings.getNewId(id), id -> MappingData.oldToNewItems.inverse().get(id), EntityTypeMapping::getOldEntityId).register(ClientboundPackets1_15.TAGS); + + new StatisticsRewriter(this, id -> BackwardsMappings.blockMappings.getNewId(id), id -> + MappingData.oldToNewItems.inverse().get(id), EntityTypeMapping::getOldEntityId).register(ClientboundPackets1_15.STATISTICS); } public static int getNewBlockStateId(int id) { diff --git a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_15_2to1_16/Protocol1_15_2To1_16.java b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_15_2to1_16/Protocol1_15_2To1_16.java index cbe5f508..78c1d04f 100644 --- a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_15_2to1_16/Protocol1_15_2To1_16.java +++ b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_15_2to1_16/Protocol1_15_2To1_16.java @@ -12,6 +12,7 @@ import nl.matsv.viabackwards.protocol.protocol1_15_2to1_16.packets.EntityPackets import nl.matsv.viabackwards.protocol.protocol1_15_2to1_16.storage.PlayerSneakStorage; import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.remapper.PacketRemapper; +import us.myles.ViaVersion.api.rewriters.StatisticsRewriter; import us.myles.ViaVersion.api.rewriters.TagRewriter; import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.packets.State; @@ -95,38 +96,13 @@ public class Protocol1_15_2To1_16 extends BackwardsProtocol { - int size = wrapper.passthrough(Type.VAR_INT); - - int newSize = size; - for (int i = 0; i < size; i++) { - int categoryId = wrapper.read(Type.VAR_INT); - int statisticId = wrapper.read(Type.VAR_INT); - // New statistics - if (statisticId > 49) { - wrapper.read(Type.VAR_INT); - newSize--; - continue; - } - - wrapper.write(Type.VAR_INT, categoryId); - wrapper.write(Type.VAR_INT, statisticId); - wrapper.passthrough(Type.VAR_INT); // value - } - - if (newSize != size) { - wrapper.set(Type.VAR_INT, 0, newSize); - } - }); - } - }); - new TagRewriter(this, id -> BackwardsMappings.blockMappings.getNewId(id), id -> MappingData.oldToNewItems.inverse().get(id), entityPackets::getOldEntityId).register(ClientboundPackets1_16.TAGS); + new StatisticsRewriter(this, id -> BackwardsMappings.blockMappings.getNewId(id), id -> + MappingData.oldToNewItems.inverse().get(id), entityPackets::getOldEntityId, + categoryId -> categoryId > 49 ? -1 : categoryId).register(ClientboundPackets1_15.STATISTICS); + registerIncoming(ServerboundPackets1_14.ENTITY_ACTION, new PacketRemapper() { @Override public void registerMap() { diff --git a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_16_1to1_16_2/Protocol1_16_1To1_16_2.java b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_16_1to1_16_2/Protocol1_16_1To1_16_2.java index 6fc681d4..a91fe2dc 100644 --- a/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_16_1to1_16_2/Protocol1_16_1To1_16_2.java +++ b/core/src/main/java/nl/matsv/viabackwards/protocol/protocol1_16_1to1_16_2/Protocol1_16_1To1_16_2.java @@ -12,6 +12,7 @@ import us.myles.ViaVersion.api.PacketWrapper; import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.remapper.PacketHandler; import us.myles.ViaVersion.api.remapper.PacketRemapper; +import us.myles.ViaVersion.api.rewriters.StatisticsRewriter; import us.myles.ViaVersion.api.rewriters.TagRewriter; import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.protocols.protocol1_16_2to1_16_1.ClientboundPackets1_16_2; @@ -93,6 +94,9 @@ public class Protocol1_16_1To1_16_2 extends BackwardsProtocol BackwardsMappings.blockMappings.getNewId(id), id -> MappingData.oldToNewItems.inverse().get(id), entityPackets::getOldEntityId).register(ClientboundPackets1_16_2.TAGS); + + new StatisticsRewriter(this, id -> BackwardsMappings.blockMappings.getNewId(id), id -> + MappingData.oldToNewItems.inverse().get(id), entityPackets::getOldEntityId).register(ClientboundPackets1_16_2.STATISTICS); } public static int getNewBlockStateId(int id) { diff --git a/pom.xml b/pom.xml index 15cecafd..dea1c6f2 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ us.myles viaversion - 3.1.0-1.16.2-RC2 + 3.1.1-SNAPSHOT provided