From 9bbfbd54794a197bc5fb272ef64b5378ee92cb93 Mon Sep 17 00:00:00 2001 From: LexManos Date: Tue, 10 Nov 2020 11:13:38 -0800 Subject: [PATCH] Use linked collections to stabilize order when adding new registry entries. --- .../java/net/minecraftforge/registries/GameData.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraftforge/registries/GameData.java b/src/main/java/net/minecraftforge/registries/GameData.java index f412c88e1..4e2147ec0 100644 --- a/src/main/java/net/minecraftforge/registries/GameData.java +++ b/src/main/java/net/minecraftforge/registries/GameData.java @@ -680,6 +680,9 @@ public class GameData for (ResourceLocation s : missingRegs) text.append(s).append("\n"); + + LOGGER.warn(REGISTRIES, header); + LOGGER.warn(REGISTRIES, text.toString()); } } @@ -692,7 +695,7 @@ public class GameData { final Class clazz = RegistryManager.ACTIVE.getSuperType(key); remaps.put(key, Maps.newLinkedHashMap()); - missing.put(key, Maps.newHashMap()); + missing.put(key, Maps.newLinkedHashMap()); loadPersistentDataToStagingRegistry(RegistryManager.ACTIVE, STAGING, remaps.get(key), missing.get(key), key, value, clazz); }); @@ -769,6 +772,9 @@ public class GameData entries.stream().sorted((o1, o2) -> o1.compareNamespaced(o2)).forEach(rl -> buf.append(" ").append(rl).append("\n")); buf.append("\n"); }); + + LOGGER.warn(REGISTRIES, header); + LOGGER.warn(REGISTRIES, buf.toString()); } if (!defaulted.isEmpty()) @@ -861,7 +867,7 @@ public class GameData { ForgeRegistry frozen = RegistryManager.FROZEN.getRegistry(name); ForgeRegistry newRegistry = STAGING.getRegistry(name, RegistryManager.FROZEN); - Map _new = Maps.newHashMap(); + Map _new = Maps.newLinkedHashMap(); frozen.getKeys().stream().filter(key -> !newRegistry.containsKey(key)).forEach(key -> _new.put(key, frozen.getID(key))); newRegistry.loadIds(_new, frozen.getOverrideOwners(), Maps.newLinkedHashMap(), remaps, frozen, name); }