Вопрос Помогите с HashSet<Entity>

Версия Minecraft
1.16.X

Любитель Метала

Пользователь
Сообщения
75
Решения
1
Такова проблема, у меня есть плагин на боссов и там стоит проверка на убит был босс или нет, но проблема в том, что если убить его ничего не происходит, кто знает в чём проблема?

Код:
package me.seven.reintmase.toboss.Events;
import me.seven.reintmase.toboss.Arrays.Containers;
import me.seven.reintmase.toboss.Main;
import me.seven.reintmase.toboss.ManageBosses.BossReward;
import me.seven.reintmase.toboss.Utils.StringUtils;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDeathEvent;

public class Listeners implements Listener {

Containers container;
BossReward reward;
FileConfiguration config;

private String winnMessage;

public Listeners(Containers containers, BossReward bossReward){
this.config = Main.getPlugin().getConfig();

this.winnMessage = config.getString("winn-message");

this.container = containers;
this.reward = bossReward;
}

@EventHandler
public void onKillBoss(EntityDeathEvent event) {
Entity deathEntity = event.getEntity();

if (container.getBoss().contains(deathEntity)){
Player player = event.getEntity().getKiller();
if (player != null) {
reward.giveReward(player);

player.sendMessage(StringUtils.format(""));
player.sendMessage(StringUtils.format("&a[✔] ► Поздравляем! Вы убили босса и получили награды!"));
player.sendMessage(StringUtils.format(""));

String editedWinnMessage = winnMessage.replace("%player%", player.getName());

Bukkit.broadcastMessage(StringUtils.format(""));
Bukkit.broadcastMessage(StringUtils.format(editedWinnMessage));
Bukkit.broadcastMessage(StringUtils.format(""));
}
}
}

}


Код:
package me.seven.reintmase.toboss.Arrays;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;

public class Containers {

public boolean bossalive = false;

private HashSet<Entity> boss = new HashSet<>();

public HashSet<Entity> getBoss() {
return boss;
}

public void setBoss(Entity bossEntity) {
boss.add(bossEntity);
}
}



Зарание спасибо!
 
Вам необходимо зарегистрироваться для просмотра изображений-вложений

Поставь сюда точку останова и посмотри в дебаге что у тебя лежит в container и какое энтити в deathEntity. Вообще я бы посоветовал не использовать списки для особенных мобов, а вешать на них persistent data container
 
Вам необходимо зарегистрироваться для просмотра изображений-вложений

Поставь сюда точку останова и посмотри в дебаге что у тебя лежит в container и какое энтити в deathEntity. Вообще я бы посоветовал не использовать списки для особенных мобов, а вешать на них persistent data container
Чуть поподробнее про дата контейнер пожалуйста
 
Вам необходимо зарегистрироваться для просмотра изображений-вложений

Поставь сюда точку останова и посмотри в дебаге что у тебя лежит в container и какое энтити в deathEntity. Вообще я бы посоветовал не использовать списки для особенных мобов, а вешать на них persistent data container
Разобрался, спасибо большое, я использовал дата контейнер и всё заработало, вот статья тем кто это будет читать:
 
Назад
Сверху Снизу