大家好,我正在为 Bukkit 创建一个游戏模式,并且遇到了一个目前似乎让我感到困惑的问题。也许我只是在看一些东西,所以如果我能用另一双眼睛看这段代码,我将非常感激。这是我的情况,我有一个创建游戏的命令。这是一个类类型。每次使用 /newgame 命令时,都会将其添加到 ArrayList。现在它应该检查是否已经存在同名的游戏。它仅适用于第一个游戏名称。因此,如果我制作了一个名为“game1”的游戏,然后尝试再次制作“game1”,它会返回“无法创建名称为 game1 的游戏”,但是当我制作另一个游戏时,例如,如果我添加游戏“game2”然后我再次制作“game2”,它允许创建它。它似乎只适用于制作的第一款游戏。如果有人可以提供帮助,那将有很大帮助,因此在此先感谢。
注意: Main.games.size() 总是上升,所以游戏正在被创建,但只有第一个游戏不能被创建超过一次,之后的任何游戏都可以有相同的名称,出于某种原因。
这是我的 CommandExecuter 中的代码片段
if (cmd.equalsIgnoreCase("newgame")){
Player player = sender.getServer().getPlayer(sender.getName());
if (Main.games.size() == 0){
Main.games.add(new Game(args[0]));
player.sendMessage(ChatColor.GREEN + "Game Created. To join Type " + ChatColor.ITALIC + "/join " + args[0]);
return true;
}else{
//Loop and Check
Game game;
for (int i = 0; i < Main.games.size(); i++){
game = Main.games.get(i);
if (game.getName().equalsIgnoreCase(args[0]) == false){
Main.games.add(new Game(args[0]));
player.sendMessage(ChatColor.GREEN + "Game Created. To join Type " + ChatColor.ITALIC + "/join " + args[0]);
//debug
player.sendMessage(Main.games.size() + ""); // + "" id
return true;
}else{
//Tells that a game already exists with that name.
player.sendMessage(ChatColor.RED + "Can not create game with the name of " + args[0]);
return true;
}
}
}