diff --git a/gradle.properties b/gradle.properties index e259aed..ea9cc40 100644 --- a/gradle.properties +++ b/gradle.properties @@ -71,7 +71,7 @@ apiPackage = # Specify the configuration file for Forge's access transformers here. It must be placed into /src/main/resources/META-INF/ # There can be multiple files in a space-separated list. # Example value: mymodid_at.cfg nei_at.cfg -accessTransformersFile = +accessTransformersFile = bls_at.cfg # Provides setup for Mixins if enabled. If you don't know what mixins are: Keep it disabled! usesMixins = false diff --git a/src/main/java/alexiil/mods/load/MinecraftDisplayer.java b/src/main/java/alexiil/mods/load/MinecraftDisplayer.java index 2b49b6f..b3ae8c0 100644 --- a/src/main/java/alexiil/mods/load/MinecraftDisplayer.java +++ b/src/main/java/alexiil/mods/load/MinecraftDisplayer.java @@ -14,7 +14,6 @@ import java.io.OutputStream; import java.io.PrintStream; import java.lang.reflect.Field; -import java.lang.reflect.Modifier; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.HashMap; @@ -209,19 +208,8 @@ public MinecraftDisplayer(boolean preview) { } @SuppressWarnings("unchecked") - private List getOnlyList() { - Field[] flds = mc.getClass().getDeclaredFields(); - for (Field f : flds) { - if (f.getType().equals(List.class) && !Modifier.isStatic(f.getModifiers())) { - f.setAccessible(true); - try { - return (List) f.get(mc); - } catch (Throwable e) { - e.printStackTrace(); - } - } - } - return null; + private List getDefaultResourcePackList() { + return mc.defaultResourcePacks; } public void openPreview(ImageRender[] renders) { @@ -703,8 +691,10 @@ public void open(Configuration cfg) { if (!ProgressDisplayer.coreModLocation.isDirectory()) myPack = new FMLFileResourcePack(ProgressDisplayer.modContainer); else myPack = new FMLFolderResourcePack(ProgressDisplayer.modContainer); - getOnlyList().add(myPack); - mc.refreshResources(); + List defaultPacks = getDefaultResourcePackList(); + if (!defaultPacks.contains(myPack)) { + defaultPacks.add(myPack); + } } handleTips(); @@ -1222,7 +1212,6 @@ private FontRenderer fontRenderer(String fontTexture) { font.onResourceManagerReload(mc.getResourceManager()); font.setUnicodeFlag(mc.func_152349_b()); if (!preview) { - mc.refreshResources(); font.onResourceManagerReload(mc.getResourceManager()); } fontRenderers.put(fontTexture, font); @@ -1454,7 +1443,6 @@ private void preDisplayScreen() { textureManager = mc.renderEngine; } else { textureManager = mc.renderEngine = new TextureManager(mc.getResourceManager()); - mc.refreshResources(); textureManager.onResourceManagerReload(mc.getResourceManager()); mc.fontRenderer = new FontRenderer( mc.gameSettings, @@ -1529,7 +1517,7 @@ public void close() { if (backgroundExec != null) { backgroundExec.shutdown(); } - getOnlyList().remove(myPack); + getDefaultResourcePackList().remove(myPack); if (imgurCacheManager != null) { imgurCacheManager.cleanUp(); diff --git a/src/main/resources/META-INF/bls_at.cfg b/src/main/resources/META-INF/bls_at.cfg new file mode 100644 index 0000000..9b9bd2a --- /dev/null +++ b/src/main/resources/META-INF/bls_at.cfg @@ -0,0 +1,2 @@ +# Make Minecraft.defaultResourcePacks accessible +public net.minecraft.client.Minecraft field_110449_ao # defaultResourcePacks \ No newline at end of file