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 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;
}
}

View file

@ -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;

View file

@ -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")));
}
}