From 71260dbb3cf6c03f3e32fac7b485c107f96eeec1 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Tue, 30 Jun 2020 20:34:44 +0200 Subject: [PATCH] fix item reading for items with damage (parameter ignoreMetaData (damage)) --- .../game/datatypes/entities/Items.java | 38 +++++++++++-------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/Items.java b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/Items.java index 200203624..8bdbb1097 100644 --- a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/Items.java +++ b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/Items.java @@ -987,6 +987,7 @@ public enum Items { final Identifier identifier; final int legacyId; + final boolean ignoreMetaData; int legacyData; // legacy id -2 means: 1.13+ @@ -994,24 +995,13 @@ public enum Items { this.identifier = identifier; this.legacyId = legacyId; this.legacyData = legacyData; + ignoreMetaData = false; } Items(Identifier identifier, int legacyId) { this.identifier = identifier; this.legacyId = legacyId; - } - - public Identifier getIdentifier() { - return identifier; - } - - - public int getLegacyId() { - return legacyId; - } - - public int getLegacyData() { - return legacyData; + ignoreMetaData = true; } public static Items byIdentifier(Identifier identifier) { @@ -1024,9 +1014,13 @@ public enum Items { } public static Items byLegacy(int id, int data) { - for (Items b : values()) { - if (b.getLegacyId() == id && b.getLegacyData() == data) { - return b; + for (Items item : values()) { + if (item.getLegacyId() == id) { + if (item.ignoreMetaData) { + return item; + } else if (item.getLegacyData() == data) { + return item; + } } } return UNKNOWN; @@ -1036,5 +1030,17 @@ public enum Items { return byLegacy(id, 0); } + public Identifier getIdentifier() { + return identifier; + } + + public int getLegacyId() { + return legacyId; + } + + public int getLegacyData() { + return legacyData; + } + }