From 33066df231dfe92c04e443f30a0826bab3fa8d7c Mon Sep 17 00:00:00 2001 From: Tschipp Date: Thu, 28 Sep 2017 17:27:56 +0200 Subject: [PATCH] Significantly increased load time when using many mods --- .../carryon/common/handler/ListHandler.java | 86 +++++++++++-------- 1 file changed, 49 insertions(+), 37 deletions(-) diff --git a/src/main/java/tschipp/carryon/common/handler/ListHandler.java b/src/main/java/tschipp/carryon/common/handler/ListHandler.java index efacc80..83a23bc 100644 --- a/src/main/java/tschipp/carryon/common/handler/ListHandler.java +++ b/src/main/java/tschipp/carryon/common/handler/ListHandler.java @@ -18,7 +18,23 @@ public class ListHandler public static boolean isForbidden(Block block) { - return FORBIDDEN_TILES.contains(block.getRegistryName().toString()); + String name = block.getRegistryName().toString(); + if (FORBIDDEN_TILES.contains(name)) + return true; + else + { + boolean contains = false; + for (String s : FORBIDDEN_TILES) + { + if (s.contains("*")) + { + if(name.contains(s.replace("*", ""))) + contains = true; + } + } + + return contains; + } } public static boolean isForbidden(Entity entity) @@ -32,7 +48,8 @@ public class ListHandler return true; } - public static boolean isAllowed(Entity entity){ + public static boolean isAllowed(Entity entity) + { if (EntityList.getKey(entity) != null) { String name = EntityList.getKey(entity).toString(); @@ -41,12 +58,28 @@ public class ListHandler } return true; } - + public static boolean isAllowed(Block block) { - return ALLOWED_TILES.contains(block.getRegistryName().toString()); + String name = block.getRegistryName().toString(); + if (ALLOWED_TILES.contains(name)) + return true; + else + { + boolean contains = false; + for (String s : ALLOWED_TILES) + { + if (s.contains("*")) + { + if(name.contains(s.replace("*", ""))) + contains = true; + } + } + return contains; + } + } - + public static void initForbiddenTiles() { String[] forbidden = CarryOnConfig.blacklist.forbiddenTiles; @@ -54,17 +87,6 @@ public class ListHandler for (int i = 0; i < forbidden.length; i++) { - if (forbidden[i].contains("*")) - { - String modid = forbidden[i].replace("*", ""); - for (int k = 0; k < Block.REGISTRY.getKeys().size(); k++) - { - if (Block.REGISTRY.getKeys().toArray()[k].toString().contains(modid)) - { - FORBIDDEN_TILES.add(Block.REGISTRY.getKeys().toArray()[k].toString()); - } - } - } FORBIDDEN_TILES.add(forbidden[i]); } @@ -86,39 +108,29 @@ public class ListHandler } FORBIDDEN_ENTITIES.add(forbiddenEntity[i]); } - - String [] allowedEntities=CarryOnConfig.whitelist.allowedEntities; - ALLOWED_ENTITIES=new ArrayList(); - for(int i=0;i(); + for (int i = 0; i < allowedEntities.length; i++) + { + if (allowedEntities[i].contains("*")) { - String modid=allowedEntities[i].replace("*", ""); - for(int k=0;k(); - for (int i = 0; i < allowedBlocks.length; i++) { - if (allowedBlocks[i].contains("*")) - { - String modid = allowedBlocks[i].replace("*", ""); - for (int k = 0; k < Block.REGISTRY.getKeys().size(); k++) - { - if (Block.REGISTRY.getKeys().toArray()[k].toString().contains(modid)) - { - ALLOWED_TILES.add(Block.REGISTRY.getKeys().toArray()[k].toString()); - } - } - } ALLOWED_TILES.add(allowedBlocks[i]); } }