From 6add512fe1e757cde3c345ff9f485ee47ff9f838 Mon Sep 17 00:00:00 2001 From: Myles Date: Wed, 10 Aug 2016 19:10:05 +0100 Subject: [PATCH] Start work on Remapping Types --- .../MetadataRewriter.java | 51 +++++++++++++++++++ .../storage/EntityTracker.java | 2 +- 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_10/MetadataRewriter.java diff --git a/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_10/MetadataRewriter.java b/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_10/MetadataRewriter.java new file mode 100644 index 000000000..250435086 --- /dev/null +++ b/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_10/MetadataRewriter.java @@ -0,0 +1,51 @@ +package us.myles.ViaVersion.protocols.protocolsnapshotto1_10; + +import com.google.common.base.Optional; +import us.myles.ViaVersion.api.minecraft.metadata.Metadata; + +import java.util.List; + +public class MetadataRewriter { + public static int rewriteEntityType(int currentType, List metadata) { + if (currentType == 68) { + // ElderGuardian - 4 + Optional options = getById(metadata, 12); + if (options.isPresent()) { + if ((((byte) options.get().getValue()) & 0x04) == 0x04) { + return 4; + } + } + } + if (currentType == 51) { + // WitherSkeleton - 5 + // Stray - 6 + Optional options = getById(metadata, 12); + if (options.isPresent()) { + if (((int) options.get().getValue()) == 1) { + return 5; + } + if (((int) options.get().getValue()) == 2) { + return 6; + } + } + } + if (currentType == 54) { + // ZombieVillager - 27 + // Husk - 23 + } + if (currentType == 100) { + // SkeletonHorse - 28 + // ZombieHorse - 29 + // Donkey - 31 + // Mule - 32 + } + return currentType; + } + + public static Optional getById(List metadatas, int id) { + for (Metadata metadata : metadatas) { + if (metadata.getId() == id) return Optional.of(metadata); + } + return Optional.absent(); + } +} diff --git a/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_10/storage/EntityTracker.java b/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_10/storage/EntityTracker.java index d4bbe73ce..b871b7736 100644 --- a/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_10/storage/EntityTracker.java +++ b/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_10/storage/EntityTracker.java @@ -8,7 +8,7 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @Getter -public class EntityTracker extends StoredObject{ +public class EntityTracker extends StoredObject { private final Map clientEntityTypes = new ConcurrentHashMap<>(); public EntityTracker(UserConnection user) {