diff options
author | sowgro <tpoke.ferrari@gmail.com> | 2024-07-01 03:38:14 -0400 |
---|---|---|
committer | sowgro <tpoke.ferrari@gmail.com> | 2024-07-01 03:38:14 -0400 |
commit | 3b63c0e4ef7b14fd89d94170e5e6aa683374f0f8 (patch) | |
tree | ac1878a32993103a0af6bdc6fbca7531e72525d7 /src/main/java | |
parent | e1c1d130937c0e56535f8ab20fa0b2719b759a01 (diff) | |
download | Tumble-3b63c0e4ef7b14fd89d94170e5e6aa683374f0f8.tar.gz Tumble-3b63c0e4ef7b14fd89d94170e5e6aa683374f0f8.tar.bz2 Tumble-3b63c0e4ef7b14fd89d94170e5e6aa683374f0f8.zip |
Various fixes
Diffstat (limited to 'src/main/java')
6 files changed, 39 insertions, 13 deletions
diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/ForceStop.java b/src/main/java/com/MylesAndMore/Tumble/commands/ForceStop.java index 5ca856b..24f430c 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/ForceStop.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/ForceStop.java @@ -19,12 +19,12 @@ public class ForceStop implements SubCommand, CommandExecutor, TabCompleter { @Override public String getCommandName() { - return "forcestop"; + return "forceStop"; } @Override public String getPermission() { - return "tumble.forcestop"; + return "tumble.forceStop"; } @Override @@ -52,7 +52,7 @@ public class ForceStop implements SubCommand, CommandExecutor, TabCompleter { return false; } - game.gameEnd(); + game.stopGame(); sender.sendMessage(languageManager.fromKey("forcestop-success")); return true; } diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/Join.java b/src/main/java/com/MylesAndMore/Tumble/commands/Join.java index 3bda96c..1dbbad6 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/Join.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/Join.java @@ -5,7 +5,6 @@ import com.MylesAndMore.Tumble.game.Game; import com.MylesAndMore.Tumble.plugin.GameState; import com.MylesAndMore.Tumble.plugin.GameType; import com.MylesAndMore.Tumble.plugin.SubCommand; -import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -37,7 +36,7 @@ public class Join implements SubCommand, CommandExecutor, TabCompleter { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { - if (!(sender instanceof Player)) { + if (!(sender instanceof Player p)) { sender.sendMessage(languageManager.fromKey("not-for-console")); return false; } @@ -61,7 +60,7 @@ public class Join implements SubCommand, CommandExecutor, TabCompleter { Game game; if (args.length < 2 || args[1] == null) { if (arena.game == null) { - sender.sendMessage(ChatColor.RED + "no game is currently taking place in this arena, specify the game type to start one"); + sender.sendMessage(languageManager.fromKey("specify-game-type")); return false; } else { @@ -97,6 +96,14 @@ public class Join implements SubCommand, CommandExecutor, TabCompleter { } } + if (game.arena.gameSpawn == null) { + if (p.isOp()) { + sender.sendMessage(languageManager.fromKey("arena-not-ready-op")); + } else { + sender.sendMessage(languageManager.fromKey("arena-not-ready")); + } + } + if (game.gameState != GameState.WAITING) { sender.sendMessage(languageManager.fromKey("game-in-progress")); return false; diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/Reload.java b/src/main/java/com/MylesAndMore/Tumble/commands/Reload.java index 7d6041e..03ce42d 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/Reload.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/Reload.java @@ -30,7 +30,7 @@ public class Reload implements SubCommand, CommandExecutor, TabCompleter { for (Arena a : arenaManager.arenas.values()) { if (a.game != null) { - a.game.gameEnd(); + a.game.stopGame(); } } diff --git a/src/main/java/com/MylesAndMore/Tumble/config/ConfigManager.java b/src/main/java/com/MylesAndMore/Tumble/config/ConfigManager.java index b5fbba6..3b56f7f 100644 --- a/src/main/java/com/MylesAndMore/Tumble/config/ConfigManager.java +++ b/src/main/java/com/MylesAndMore/Tumble/config/ConfigManager.java @@ -8,14 +8,13 @@ import java.util.Objects; import static com.MylesAndMore.Tumble.Main.plugin; public class ConfigManager { + public boolean HideLeaveJoin; + public int waitDuration; + private final CustomConfig configYml = new CustomConfig("config.yml"); private final Configuration config = configYml.getConfig(); private final Configuration defaultConfig = Objects.requireNonNull(config.getDefaults()); - - public boolean HideLeaveJoin; - public int waitDuration; - public ConfigManager() { configYml.saveDefaultConfig(); validate(); diff --git a/src/main/java/com/MylesAndMore/Tumble/config/LanguageManager.java b/src/main/java/com/MylesAndMore/Tumble/config/LanguageManager.java index cd96551..917ce78 100644 --- a/src/main/java/com/MylesAndMore/Tumble/config/LanguageManager.java +++ b/src/main/java/com/MylesAndMore/Tumble/config/LanguageManager.java @@ -36,7 +36,16 @@ public class LanguageManager { } public String fromKeyNoPrefix(String key) { - String val = config.getString(key, "LANG_ERR"); + String val = config.getString(key); + + if (val == null) { + val = defaultConfig.getString(key); + } + + if (val == null) { + val = "LANG_ERR"; + } + return ChatColor.translateAlternateColorCodes('&',val); } } diff --git a/src/main/java/com/MylesAndMore/Tumble/game/Game.java b/src/main/java/com/MylesAndMore/Tumble/game/Game.java index 5988180..20d8869 100644 --- a/src/main/java/com/MylesAndMore/Tumble/game/Game.java +++ b/src/main/java/com/MylesAndMore/Tumble/game/Game.java @@ -166,7 +166,8 @@ public class Game { /** * Ends game: Displays overall winner and teleports players to lobby */ - public void gameEnd() { + private void gameEnd() { + if (!gamePlayers.isEmpty()) { setGamemode(gamePlayers, GameMode.SPECTATOR); @@ -207,6 +208,16 @@ public class Game { arena.game = null; } + public void stopGame() { + gamePlayers.forEach(this::removePlayer); + Bukkit.getServer().getScheduler().cancelTask(gameID); + gameID = -1; + Bukkit.getServer().getScheduler().cancelTask(autoStartID); + autoStartID = -1; + HandlerList.unregisterAll(eventListener); + arena.game = null; + } + /** * Removes a player from the game. * Called when a player leaves the server, or if they issue the leave command |