From ab94e7f557ac24de2df5be0dac00f866e9a20b5c Mon Sep 17 00:00:00 2001 From: 2vb <2vb@protonmail.com> Date: Thu, 4 Jul 2024 19:57:48 -0700 Subject: [PATCH] Dedicated messages file. --- .../java/xyz/twovb/sgm/games/Minigame.java | 3 ++- .../sgm/games/impl/capturethebrick/CTB.java | 26 ++++++++----------- .../xyz/twovb/sgm/levels/LevelManager.java | 1 + .../games/capturethebrick/messages.yml | 7 +++++ src/main/resources/messages.yml | 2 -- 5 files changed, 21 insertions(+), 18 deletions(-) create mode 100644 src/main/resources/games/capturethebrick/messages.yml diff --git a/src/main/java/xyz/twovb/sgm/games/Minigame.java b/src/main/java/xyz/twovb/sgm/games/Minigame.java index 3359636..d4b6cf4 100644 --- a/src/main/java/xyz/twovb/sgm/games/Minigame.java +++ b/src/main/java/xyz/twovb/sgm/games/Minigame.java @@ -9,7 +9,7 @@ import org.bukkit.NamespacedKey; import org.bukkit.World; import org.bukkit.WorldCreator; import org.bukkit.command.CommandSender; -import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import xyz.twovb.sgm.SGM; @@ -63,6 +63,7 @@ public interface Minigame extends Listener { } } + enum GameState { PRESTART, READY, STARTED, ENDING } diff --git a/src/main/java/xyz/twovb/sgm/games/impl/capturethebrick/CTB.java b/src/main/java/xyz/twovb/sgm/games/impl/capturethebrick/CTB.java index cf4db34..3a0a2a5 100644 --- a/src/main/java/xyz/twovb/sgm/games/impl/capturethebrick/CTB.java +++ b/src/main/java/xyz/twovb/sgm/games/impl/capturethebrick/CTB.java @@ -11,6 +11,7 @@ import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.command.CommandSender; import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -21,6 +22,7 @@ import xyz.twovb.sgm.SGM; import xyz.twovb.sgm.games.GameManager; import xyz.twovb.sgm.games.Minigame; import xyz.twovb.sgm.levels.LevelManager; +import xyz.twovb.toolbox.utils.ChatUtils; import java.io.File; import java.io.IOException; @@ -31,6 +33,8 @@ public class CTB implements Minigame { final static String name = "CaptureTheBrick"; private final UUID uuid; private final List players; + private List redTeam; + private List blueTeam; private final ArrayList redBrickSpawns = new ArrayList(); private final ArrayList blueBrickSpawns = new ArrayList(); private final ArrayList redSpawnArea = new ArrayList(); @@ -41,12 +45,14 @@ public class CTB implements Minigame { private int territoryLevel; private int boundsLevel; private Location spawnLoc; + private FileConfiguration messages; public CTB() { this.uuid = UUID.randomUUID(); this.state = GameState.PRESTART; this.players = new ArrayList<>(); + this.messages = SGM.getInstance().getConfigManager().loadConfig("games/" + name.toLowerCase() + "/messages.yml"); } public void init(CommandSender owner, String world) throws IOException { @@ -56,12 +62,11 @@ public class CTB implements Minigame { if (applyOptions(world)) { Bukkit.getPluginManager().registerEvents(this, SGM.getInstance()); state = GameState.READY; - owner.sendMessage("A new " + name + " instance with ID " + uuid + " has been created and is now ready!"); + owner.sendMessage(ChatUtils.translate(messages.getString("system.game.ready").replace("%game%", name))); } else { - owner.sendMessage("a"); -// owner.sendMessage(ChatUtils.translate(SGM.getInstance().getMessages().getString("sgm.game.cant-start"))); + owner.sendMessage(ChatUtils.translate(messages.getString("system.game.failed").replace("%cause%", "to load options."))); + Bukkit.getServer().unloadWorld(gameWorld, false); } - } private Location parseString(String string) { @@ -172,6 +177,7 @@ public class CTB implements Minigame { @Override public void stop() { + // TODO: make it wait before unloading world // Stop game logic state = GameState.ENDING; Player winner; @@ -192,7 +198,7 @@ public class CTB implements Minigame { public void addPlayer(Player player) { players.add(player); player.teleport(this.spawnLoc); - sendMessageToAllPlayers(player.getName() + " has joined the game!"); + sendMessageToAllPlayers(messages.getString("system.player.join").replace("%player%", player.getName())); } @Override @@ -238,16 +244,6 @@ public class CTB implements Minigame { return state; } -// @EventHandler -// void onPlayerMove(PlayerMoveEvent event) { -// Player player = event.getPlayer(); -// CustomPlayer cPlayer = new CustomPlayer(player); -// cPlayer.sendMessage("move"); -// if (event.getFrom().getX() != event.getTo().getX() || event.getFrom().getZ() != event.getTo().getZ()) { -// cPlayer.sendMessage("move full block"); -// } -// } - @Override public void onTick() { if (state == GameState.STARTED && players.size() <= 1) { diff --git a/src/main/java/xyz/twovb/sgm/levels/LevelManager.java b/src/main/java/xyz/twovb/sgm/levels/LevelManager.java index 33d39b3..1eb845b 100644 --- a/src/main/java/xyz/twovb/sgm/levels/LevelManager.java +++ b/src/main/java/xyz/twovb/sgm/levels/LevelManager.java @@ -130,6 +130,7 @@ public class LevelManager { // This is probably gonna be funny later player.teleport(Bukkit.getServer().getWorlds().get(0).getSpawnLocation()); } + // TODO: make better if (!Bukkit.isTickingWorlds() && Bukkit.getServer().unloadWorld(world, true)) { if (mapDir.exists()) { FileUtils.deleteDirectory(mapDir); diff --git a/src/main/resources/games/capturethebrick/messages.yml b/src/main/resources/games/capturethebrick/messages.yml new file mode 100644 index 0000000..0a60f14 --- /dev/null +++ b/src/main/resources/games/capturethebrick/messages.yml @@ -0,0 +1,7 @@ +system: + game: + ready: "&7A new %game% game has started and can now be joined!" + failed: "&7%game% failed %cause%" + player: + join: "&7%player% has joined the game!" + left: "&7%player% has left the game." diff --git a/src/main/resources/messages.yml b/src/main/resources/messages.yml index 5c8ec1c..e4375e9 100644 --- a/src/main/resources/messages.yml +++ b/src/main/resources/messages.yml @@ -16,8 +16,6 @@ sgm: cant-start: "&7Game couldn't be started!" cant-join: "&7Could not join this game!" started: "&7Game has started!" - joined: "&7%player% has joined the game!" - left: "&7%player% has left the game." win: "&7Congratulations to %winner% for winning!" level: new: "&7A level with the name %level% has been created."