diff --git a/src/engine/gameManager/ConfigManager.java b/src/engine/gameManager/ConfigManager.java index e49b0f2c..6f03ea25 100644 --- a/src/engine/gameManager/ConfigManager.java +++ b/src/engine/gameManager/ConfigManager.java @@ -11,6 +11,8 @@ package engine.gameManager; import engine.mbEnums; import engine.server.login.LoginServer; import engine.server.world.WorldServer; +import engine.wpak.EffectsParser; +import engine.wpak.PowersParser; import org.pmw.tinylog.Logger; import java.io.BufferedReader; @@ -164,6 +166,14 @@ public enum ConfigManager { Logger.info("Compiling regex"); regex.put(MB_LOGIN_FNAME_REGEX, Pattern.compile(MB_LOGIN_FNAME_REGEX.getValue())); + + Logger.info("Loading WPAK data"); + + + EffectsParser.parseWpakFile(); + PowersParser.parseWpakFile(); + + return true; } diff --git a/src/engine/server/world/WorldServer.java b/src/engine/server/world/WorldServer.java index 9ce5d3f7..8e6530e6 100644 --- a/src/engine/server/world/WorldServer.java +++ b/src/engine/server/world/WorldServer.java @@ -38,8 +38,6 @@ import engine.workthreads.DisconnectTrashTask; import engine.workthreads.HourlyJobThread; import engine.workthreads.PurgeOprhans; import engine.workthreads.WarehousePushThread; -import engine.wpak.EffectsParser; -import engine.wpak.PowersParser; import org.pmw.tinylog.Configurator; import org.pmw.tinylog.Level; import org.pmw.tinylog.Logger; @@ -95,9 +93,6 @@ public class WorldServer { return; } - EffectsParser.parseWpakFile(); - PowersParser.parseWpakFile(); - try { worldServer = new WorldServer(); diff --git a/src/engine/wpak/EffectsParser.java b/src/engine/wpak/EffectsParser.java index 19060087..15de095c 100644 --- a/src/engine/wpak/EffectsParser.java +++ b/src/engine/wpak/EffectsParser.java @@ -32,11 +32,17 @@ public class EffectsParser { private static final Pattern CONDITIONS_REGEX = Pattern.compile("(?<=CONDITIONBEGIN)(.+?)(?=CONDITIONEND)", Pattern.DOTALL); private static final Pattern STRSPLIT_REGEX = Pattern.compile("([^\"]\\S*|\"[^\"]*\")\\s*"); // Regex ignores spaces within quotes - public static void parseWpakFile() throws IOException { + public static void parseWpakFile() { // Read .wpak file from disk - byte[] fileData = Files.readAllBytes(Paths.get(effectsPath)); + byte[] fileData = null; + + try { + fileData = Files.readAllBytes(Paths.get(effectsPath)); + } catch (IOException e) { + throw new RuntimeException(e); + } String fileContents = new String(fileData); // Iterate over effect entries from .wpak data diff --git a/src/engine/wpak/PowersParser.java b/src/engine/wpak/PowersParser.java index d55f76b2..630d4992 100644 --- a/src/engine/wpak/PowersParser.java +++ b/src/engine/wpak/PowersParser.java @@ -28,11 +28,17 @@ public class PowersParser { private static final Pattern CONDITION_REGEX = Pattern.compile("(?<=CONDITIONBEGIN)(.+?)(?=CONDITIONEND)", Pattern.DOTALL); private static final String powersPath = ConfigManager.DEFAULT_DATA_DIR + "wpak/Powers.cfg"; - public static void parseWpakFile() throws IOException { + public static void parseWpakFile() { // Read .wpak file from disk - byte[] fileData = Files.readAllBytes(Paths.get(powersPath)); + byte[] fileData = null; + try { + fileData = Files.readAllBytes(Paths.get(powersPath)); + } catch (IOException e) { + throw new RuntimeException(e); + } + String fileContents = new String(fileData); // Iterate over power entries from .wpak data