diff --git a/src/main/java/xyz/twovb/sgm/SGM.java b/src/main/java/xyz/twovb/sgm/SGM.java index 0f5a1af..f976ec0 100644 --- a/src/main/java/xyz/twovb/sgm/SGM.java +++ b/src/main/java/xyz/twovb/sgm/SGM.java @@ -13,8 +13,7 @@ import xyz.twovb.sgm.commands.impl.GameCommand; 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.*; +import xyz.twovb.sgm.games.impl.TestGame; import xyz.twovb.sgm.levels.LevelManager; import xyz.twovb.toolbox.managers.ConfigManager; import xyz.twovb.toolbox.managers.PlaceholderManager; diff --git a/src/main/java/xyz/twovb/sgm/commands/handlers/InvalidArgsHandler.java b/src/main/java/xyz/twovb/sgm/commands/handlers/InvalidArgsHandler.java index b350b15..5805487 100644 --- a/src/main/java/xyz/twovb/sgm/commands/handlers/InvalidArgsHandler.java +++ b/src/main/java/xyz/twovb/sgm/commands/handlers/InvalidArgsHandler.java @@ -24,6 +24,7 @@ public class InvalidArgsHandler implements InvalidUsageHandler { builder.insert(0, "\n"); if (schematic.isOnlyFirst()) { // borken idk why ill fix later + // TODO: figure out how its broken and then fix it:) message = message.replace("%usage%", "\n&8 - &7" + schematic.first()); } else { List schemes = schematic.all(); diff --git a/src/main/java/xyz/twovb/sgm/commands/impl/GameCommand.java b/src/main/java/xyz/twovb/sgm/commands/impl/GameCommand.java index db9248b..f8bf2d3 100644 --- a/src/main/java/xyz/twovb/sgm/commands/impl/GameCommand.java +++ b/src/main/java/xyz/twovb/sgm/commands/impl/GameCommand.java @@ -1,10 +1,5 @@ package xyz.twovb.sgm.commands.impl; - -/* - * Created by 2vb - 2/7/2024 - */ - /* * Created by 2vb - 2/7/2024 */ @@ -14,20 +9,33 @@ import dev.rollczi.litecommands.annotations.command.Command; import dev.rollczi.litecommands.annotations.context.Context; import dev.rollczi.litecommands.annotations.execute.Execute; import dev.rollczi.litecommands.annotations.permission.Permission; -import org.bukkit.World; +import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import xyz.twovb.sgm.SGM; -import xyz.twovb.sgm.levels.LevelManager; import xyz.twovb.toolbox.api.CustomPlayer; @Command(name = "game") public class GameCommand { + @Execute() + void execute(@Context CommandSender sender) { + StringBuilder builder = new StringBuilder(); + builder.insert(0, "&7Enabled games:"); + builder.append("\n"); + for (int i = 0; i < SGM.getInstance().getGameManager().getRegisteredGames().size(); i++) { + String game = SGM.getInstance().getGameManager().getRegisteredGames().get(i); + builder.append(game); + if (i < SGM.getInstance().getGameManager().getRegisteredGames().size() - 1) { + builder.append(", "); + } + } + sender.sendMessage(builder.toString()); + } + @Execute(name = "start") @Permission("sgm.games.start") void game(@Context Player player, @Arg("name") String name) { CustomPlayer cPlayer = new CustomPlayer(player); - cPlayer.sendMessage(SGM.getInstance().getGameManager().enabledLevels.toString()); } } diff --git a/src/main/java/xyz/twovb/sgm/commands/impl/LevelCommand.java b/src/main/java/xyz/twovb/sgm/commands/impl/LevelCommand.java index 9458be1..009603c 100644 --- a/src/main/java/xyz/twovb/sgm/commands/impl/LevelCommand.java +++ b/src/main/java/xyz/twovb/sgm/commands/impl/LevelCommand.java @@ -9,8 +9,6 @@ import dev.rollczi.litecommands.annotations.command.Command; import dev.rollczi.litecommands.annotations.context.Context; import dev.rollczi.litecommands.annotations.execute.Execute; import dev.rollczi.litecommands.annotations.permission.Permission; -import org.bukkit.Bukkit; -import org.bukkit.NamespacedKey; import org.bukkit.World; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -20,6 +18,7 @@ import xyz.twovb.toolbox.api.CustomPlayer; import xyz.twovb.toolbox.managers.PlaceholderManager; import xyz.twovb.toolbox.utils.ChatUtils; +import java.util.List; import java.util.Optional; import java.util.UUID; @@ -27,11 +26,19 @@ import java.util.UUID; @Permission("sgm.levels") public class LevelCommand { + @Execute() + void execute(@Context CommandSender sender) { + for (String game : SGM.getInstance().getLevelManager().enabledMaps.keySet()) { + List maps = SGM.getInstance().getLevelManager().enabledMaps.get(game); + sender.sendMessage("Game: " + game + ", Maps: " + maps); + } + } + @Execute(name = "create") @Permission("sgm.levels.create") void create(@Context CommandSender sender, @Arg("game") String game, @Arg("name") Optional LevelName) { String name = LevelName.orElse(UUID.randomUUID().toString()); - LevelManager.CreationResult result = LevelManager.createLevel(name, game); + LevelManager.CreationResult result = SGM.getInstance().getLevelManager().createLevel(name, game); switch (result) { case SUCCESS: sender.sendMessage(ChatUtils.translate(PlaceholderManager.setPlaceholders(SGM.getInstance().getMessages().getString("sgm.level.new"), sender).replace("%level%", name))); diff --git a/src/main/java/xyz/twovb/sgm/games/GameManager.java b/src/main/java/xyz/twovb/sgm/games/GameManager.java index 2abcb7a..70a68b2 100644 --- a/src/main/java/xyz/twovb/sgm/games/GameManager.java +++ b/src/main/java/xyz/twovb/sgm/games/GameManager.java @@ -17,13 +17,9 @@ import java.util.UUID; public class GameManager { @Getter - private static Map activeGames = new HashMap(); - + private static final Map activeGames = new HashMap(); @Getter - private ArrayList registeredGames = new ArrayList(); - - @Getter - public Map enabledLevels = new HashMap(); + private final ArrayList registeredGames = new ArrayList(); public static Minigame findGame(UUID gameId) { return activeGames.get(gameId); @@ -68,9 +64,7 @@ public class GameManager { registeredGames.add(game.getName().toLowerCase()); SGM.getInstance().getCLogger().log("Registered game " + game.getName()); SGM.getInstance().getCLogger().log(registeredGames); - registeredGames.add("testgame1"); - registeredGames.add("testgame2"); - registeredGames.add("testgame3"); + registeredGames.add("ctb"); } } \ No newline at end of file diff --git a/src/main/java/xyz/twovb/sgm/games/Minigame.java b/src/main/java/xyz/twovb/sgm/games/Minigame.java index d243fd5..1d15e40 100644 --- a/src/main/java/xyz/twovb/sgm/games/Minigame.java +++ b/src/main/java/xyz/twovb/sgm/games/Minigame.java @@ -14,24 +14,28 @@ import java.util.UUID; public interface Minigame extends Listener { - enum GameState { - PRESTART, - READY, - STARTED, - ENDING - } - void init(CommandSender owner); + void start(); + void stop(); + void addPlayer(Player player); + void removePlayer(Player player); + List getPlayers(); + void onTick(); + String getName(); + UUID getGameId(); + GameState getState(); + CommandSender getOwner(); + default void sendMessageToAllPlayers(String message) { for (Player player : getPlayers()) { CustomPlayer cPlayer = new CustomPlayer(player); @@ -39,4 +43,8 @@ public interface Minigame extends Listener { } } + enum GameState { + PRESTART, READY, STARTED, ENDING + } + } diff --git a/src/main/java/xyz/twovb/sgm/levels/Level.java b/src/main/java/xyz/twovb/sgm/levels/Level.java index a33aa53..f6d0d39 100644 --- a/src/main/java/xyz/twovb/sgm/levels/Level.java +++ b/src/main/java/xyz/twovb/sgm/levels/Level.java @@ -8,5 +8,6 @@ import org.bukkit.World; public interface Level { String getName(); + World getWorld(); } \ 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 c66f708..e7fe3bc 100644 --- a/src/main/java/xyz/twovb/sgm/levels/LevelManager.java +++ b/src/main/java/xyz/twovb/sgm/levels/LevelManager.java @@ -42,7 +42,7 @@ public class LevelManager { } } - public static CreationResult createLevel(String name, String game) { + public CreationResult createLevel(String name, String game) { File level = new File(path + name); if (!SGM.getInstance().getGameManager().getRegisteredGames().contains(game.toLowerCase())) { return CreationResult.INVALID_ARGS; @@ -64,7 +64,7 @@ public class LevelManager { world.setSpawnLocation(location); world.setSpawnFlags(false, false); genDataFile(level, name, game.toLowerCase()); - SGM.getInstance().getGameManager().enabledLevels.put(game, name); + enabledMaps.get(game).add(name); return CreationResult.SUCCESS; }