当我在我的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!");
}
}
答案 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!");
}
}