diff --git a/common/src/main/java/com/deathmotion/antihealthindicator/util/MetadataIndex.java b/common/src/main/java/com/deathmotion/antihealthindicator/util/MetadataIndex.java index 9756ca8..9f5bff0 100644 --- a/common/src/main/java/com/deathmotion/antihealthindicator/util/MetadataIndex.java +++ b/common/src/main/java/com/deathmotion/antihealthindicator/util/MetadataIndex.java @@ -31,19 +31,82 @@ public class MetadataIndex { public MetadataIndex(ClientVersion version) { AIR_TICKS = 1; - HEALTH = getIndex(version, new int[]{6, 7, 8, 9}, ClientVersion.V_1_17, ClientVersion.V_1_14, ClientVersion.V_1_10); - ABSORPTION = getIndex(version, new int[]{17, 10, 11, 13, 14, 15}, ClientVersion.V_1_17, ClientVersion.V_1_15, ClientVersion.V_1_14, ClientVersion.V_1_10, ClientVersion.V_1_9); - XP = getIndex(version, new int[]{18, 11, 12, 14, 15, 16}, ClientVersion.V_1_17, ClientVersion.V_1_15, ClientVersion.V_1_14, ClientVersion.V_1_10, ClientVersion.V_1_9); - TAMABLE_TAMED = getIndex(version, new int[]{16, 13, 15, 16, 17}, ClientVersion.V_1_17, ClientVersion.V_1_15, ClientVersion.V_1_14, ClientVersion.V_1_12); - TAMABLE_OWNER = getIndex(version, new int[]{17, 14, 16, 17, 18}, ClientVersion.V_1_17, ClientVersion.V_1_15, ClientVersion.V_1_14, ClientVersion.V_1_12); + HEALTH = getHealthIndex(version); + ABSORPTION = getAbsorptionIndex(version); + XP = getXPIndex(version); + TAMABLE_TAMED = getTameIndex(version); + TAMABLE_OWNER = getOwnerIndex(version); } - private int getIndex(ClientVersion version, int[] indices, ClientVersion... versions) { - for (int i = 0; i < versions.length; i++) { - if (version.isNewerThanOrEquals(versions[i])) { - return indices[i]; - } + private int getHealthIndex(ClientVersion version) { + if (version.isNewerThanOrEquals(ClientVersion.V_1_17)) { + return 9; + } else if (version.isNewerThanOrEquals(ClientVersion.V_1_14)) { + return 8; + } else if (version.isNewerThanOrEquals(ClientVersion.V_1_10)) { + return 7; + } else { + return 6; + } + } + + private int getAbsorptionIndex(ClientVersion version) { + if (version.isNewerThanOrEquals(ClientVersion.V_1_17)) { + return 15; + } else if (version.isNewerThanOrEquals(ClientVersion.V_1_15)) { + return 14; + } else if (version.isNewerThanOrEquals(ClientVersion.V_1_14)) { + return 13; + } else if (version.isNewerThanOrEquals(ClientVersion.V_1_10)) { + return 11; + } else if (version.isNewerThanOrEquals(ClientVersion.V_1_9)) { + return 10; + } else { + return 17; + } + } + + private int getXPIndex(ClientVersion version) { + if (version.isNewerThanOrEquals(ClientVersion.V_1_17)) { + return 16; + } else if (version.isNewerThanOrEquals(ClientVersion.V_1_15)) { + return 15; + } else if (version.isNewerThanOrEquals(ClientVersion.V_1_14)) { + return 14; + } else if (version.isNewerThanOrEquals(ClientVersion.V_1_10)) { + return 12; + } else if (version.isNewerThanOrEquals(ClientVersion.V_1_9)) { + return 11; + } else { + return 18; + } + } + + private int getTameIndex(ClientVersion version) { + if (version.isNewerThanOrEquals(ClientVersion.V_1_17)) { + return 17; + } else if (version.isNewerThanOrEquals(ClientVersion.V_1_15)) { + return 16; + } else if (version.isNewerThanOrEquals(ClientVersion.V_1_14)) { + return 15; + } else if (version.isNewerThanOrEquals(ClientVersion.V_1_12)) { + return 13; + } else { + return 16; + } + } + + private int getOwnerIndex(ClientVersion version) { + if (version.isNewerThanOrEquals(ClientVersion.V_1_17)) { + return 18; + } else if (version.isNewerThanOrEquals(ClientVersion.V_1_15)) { + return 17; + } else if (version.isNewerThanOrEquals(ClientVersion.V_1_14)) { + return 16; + } else if (version.isNewerThanOrEquals(ClientVersion.V_1_12)) { + return 14; + } else { + return 17; } - return indices[0]; } }