From 9f380a7598e936b7fa9c97bf7af63329940d46bf Mon Sep 17 00:00:00 2001 From: creeper123123321 <7974274+creeper123123321@users.noreply.github.com> Date: Fri, 9 Apr 2021 12:09:30 -0300 Subject: [PATCH] Handle minecart block data (#2424) --- .../metadata/MetadataRewriter1_15To1_14_4.java | 7 +++++++ .../metadata/MetadataRewriter1_16_2To1_16_1.java | 7 +++++++ .../metadata/MetadataRewriter1_16To1_15_2.java | 7 +++++++ .../metadata/MetadataRewriter1_17To1_16_4.java | 7 +++++++ 4 files changed, 28 insertions(+) diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/metadata/MetadataRewriter1_15To1_14_4.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/metadata/MetadataRewriter1_15To1_14_4.java index 8a9f680c7..e18c2bfe1 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/metadata/MetadataRewriter1_15To1_14_4.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/metadata/MetadataRewriter1_15To1_14_4.java @@ -53,6 +53,13 @@ public class MetadataRewriter1_15To1_14_4 extends MetadataRewriter { if (type == null) return; + if (type.isOrHasParent(Entity1_15Types.MINECART_ABSTRACT) + && metadata.getId() == 10) { + // Convert to new block id + int data = (int) metadata.getValue(); + metadata.setValue(protocol.getMappingData().getNewBlockStateId(data)); + } + // Metadata 12 added to abstract_living if (metadata.getId() > 11 && type.isOrHasParent(Entity1_15Types.LIVINGENTITY)) { metadata.setId(metadata.getId() + 1); //TODO is it 11 or 12? what is it for? diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16_2to1_16_1/metadata/MetadataRewriter1_16_2To1_16_1.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16_2to1_16_1/metadata/MetadataRewriter1_16_2To1_16_1.java index f1c8d7a57..8eb4ccdf1 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16_2to1_16_1/metadata/MetadataRewriter1_16_2To1_16_1.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16_2to1_16_1/metadata/MetadataRewriter1_16_2To1_16_1.java @@ -52,6 +52,13 @@ public class MetadataRewriter1_16_2To1_16_1 extends MetadataRewriter { if (type == null) return; + if (type.isOrHasParent(Entity1_16_2Types.MINECART_ABSTRACT) + && metadata.getId() == 10) { + // Convert to new block id + int data = (int) metadata.getValue(); + metadata.setValue(protocol.getMappingData().getNewBlockStateId(data)); + } + if (type.isOrHasParent(Entity1_16_2Types.ABSTRACT_PIGLIN)) { if (metadata.getId() == 15) { metadata.setId(16); diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16to1_15_2/metadata/MetadataRewriter1_16To1_15_2.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16to1_15_2/metadata/MetadataRewriter1_16To1_15_2.java index 16f5b24f4..fa373d21c 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16to1_15_2/metadata/MetadataRewriter1_16To1_15_2.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_16to1_15_2/metadata/MetadataRewriter1_16To1_15_2.java @@ -53,6 +53,13 @@ public class MetadataRewriter1_16To1_15_2 extends MetadataRewriter { if (type == null) return; + if (type.isOrHasParent(Entity1_16Types.MINECART_ABSTRACT) + && metadata.getId() == 10) { + // Convert to new block id + int data = (int) metadata.getValue(); + metadata.setValue(protocol.getMappingData().getNewBlockStateId(data)); + } + if (type.isOrHasParent(Entity1_16Types.ABSTRACT_ARROW)) { if (metadata.getId() == 8) { metadatas.remove(metadata); diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_17to1_16_4/metadata/MetadataRewriter1_17To1_16_4.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_17to1_16_4/metadata/MetadataRewriter1_17To1_16_4.java index 1a00edad7..797c722f7 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_17to1_16_4/metadata/MetadataRewriter1_17To1_16_4.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_17to1_16_4/metadata/MetadataRewriter1_17To1_16_4.java @@ -65,6 +65,13 @@ public class MetadataRewriter1_17To1_16_4 extends MetadataRewriter { } } + if (type.isOrHasParent(Entity1_17Types.MINECART_ABSTRACT) + && metadata.getId() == 11) { + // Convert to new block id + int data = (int) metadata.getValue(); + metadata.setValue(protocol.getMappingData().getNewBlockStateId(data)); + } + if (type == Entity1_17Types.SHULKER) { // Attachment position removed if (metadata.getId() == 16) {