|
14 | 14 | import java.io.OutputStream; |
15 | 15 | import java.io.PrintStream; |
16 | 16 | import java.lang.reflect.Field; |
| 17 | +import java.lang.reflect.Modifier; |
17 | 18 | import java.nio.charset.StandardCharsets; |
18 | 19 | import java.util.ArrayList; |
19 | 20 | import java.util.HashMap; |
@@ -208,8 +209,19 @@ public MinecraftDisplayer(boolean preview) { |
208 | 209 | } |
209 | 210 |
|
210 | 211 | @SuppressWarnings("unchecked") |
211 | | - private List<IResourcePack> getDefaultResourcePackList() { |
212 | | - return mc.defaultResourcePacks; |
| 212 | + private List<IResourcePack> getOnlyList() { |
| 213 | + Field[] flds = mc.getClass().getDeclaredFields(); |
| 214 | + for (Field f : flds) { |
| 215 | + if (f.getType().equals(List.class) && !Modifier.isStatic(f.getModifiers())) { |
| 216 | + f.setAccessible(true); |
| 217 | + try { |
| 218 | + return (List<IResourcePack>) f.get(mc); |
| 219 | + } catch (Throwable e) { |
| 220 | + e.printStackTrace(); |
| 221 | + } |
| 222 | + } |
| 223 | + } |
| 224 | + return null; |
213 | 225 | } |
214 | 226 |
|
215 | 227 | public void openPreview(ImageRender[] renders) { |
@@ -691,10 +703,8 @@ public void open(Configuration cfg) { |
691 | 703 | if (!ProgressDisplayer.coreModLocation.isDirectory()) |
692 | 704 | myPack = new FMLFileResourcePack(ProgressDisplayer.modContainer); |
693 | 705 | else myPack = new FMLFolderResourcePack(ProgressDisplayer.modContainer); |
694 | | - List<IResourcePack> defaultPacks = getDefaultResourcePackList(); |
695 | | - if (!defaultPacks.contains(myPack)) { |
696 | | - defaultPacks.add(myPack); |
697 | | - } |
| 706 | + getOnlyList().add(myPack); |
| 707 | + mc.refreshResources(); |
698 | 708 | } |
699 | 709 |
|
700 | 710 | handleTips(); |
@@ -1212,6 +1222,7 @@ private FontRenderer fontRenderer(String fontTexture) { |
1212 | 1222 | font.onResourceManagerReload(mc.getResourceManager()); |
1213 | 1223 | font.setUnicodeFlag(mc.func_152349_b()); |
1214 | 1224 | if (!preview) { |
| 1225 | + mc.refreshResources(); |
1215 | 1226 | font.onResourceManagerReload(mc.getResourceManager()); |
1216 | 1227 | } |
1217 | 1228 | fontRenderers.put(fontTexture, font); |
@@ -1443,6 +1454,7 @@ private void preDisplayScreen() { |
1443 | 1454 | textureManager = mc.renderEngine; |
1444 | 1455 | } else { |
1445 | 1456 | textureManager = mc.renderEngine = new TextureManager(mc.getResourceManager()); |
| 1457 | + mc.refreshResources(); |
1446 | 1458 | textureManager.onResourceManagerReload(mc.getResourceManager()); |
1447 | 1459 | mc.fontRenderer = new FontRenderer( |
1448 | 1460 | mc.gameSettings, |
@@ -1517,7 +1529,7 @@ public void close() { |
1517 | 1529 | if (backgroundExec != null) { |
1518 | 1530 | backgroundExec.shutdown(); |
1519 | 1531 | } |
1520 | | - getDefaultResourcePackList().remove(myPack); |
| 1532 | + getOnlyList().remove(myPack); |
1521 | 1533 |
|
1522 | 1534 | if (imgurCacheManager != null) { |
1523 | 1535 | imgurCacheManager.cleanUp(); |
|
0 commit comments