Bukkit EventHandler忽略if语句

时间:2015-12-29 13:19:16

标签: java arraylist bukkit

当我在我的bukkit服务器版本1.8.4上运行此代码时,它始终忽略if语句。但我没有错误。 你有什么想法吗?

我将解释我的插件是如何工作的。 1.我创建一个名为Logger的ArrayList。在这个ArrayList中,我将保存玩家 2. public void PlayerJoin(PlayerJoinEvent e){}是一个玩家加入时触发的事件。 3.触发事件并定义播放器p。我从活动中得到这个玩家。 4.我问:如果Logger包含我的Player p为false,则将我添加到Logger ArrayList。之后在聊天中打印记录器列表。

现在,当我第一次加入服务器时,我被添加到Logger列表中,插件将列表发送给我。现在我只在列表中。但是当我再次加入时,If语句再次运行,我再次被添加到Loggerlist中,并且可以看到我在列表中有两次。但我不知道为什么,因为if语句现在应该是假的而不是被执行。

ArrayList<Player> Logger = new ArrayList<Player>();

//Player On Join
@EventHandler
public void PlayerJoin(PlayerJoinEvent e) {
    Player p = e.getPlayer();
    if(!Logger.contains(p)){
        Logger.add(p);
        p.sendMessage("list: " + Logger);
    }else {
        p.sendMessage("You are already in the List!");
    }
}

1 个答案:

答案 0 :(得分:1)

我解决了我的问题!

ArrayList<String> Logger = new ArrayList<String>();
//Player On Join
@EventHandler
public void PlayerJoin(PlayerJoinEvent e) {
Player p = e.getPlayer();
if(!Logger.contains(p.getName())){
    Logger.add(p.getName());
    p.sendMessage("list: " + Logger);
}else {
    p.sendMessage("You are already in the List!");
}
}