diff --git a/patches/minecraft/net/minecraft/stats/StatList.java.patch b/patches/minecraft/net/minecraft/stats/StatList.java.patch index 1efa70d8ff..53807504d5 100644 --- a/patches/minecraft/net/minecraft/stats/StatList.java.patch +++ b/patches/minecraft/net/minecraft/stats/StatList.java.patch @@ -99,3 +99,40 @@ if (p_151180_0_[i] != null && p_151180_0_[j] == null) { +@@ -306,4 +313,36 @@ + { + return (StatBase)field_188093_a.get(p_151177_0_); + } ++ ++ @Deprecated //MODDER DO NOT CALL THIS ITS JUST A EVENT CALLBACK FOR FORGE ++ public static void reinit() ++ { ++ field_188093_a.clear(); ++ field_188094_c.clear(); ++ field_188095_d.clear(); ++ field_188096_e.clear(); ++ ++ for (StatBase[] sb : new StatBase[][]{field_188065_ae, field_188066_af, field_75929_E, field_75930_F, field_188067_ai, field_188068_aj}) ++ { ++ for (int x = 0; x < sb.length; x++) ++ { ++ if (sb[x] != null) ++ { ++ field_75940_b.remove(sb[x]); ++ sb[x] = null; ++ } ++ } ++ } ++ List unknown = Lists.newArrayList(field_75940_b); ++ field_75940_b.clear(); ++ ++ for (StatBase b : unknown) ++ b.func_75971_g(); ++ ++ func_151181_c(); ++ func_75925_c(); ++ func_151179_e(); ++ func_75918_d(); ++ func_188054_f(); ++ } + } diff --git a/src/main/java/net/minecraftforge/common/ForgeModContainer.java b/src/main/java/net/minecraftforge/common/ForgeModContainer.java index b18562cdf4..6ec37cd47b 100644 --- a/src/main/java/net/minecraftforge/common/ForgeModContainer.java +++ b/src/main/java/net/minecraftforge/common/ForgeModContainer.java @@ -20,6 +20,7 @@ import java.util.Map; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.stats.StatList; import net.minecraft.world.storage.SaveHandler; import net.minecraft.world.storage.WorldInfo; import net.minecraftforge.classloading.FMLForgePlugin; @@ -350,6 +351,12 @@ public class ForgeModContainer extends DummyModContainer implements WorldAccessC } } + @Subscribe + public void mappingChange(FMLModIdMappingEvent evt) + { + StatList.reinit(); + } + @Subscribe public void postInit(FMLPostInitializationEvent evt) {