광산 크래프트 java 서버 플러그인을 만들고 있는데, 권한이 있거나 배열에 포함 된 모든 플레이어에게 메시지를 보내려고합니다. 명부. 루프 설정이 있지만 온라인으로 플레이어가있는 것처럼 여러 번 메시지를 보내는 것으로 보입니다. 어떻게 방지/수정합니까? 미리 감사드립니다! :)Bukkit (Java) 사람들이 온라인 상태 일 때 메시지 보내기
public void checkStart() {
HashSet<Player> listToSet = new HashSet<Player>(this.plugin.pInGame);
ArrayList<Player> pInGameNoDup = new ArrayList<Player>(listToSet);
//^changing the ArrayList to a Hashset then back to Arraylist to avoid duplicates (maybe this is the issue?)
int sizeCheck = pInGameNoDup.size();
if (sizeCheck >= 2) {
for (Player p : Bukkit.getOnlinePlayers()) {
if (pInGameNoDup.contains(p) || p.isOp()) {
p.sendMessage(label + "The Game of DeathTag has begun! Now chosing who will be it...");
randomIt();
p.sendMessage(label + this.plugin.it.getName() + " has been randomly chosen to be it!");
}
}
} else {
for (Player p : Bukkit.getOnlinePlayers()) {
if (p.hasPermission("tag.join") || p.isOp()) {
p.sendMessage(label + "Not Enough People have joined, the game will not start");
setDefault();
}
}
}
}
내가 처음을 변경 루프, 그러나 두 번째 루프가 모든 온라인 플레이어를 통과하여 모든 사람들이 게임이 시작되지 않는다는 것을 알 수 있도록해야합니다. – Squiddie
'의 Bukkit.getOnlinePlayers'통해 반복하고 –