@Getter
@RequiredArgsConstructor
public class War {
private final List<UUID> teamOne;
private final List<UUID> teamTwo;
private final WarType warType;
private final List<UUID> teamOneAlive;
private final List<UUID> teamTwoAlive;
@Nullable
private final Island winnerIsland;
}
private void tryPrepareForWar(Set<Queue> queueSet) {
for (Queue inQueue : queueSet) {
if (inQueue.getUuid().equals(getPlayer().getUniqueId())) continue;
List<UUID> teamOne = getTeamMates();
teamOne.add(getPlayer().getUniqueId());
List<UUID> teamTwo = inQueue.getTeamMates();
teamTwo.add(inQueue.getUuid());
ShardWars.getPlayerQueueManagerMap().get(inQueue.getUuid()).removeFromQueue();
removeFromQueue();
new WarManager(new War(teamOne, teamTwo, getWarType(), teamOne, teamTwo, null)).startWar();
break;
}
}
WarManager warManager = ShardWars.getPlayerWarManagerMap().get(player.getUniqueId());
War war = warManager.getWar();
if (war.getTeamOneAlive().isEmpty()) {
warManager.endWar(Core.getInstance().skyblockManager.getIsland(war.getTeamTwo().get(0)),
Core.getInstance().skyblockManager.getIsland(war.getTeamOne().get(0)));
return;
}
if (war.getTeamTwoAlive().isEmpty()) {
warManager.endWar(Core.getInstance().skyblockManager.getIsland(war.getTeamOne().get(0)),
Core.getInstance().skyblockManager.getIsland(war.getTeamTwo().get(0)));
return;
}
if (!ShardWars.getPlayerWarManagerMap().containsKey(player.getUniqueId()))
return;
WarManager warManager = ShardWars.getPlayerWarManagerMap().get(player.getUniqueId());
War war = warManager.getWar();
war.getTeamOneAlive().remove(player.getUniqueId());
war.getTeamTwoAlive().remove(player.getUniqueId());
List<ItemStack> playerInventory = Lists.newArrayList();
IntStream.range(0, event.getDrops().size()).filter(i -> event.getDrops().get(i) != null && !event.getDrops().get(i).getType().equals(Material.AIR)).forEachOrdered(i -> {
playerInventory.add(event.getDrops().get(i));
event.getDrops().remove(i);
});
ShardWars.getInventoryContentMap().put(player.getUniqueId(), playerInventory);
if (war.getTeamOneAlive().isEmpty()) {
warManager.endWar(Core.getInstance().skyblockManager.getIsland(war.getTeamTwo().get(0)),
Core.getInstance().skyblockManager.getIsland(war.getTeamOne().get(0)));
return;
}
if (war.getTeamTwoAlive().isEmpty()) {
warManager.endWar(Core.getInstance().skyblockManager.getIsland(war.getTeamOne().get(0)),
Core.getInstance().skyblockManager.getIsland(war.getTeamTwo().get(0)));
return;
}
Я использую Spigot API и создаю плагин типа «игрок против игрока». Я использую ломбок для геттеров и конструкторов. War#getTeamOne()
и War#getTeamTwo()
случайно становятся пустыми. Я печатаю списки по всему коду, и он содержит значение, но перед тем, как сделать WarManager#endWar()
, список пуст. Нигде в моем проекте я не могу удалить ни один из этих списков. Есть идеи, почему это так? Если вам нужно увидеть больше кода, lmk.