Цитата:
Сообщение от hex1r0
тут видимо ошибка в алгоритме (это при условии что _normalSkillTree должна хранить/хранит статические данные)
PHP код:
public Collection<SkillLearn> getAvailableAllSkills(Player player)
{
final Collection<SkillLearn> skills;
// тут ошибка видимо
// skills = _normalSkillTree.get(player.getActiveClassId());
skills = new ArrayList<>(_normalSkillTree.get(player.getActiveClassId()));
if (player.isAwaking())
|
тут как раз то, что тебе нужно.
у тебя же ошибка:
ты берёшь ArrayList из _normalSkillTree, он у тебя один для всех игроков с одним classId по ходу и зачем то туда добавляешь потом скилы, по этому и выходит: тут ты добавляешь, а в другом потоке бежишь по коллекции и у тебя вылазит
ConcurrentModificationException. Создавай для таких манипуляций отдельный список.