0
私はフォーラムでの投稿に頼らざるを得ないようにしていましたが、私がやったことはすべてこの作業をしません。私がしようとしているのは、ArrayListにプレーヤーの名前が含まれていない場合、ArrayListに追加されますが、これをスキップして、リストに追加していないリストから削除するだけです。このプラグインの究極の目標は、神のモードで傷つけることができない場合です。 コマンドクラス:if文が配列リストをチェックしないif
public static List<String> playerList = new ArrayList<String>();
@Override
public boolean onCommand(CommandSender sender, Command cmd, String str, String[] args) {
Player player = (Player) sender;
String p = player.getName();
List<String> isGod = new ArrayList<String>();
if (cmd.getName().equalsIgnoreCase("god") && sender instanceof Player) {
if (!isGod.contains(p)) {
isGod.add(p);
playerList.add(p);
player.sendMessage(ChatColor.GREEN + "Godmode is enabled");
return true;
} else {
isGod.remove(p);
playerList.remove(p);
player.sendMessage(ChatColor.GREEN + "Godmode is disabled");
return true;
}
}
return true;
}
}
リスナクラス:
@EventHandler
public void isDamaged(EntityDamageEvent e) {
String player = e.getEntity().getName();
if (playerList.contains(player)) {
e.setCancelled(true);
}
}
}
あなたのケースでは、isGodエントリを確認することはできません。メソッドを呼び出すたびに新しいリストを作成するので、常に空です。代わりに 'playerList.contains(p)'を試してみてください。なぜあなたは 'isGod'リストを持っていますか?他の場所でも使っていますか? – dly