diff --git a/api/src/main/java/com/viaversion/viaversion/api/data/MappingDataLoader.java b/api/src/main/java/com/viaversion/viaversion/api/data/MappingDataLoader.java index e5b1ad257..27a12934f 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/data/MappingDataLoader.java +++ b/api/src/main/java/com/viaversion/viaversion/api/data/MappingDataLoader.java @@ -30,7 +30,6 @@ import com.google.gson.JsonObject; import com.google.gson.JsonSyntaxException; import com.viaversion.nbt.io.NBTIO; import com.viaversion.nbt.io.TagReader; -import com.viaversion.nbt.tag.ByteTag; import com.viaversion.nbt.tag.CompoundTag; import com.viaversion.nbt.tag.IntArrayTag; import com.viaversion.nbt.tag.IntTag; @@ -211,68 +210,64 @@ public class MappingDataLoader { return null; } - final ByteTag serializationStragetyTag = tag.getUnchecked("id"); - final IntTag mappedSizeTag = tag.getUnchecked("mappedSize"); - final byte strategy = serializationStragetyTag.asByte(); + final int mappedSize = tag.getIntTag("mappedSize").asInt(); + final byte strategy = tag.getByteTag("id").asByte(); final V mappings; if (strategy == DIRECT_ID) { final IntArrayTag valuesTag = tag.getIntArrayTag("val"); - return IntArrayMappings.of(valuesTag.getValue(), mappedSizeTag.asInt()); + return IntArrayMappings.of(valuesTag.getValue(), mappedSize); } else if (strategy == SHIFTS_ID) { - final IntArrayTag shiftsAtTag = tag.getIntArrayTag("at"); - final IntArrayTag shiftsTag = tag.getIntArrayTag("to"); - final IntTag sizeTag = tag.getUnchecked("size"); - final int[] shiftsAt = shiftsAtTag.getValue(); - final int[] shiftsTo = shiftsTag.getValue(); - final int size = sizeTag.asInt(); + final int[] shiftsAt = tag.getIntArrayTag("at").getValue(); + final int[] shiftsTo = tag.getIntArrayTag("to").getValue(); + final int size = tag.getIntTag("size").asInt(); mappings = holderSupplier.get(size); - // Handle values until first shift if (shiftsAt[0] != 0) { + // Add identity values before the first shift final int to = shiftsAt[0]; for (int id = 0; id < to; id++) { addConsumer.addTo(mappings, id, id); } } - // Handle shifts + // Read shifts for (int i = 0; i < shiftsAt.length; i++) { + final boolean isLast = i == shiftsAt.length - 1; final int from = shiftsAt[i]; - final int to = i == shiftsAt.length - 1 ? size : shiftsAt[i + 1]; + final int to = isLast ? size : shiftsAt[i + 1]; int mappedId = shiftsTo[i]; for (int id = from; id < to; id++) { addConsumer.addTo(mappings, id, mappedId++); } } } else if (strategy == CHANGES_ID) { - final IntArrayTag changesAtTag = tag.getIntArrayTag("at"); - final IntArrayTag valuesTag = tag.getIntArrayTag("val"); - final IntTag sizeTag = tag.getUnchecked("size"); + final int[] changesAt = tag.getIntArrayTag("at").getValue(); + final int[] values = tag.getIntArrayTag("val").getValue(); + final int size = tag.getIntTag("size").asInt(); final boolean fillBetween = tag.get("nofill") == null; - final int[] changesAt = changesAtTag.getValue(); - final int[] values = valuesTag.getValue(); - mappings = holderSupplier.get(sizeTag.asInt()); + mappings = holderSupplier.get(size); + int previousChangedId = 0; for (int i = 0; i < changesAt.length; i++) { - final int id = changesAt[i]; + final int changedId = changesAt[i]; if (fillBetween) { // Fill from after the last change to before this change with unchanged ids - final int previousId = i != 0 ? changesAt[i - 1] + 1 : 0; - for (int identity = previousId; identity < id; identity++) { - addConsumer.addTo(mappings, identity, identity); + for (int id = previousChangedId + 1; id < changedId; id++) { + addConsumer.addTo(mappings, id, id); } + previousChangedId = changedId; } // Assign the changed value - addConsumer.addTo(mappings, id, values[i]); + addConsumer.addTo(mappings, changedId, values[i]); } } else if (strategy == IDENTITY_ID) { - final IntTag sizeTag = tag.getUnchecked("size"); - return new IdentityMappings(sizeTag.asInt(), mappedSizeTag.asInt()); + final IntTag sizeTag = tag.getIntTag("size"); + return new IdentityMappings(sizeTag.asInt(), mappedSize); } else { throw new IllegalArgumentException("Unknown serialization strategy: " + strategy); } - return mappingsSupplier.create(mappings, mappedSizeTag.asInt()); + return mappingsSupplier.create(mappings, mappedSize); } public @Nullable List identifiersFromGlobalIds(final CompoundTag mappingsTag, final String key) { @@ -295,7 +290,7 @@ public class MappingDataLoader { * @return map with indexes hashed by their id value */ public Object2IntMap indexedObjectToMap(final JsonObject object) { - final Object2IntMap map = new Object2IntOpenHashMap<>(object.size(), .99F); + final Object2IntMap map = new Object2IntOpenHashMap<>(object.size()); map.defaultReturnValue(-1); for (final Map.Entry entry : object.entrySet()) { map.put(entry.getValue().getAsString(), Integer.parseInt(entry.getKey())); @@ -310,7 +305,7 @@ public class MappingDataLoader { * @return map with indexes hashed by their id value */ public Object2IntMap arrayToMap(final JsonArray array) { - final Object2IntMap map = new Object2IntOpenHashMap<>(array.size(), .99F); + final Object2IntMap map = new Object2IntOpenHashMap<>(array.size()); map.defaultReturnValue(-1); for (int i = 0; i < array.size(); i++) { map.put(array.get(i).getAsString(), i); diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/v1_10to1_11/data/PotionColorMappings1_11.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_10to1_11/data/PotionColorMappings1_11.java index f97951c5a..184974eb3 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/v1_10to1_11/data/PotionColorMappings1_11.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_10to1_11/data/PotionColorMappings1_11.java @@ -24,7 +24,7 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; public class PotionColorMappings1_11 { // to mapping - private static final Int2ObjectMap> POTIONS = new Int2ObjectOpenHashMap<>(37, 0.99F); + private static final Int2ObjectMap> POTIONS = new Int2ObjectOpenHashMap<>(37); static { addRewrite(0, 3694022, false); diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/v1_11_1to1_12/data/AchievementTranslations1_12.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_11_1to1_12/data/AchievementTranslations1_12.java index 89439843c..12c4932f4 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/v1_11_1to1_12/data/AchievementTranslations1_12.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_11_1to1_12/data/AchievementTranslations1_12.java @@ -23,7 +23,7 @@ import java.util.Set; public class AchievementTranslations1_12 { - private static final Object2ObjectOpenHashMap ACHIEVEMENTS = new Object2ObjectOpenHashMap<>(150, 0.99f); + private static final Object2ObjectOpenHashMap ACHIEVEMENTS = new Object2ObjectOpenHashMap<>(150); private static final Set SPECIAL_ACHIEVEMENTS = new HashSet<>(10); static { @@ -196,4 +196,4 @@ public class AchievementTranslations1_12 { return SPECIAL_ACHIEVEMENTS.contains(key); } -} \ No newline at end of file +} diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/blockconnections/ConnectionData.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/blockconnections/ConnectionData.java index 17bfe2da0..f8152b5e1 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/blockconnections/ConnectionData.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/blockconnections/ConnectionData.java @@ -54,8 +54,8 @@ import java.util.Map.Entry; public final class ConnectionData { public static BlockConnectionProvider blockConnectionProvider; - static final Object2IntMap KEY_TO_ID = new Object2IntOpenHashMap<>(8582, .99F); - static final IntSet OCCLUDING_STATES = new IntOpenHashSet(377, .99F); + static final Object2IntMap KEY_TO_ID = new Object2IntOpenHashMap<>(8582); + static final IntSet OCCLUDING_STATES = new IntOpenHashSet(377); static Int2ObjectMap connectionHandlerMap = new Int2ObjectOpenHashMap<>(); static Int2ObjectMap blockConnectionData = new Int2ObjectOpenHashMap<>(); private static final BlockChangeRecord1_8[] EMPTY_RECORDS = new BlockChangeRecord1_8[0]; @@ -173,7 +173,7 @@ public final class ConnectionData { KEY_TO_ID.put(key, id); } - connectionHandlerMap = new Int2ObjectOpenHashMap<>(3650, .99F); + connectionHandlerMap = new Int2ObjectOpenHashMap<>(3650); if (!Via.getConfig().isReduceBlockStorageMemory()) { blockConnectionData = new Int2ObjectOpenHashMap<>(2048); diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/data/EntityIdMappings1_13.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/data/EntityIdMappings1_13.java index e3972c6a2..8cc9ec6b6 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/data/EntityIdMappings1_13.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/data/EntityIdMappings1_13.java @@ -21,7 +21,7 @@ import it.unimi.dsi.fastutil.ints.Int2IntMap; import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap; public class EntityIdMappings1_13 { - private static final Int2IntMap ENTITY_TYPES = new Int2IntOpenHashMap(83, .99F); + private static final Int2IntMap ENTITY_TYPES = new Int2IntOpenHashMap(83); static { ENTITY_TYPES.defaultReturnValue(-1); @@ -121,4 +121,4 @@ public class EntityIdMappings1_13 { public static Int2IntMap getEntityTypes() { return ENTITY_TYPES; } -} \ No newline at end of file +} diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/rewriter/WorldPacketRewriter1_13.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/rewriter/WorldPacketRewriter1_13.java index a4a710de1..a0f95d8d3 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/rewriter/WorldPacketRewriter1_13.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/rewriter/WorldPacketRewriter1_13.java @@ -53,7 +53,7 @@ import java.util.Iterator; import java.util.Optional; public class WorldPacketRewriter1_13 { - private static final IntSet VALID_BIOMES = new IntOpenHashSet(70, .99F); + private static final IntSet VALID_BIOMES = new IntOpenHashSet(70); static { // Client will crash if it receives an invalid biome id diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/storage/BlockStorage.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/storage/BlockStorage.java index c908a2976..87c2cfa07 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/storage/BlockStorage.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_12_2to1_13/storage/BlockStorage.java @@ -26,7 +26,7 @@ import java.util.Map; // TODO Fix memory leak lolz (only a smol one tho) public class BlockStorage implements StorableObject { - private static final IntSet WHITELIST = new IntOpenHashSet(46, .99F); + private static final IntSet WHITELIST = new IntOpenHashSet(46); private final Map blocks = new HashMap<>(); static { diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/v1_19_4to1_20/rewriter/EntityPacketRewriter1_20.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_19_4to1_20/rewriter/EntityPacketRewriter1_20.java index 65e4a623c..de9d57fa4 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/v1_19_4to1_20/rewriter/EntityPacketRewriter1_20.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_19_4to1_20/rewriter/EntityPacketRewriter1_20.java @@ -79,8 +79,8 @@ public final class EntityPacketRewriter1_20 extends EntityRewriter damageTypes = TagUtil.getRegistryEntries(registry, "damage_type"); int highestId = -1; for (final CompoundTag damageType : damageTypes) { - final IntTag id = damageType.getUnchecked("id"); - highestId = Math.max(highestId, id.asInt()); + final int id = damageType.getInt("id"); + highestId = Math.max(highestId, id); } // AaaaAAAaa diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/v1_8to1_9/data/EffectIdMappings1_9.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_8to1_9/data/EffectIdMappings1_9.java index 9dc6d90fb..f2c3522fa 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/v1_8to1_9/data/EffectIdMappings1_9.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_8to1_9/data/EffectIdMappings1_9.java @@ -22,7 +22,7 @@ import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap; public class EffectIdMappings1_9 { - private static final Int2IntMap EFFECTS = new Int2IntOpenHashMap(19, .99F); + private static final Int2IntMap EFFECTS = new Int2IntOpenHashMap(19); static { addRewrite(1005, 1010); //Play music disc diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/v1_8to1_9/data/PotionIdMappings1_9.java b/common/src/main/java/com/viaversion/viaversion/protocols/v1_8to1_9/data/PotionIdMappings1_9.java index 6a8dc9d60..2229aad67 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/v1_8to1_9/data/PotionIdMappings1_9.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/v1_8to1_9/data/PotionIdMappings1_9.java @@ -27,7 +27,7 @@ public class PotionIdMappings1_9 { public static final Map POTION_NAME_TO_ID = new HashMap<>(); public static final Map POTION_ID_TO_NAME = new HashMap<>(); - public static final Int2IntMap POTION_INDEX = new Int2IntOpenHashMap(36, .99F); + public static final Int2IntMap POTION_INDEX = new Int2IntOpenHashMap(36); static { register(-1, "empty");