Fix Maplist bug & GameTimer error on join

This commit is contained in:
FirephoenixX02 2024-06-05 18:10:05 +02:00
parent ca3060321b
commit e40b53713f
3 changed files with 17 additions and 17 deletions

View file

@ -20,8 +20,6 @@ public class ForceStart implements CommandExecutor {
public FileConfiguration config = PS3Minigames.INSTANCE.getConfig(); public FileConfiguration config = PS3Minigames.INSTANCE.getConfig();
public PS3Minigames plugin = PS3Minigames.INSTANCE;
@Override @Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (args.length == 1) { 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()))); sender.sendMessage(ChatColor.translateAlternateColorCodes('&', config.getString("messages.force-starting-game").replace("%map%", world.getName())));
return true; return true;
} else { } 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; return true;
} }
} }

View file

@ -22,7 +22,7 @@ public class MapList implements CommandExecutor {
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (args.length == 0) { if (args.length == 0) {
StringBuilder sb = new StringBuilder(); 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('&', config.getString("messages.available-maps")));
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6" + sb)); sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6" + sb));
return true; return true;

View file

@ -49,36 +49,38 @@ public class JoinQuitListener implements Listener {
// Send all players in the lobby the join message // Send all players in the lobby the join message
String joinMessage = ChatColor.translateAlternateColorCodes('&', config.getString("messages.join").replace("%player%", player.getDisplayName())); 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); 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")); String neededPlayersMessage = ChatColor.translateAlternateColorCodes('&', config.getString("messages.needed-players"));
player.sendMessage(neededPlayersMessage); player.sendMessage(neededPlayersMessage);
for (Player player1 : plugin.getLobby().getPlayers()) {
player1.sendMessage(neededPlayersMessage); plugin.getLobby().getPlayers().forEach(player1 -> player1.sendMessage(joinMessage));
}
} else { } else {
String gameStartMessage; 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))); gameStartMessage = ChatColor.translateAlternateColorCodes('&', config.getString("messages.game-start").replace("%seconds%", Integer.toString(startSeconds)));
player.sendMessage(gameStartMessage); 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) { if (plugin.getLobbyState() == LobbyState.IDLE) {
plugin.setLobbyState(LobbyState.STARTING); plugin.setLobbyState(LobbyState.STARTING);
lobbyPlayers.add(player.getUniqueId()); lobbyPlayers.add(player.getUniqueId());
plugin.getLobby().getPlayers().forEach(player1 -> lobbyPlayers.add(player1.getUniqueId())); plugin.getLobby().getPlayers().forEach(player1 -> lobbyPlayers.add(player1.getUniqueId()));
gameTimer.start();
gameTimer = new Timer(startSeconds, plugin); gameTimer = new Timer(startSeconds, plugin);
gameTimer.start();
gameTimer.whenComplete(() -> PS3Minigames.INSTANCE.getGameUtil().startNewGame(lobbyPlayers, plugin.getServer().getWorld("cavern"))); gameTimer.whenComplete(() -> PS3Minigames.INSTANCE.getGameUtil().startNewGame(lobbyPlayers, plugin.getServer().getWorld("cavern")));
} }
} }