From e40b53713fe6fbadb7b134258f1d14ecc162bebc Mon Sep 17 00:00:00 2001 From: FirephoenixX02 Date: Wed, 5 Jun 2024 18:10:05 +0200 Subject: [PATCH] Fix Maplist bug & GameTimer error on join --- .../ps3minigames/commands/ForceStart.java | 4 +-- .../ps3minigames/commands/MapList.java | 2 +- .../listener/JoinQuitListener.java | 28 ++++++++++--------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/main/java/me/firephoenix/ps3minigames/commands/ForceStart.java b/src/main/java/me/firephoenix/ps3minigames/commands/ForceStart.java index 832c396..50d4d2e 100644 --- a/src/main/java/me/firephoenix/ps3minigames/commands/ForceStart.java +++ b/src/main/java/me/firephoenix/ps3minigames/commands/ForceStart.java @@ -20,8 +20,6 @@ public class ForceStart implements CommandExecutor { public FileConfiguration config = PS3Minigames.INSTANCE.getConfig(); - public PS3Minigames plugin = PS3Minigames.INSTANCE; - @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (args.length == 1) { @@ -33,7 +31,7 @@ public class ForceStart implements CommandExecutor { sender.sendMessage(ChatColor.translateAlternateColorCodes('&', config.getString("messages.force-starting-game").replace("%map%", world.getName()))); return true; } else { - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', config.getString("messages.world-not-found"))); + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', config.getString("messages.world-not-found").replace("%world%", args[0]))); return true; } } diff --git a/src/main/java/me/firephoenix/ps3minigames/commands/MapList.java b/src/main/java/me/firephoenix/ps3minigames/commands/MapList.java index c46fb94..8e2b9cf 100644 --- a/src/main/java/me/firephoenix/ps3minigames/commands/MapList.java +++ b/src/main/java/me/firephoenix/ps3minigames/commands/MapList.java @@ -22,7 +22,7 @@ public class MapList implements CommandExecutor { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if (args.length == 0) { StringBuilder sb = new StringBuilder(); - PS3Minigames.INSTANCE.getMultiverseCore().getMVWorldManager().getMVWorlds().stream().filter(world -> !world.getName().contains("world")).forEach(world -> sb.append(world.getName()).append(", ")); + PS3Minigames.INSTANCE.getMultiverseCore().getMVWorldManager().getMVWorlds().stream().filter(world -> !world.getName().contains("world") && !world.getName().contains(config.getString("spawn-lobby.world"))).forEach(world -> sb.append(world.getName()).append(", ")); sender.sendMessage(ChatColor.translateAlternateColorCodes('&', config.getString("messages.available-maps"))); sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6" + sb)); return true; diff --git a/src/main/java/me/firephoenix/ps3minigames/listener/JoinQuitListener.java b/src/main/java/me/firephoenix/ps3minigames/listener/JoinQuitListener.java index cabaaef..df853a3 100644 --- a/src/main/java/me/firephoenix/ps3minigames/listener/JoinQuitListener.java +++ b/src/main/java/me/firephoenix/ps3minigames/listener/JoinQuitListener.java @@ -49,36 +49,38 @@ public class JoinQuitListener implements Listener { // Send all players in the lobby the join message String joinMessage = ChatColor.translateAlternateColorCodes('&', config.getString("messages.join").replace("%player%", player.getDisplayName())); - for (Player player1 : plugin.getLobby().getPlayers()) { - player1.sendMessage(joinMessage); - } + + plugin.getLobby().getPlayers().forEach(player1 -> player1.sendMessage(joinMessage)); + player.sendMessage(joinMessage); - int lobbySize = plugin.getLobby().getPlayers().size(); + int playerCount = plugin.getLobby().getPlayers().size(); - if (lobbySize == 0) { + if (playerCount < 2) { String neededPlayersMessage = ChatColor.translateAlternateColorCodes('&', config.getString("messages.needed-players")); + player.sendMessage(neededPlayersMessage); - for (Player player1 : plugin.getLobby().getPlayers()) { - player1.sendMessage(neededPlayersMessage); - } + + plugin.getLobby().getPlayers().forEach(player1 -> player1.sendMessage(joinMessage)); } else { String gameStartMessage; - int startSeconds = (lobbySize >= 3) ? 10 : 25; + int startSeconds = (playerCount >= 3) ? 10 : 25; gameStartMessage = ChatColor.translateAlternateColorCodes('&', config.getString("messages.game-start").replace("%seconds%", Integer.toString(startSeconds))); player.sendMessage(gameStartMessage); - for (Player player1 : plugin.getLobby().getPlayers()) { - player1.sendMessage(gameStartMessage); - } + + plugin.getLobby().getPlayers().forEach(player1 -> player1.sendMessage(joinMessage)); if (plugin.getLobbyState() == LobbyState.IDLE) { + plugin.setLobbyState(LobbyState.STARTING); lobbyPlayers.add(player.getUniqueId()); + plugin.getLobby().getPlayers().forEach(player1 -> lobbyPlayers.add(player1.getUniqueId())); - gameTimer.start(); gameTimer = new Timer(startSeconds, plugin); + + gameTimer.start(); gameTimer.whenComplete(() -> PS3Minigames.INSTANCE.getGameUtil().startNewGame(lobbyPlayers, plugin.getServer().getWorld("cavern"))); } }