diff --git a/src/main/java/xyz/twovb/sgm/SGM.java b/src/main/java/xyz/twovb/sgm/SGM.java index f976ec0..15bacd2 100644 --- a/src/main/java/xyz/twovb/sgm/SGM.java +++ b/src/main/java/xyz/twovb/sgm/SGM.java @@ -14,6 +14,7 @@ import xyz.twovb.sgm.commands.impl.LevelCommand; import xyz.twovb.sgm.commands.impl.SGMCommand; import xyz.twovb.sgm.games.GameManager; import xyz.twovb.sgm.games.impl.TestGame; +import xyz.twovb.sgm.games.impl.capturethebrick.CTB; import xyz.twovb.sgm.levels.LevelManager; import xyz.twovb.toolbox.managers.ConfigManager; import xyz.twovb.toolbox.managers.PlaceholderManager; @@ -72,6 +73,7 @@ public final class SGM extends JavaPlugin { } private void registerGames() { + gameManager.registerGame(new CTB()); gameManager.registerGame(new TestGame()); } diff --git a/src/main/java/xyz/twovb/sgm/commands/impl/SGMCommand.java b/src/main/java/xyz/twovb/sgm/commands/impl/SGMCommand.java index 68017ec..a2e2079 100644 --- a/src/main/java/xyz/twovb/sgm/commands/impl/SGMCommand.java +++ b/src/main/java/xyz/twovb/sgm/commands/impl/SGMCommand.java @@ -21,12 +21,10 @@ public class SGMCommand { builder.append(SGM.getInstance().getMessages().getString("main-command.lines.2")); builder.append("\n"); builder.append(SGM.getInstance().getMessages().getString("main-command.lines.3")); - builder.append("\n"); String string = builder.toString(); sender.sendMessage(ChatUtils.translate(PlaceholderManager.setPlaceholders(string, sender))); } @Execute(name = "a") void a(@Context CommandSender sender) {} - } diff --git a/src/main/java/xyz/twovb/sgm/games/GameManager.java b/src/main/java/xyz/twovb/sgm/games/GameManager.java index ee505b6..ed2f551 100644 --- a/src/main/java/xyz/twovb/sgm/games/GameManager.java +++ b/src/main/java/xyz/twovb/sgm/games/GameManager.java @@ -11,6 +11,7 @@ import xyz.twovb.sgm.SGM; import xyz.twovb.toolbox.managers.PlaceholderManager; import xyz.twovb.toolbox.utils.ChatUtils; +import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -69,8 +70,19 @@ public class GameManager { } public void registerGame(Minigame game) { - registeredGames.add(game.getName().toLowerCase()); - SGM.getInstance().getCLogger().log("Registered game " + game.getName()); + String intName = game.getName().toLowerCase(); + try { + SGM.getInstance().getConfigManager().loadConfig("games/" + intName + "/options.yml"); + registeredGames.add(intName); + SGM.getInstance().getCLogger().log("Registered game " + game.getName()); + } catch(IllegalArgumentException error) { + String errMsg = error.getMessage(); + if (errMsg.contains("The embedded resource") && errMsg.contains("cannot be found")) { + SGM.getInstance().getCLogger().log(game.getName() + "'s game options are nowhere to be found. Skipping."); + } else { + SGM.getInstance().getCLogger().error("Failed to register game " + game.getName() + ". Reason: " + errMsg); + } + } } } \ No newline at end of file diff --git a/src/main/java/xyz/twovb/sgm/levels/LevelManager.java b/src/main/java/xyz/twovb/sgm/levels/LevelManager.java index 850b978..0f5c0fe 100644 --- a/src/main/java/xyz/twovb/sgm/levels/LevelManager.java +++ b/src/main/java/xyz/twovb/sgm/levels/LevelManager.java @@ -30,7 +30,6 @@ public class LevelManager { public static final String mapPath = SGM.getInstance().getDataFolder().getPath() + "/maps/"; - // todo: make it the actual map and not levels public HashMap> enabledMaps = new HashMap<>(); private static void loadWorld(String worldName, LevelType type) { @@ -48,7 +47,6 @@ public class LevelManager { case GAME -> new WorldCreator(gamePath + worldName, new NamespacedKey(SGM.getInstance(), key)); case MAP -> new WorldCreator(mapPath + worldName, new NamespacedKey(SGM.getInstance(), key)); }; -// WorldCreator wc = new WorldCreator(levelPath + worldName, new NamespacedKey(SGM.getInstance(), key)); World world = wc.createWorld(); if (world != null) { SGM.getInstance().getCLogger().log("Loaded world: " + worldName); @@ -61,8 +59,8 @@ public class LevelManager { // probably rewriting tmr // these are opposite Map data = new HashMap<>(); - data.put("name", name); data.put("game", game); + data.put("name", name); DumperOptions options = new DumperOptions(); options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK); Yaml yaml = new Yaml(options); @@ -123,7 +121,6 @@ public class LevelManager { world.setSpawnLocation(location); world.setSpawnFlags(false, false); genDataFile(level, name, game.toLowerCase()); - enabledMaps.get(game).add(name); return LevelResult.SUCCESS; } diff --git a/src/main/resources/games/capturethebrick/options.yml b/src/main/resources/games/capturethebrick/options.yml new file mode 100644 index 0000000..e69de29