- Баллы
- 46
- Имя в Minecraft
- MySoulIsCry
У меня есть HashMap которая содержит в себе единицы урана который дал игрок. эта HashMap в отдельном классе менеджере, создаю экземпляр класса менеджера для дальнейшей работы с ним и этот же экземпляр регистрирую как Listener прописал в методах и ивентами пополнение мапы(если уже содержится значение с таким кличем тогда заменяем на сумму из мапы с дамагом который был сейчас если нет то тогда просто добавляю), но вот не задача HashMap при каждом нанесении дамага как будто обнуляется. Подумал что мб нельзя так регистрировать листенер и сделал отдельный класс с ним, класс менеджер же создаю в мейне и получаю в листенере через геттер, но все равно HashMap как будето пустая(тобишь урон в ней не прибавляется с каждым разом)
вот код метода который отвечает за получение дамага в менеджере(Ручаюсь что используется только 1 класс менеджера и больше он не создается)
sendMessage сделал для дебага, при каждом уроне выводит "Не содержится"
вот код метода который отвечает за получение дамага в менеджере(Ручаюсь что используется только 1 класс менеджера и больше он не создается)
PHP:
if(e.getEntity() == mag) {
if(e.getDamager() instanceof Player) {
Player damager = (Player) e.getDamager();
if(clanManager.getClanPlayer(damager) != null) {
Clan clan = clanManager.getClanPlayer(damager);
if(damageMap.containsKey(clan)) {
damager.sendMessage("содержится");
Double damage = damageMap.get(clan) + e.getFinalDamage();
damageMap.replace(clan, damage);
damager.sendActionBar("Нанесен урон вашим кланом: " + damage);
}else {
damager.sendMessage("Не содержится");
damageMap.put(clan, e.getFinalDamage());
damager.sendActionBar("Нанесен урон вашим кланом: " + e.getFinalDamage());
}
}
}
}