0
포럼에 게시하는 데 의지하지 않으려 고했지만이 모든 작업을 수행하지 못했습니다. 내가하려는 일은 ArrayList에 플레이어 이름이 없으면 ArrayList에 추가하는 것입니다.하지만이를 건너 뛰어서 추가되지 않은 목록에서 제거하는 것입니다. 이 플러그인의 궁극적 인 목표는 그들이 상처 입을 수없는 신 모드에있는 경우입니다. 명령 클래스 :문이 내 배열 목록을 통해 확인하지 않을 경우
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' 항목을 검사 할 수 없습니다. 메서드를 호출 할 때마다 새 List를 작성하므로 항상 비어 있습니다. 'playerList.contains (p)'를 대신 사용해보십시오. 왜 당신은'isGod'리스트를 갖고 있습니까? 다른 곳에서도 사용 하시나요? – dly