Вопрос Получение наличия упряжи с кастом данными на happy ghast 1.21.10

Версия Minecraft
1.20.X

rtopik

Пользователь
Сообщения
6
Никак не могу найти метод для получения информации что надето на счастливом гасте.

вот просто пример кода где подобное хочу применить
Код:
public void onMount(EntityMountEvent event) {
        if (!(event.getMount() instanceof HappyGhast ghast)) return;
        if (!(event.getEntity() instanceof Player player)) return;

        // вот как тут влепить проверку надет ли на гаста
        // предмет WHITE_HARNESS с кастом данными NamespacedKey

        AttributeInstance speed = ghast.getAttribute(Attribute.FLYING_SPEED);
        speed.setBaseValue(speed.getBaseValue() * boostMultiplier);
    }
 
Решение
Для получения того, что надето на счастливом гасте:
Java:
EntityEquipment equipment = ghast.getEquipment();
ItemStack chestItem = equipment.getItem(EquipmentSlot.BODY);


Полная реализация
Java:
private boolean hasCustomHarness(HappyGhast ghast) {
EntityEquipment equipment = ghast.getEquipment();

ItemStack harness = equipment.getItem(EquipmentSlot.BODY);
if (harness.getType() != Material.WHITE_HARNESS) return false;

ItemMeta meta = harness.getItemMeta();

PersistentDataContainer container = meta.getPersistentDataContainer();
return container.has(new NamespacedKey(plugin, "test_key"), PersistentDataType.STRING);
}
Для получения того, что надето на счастливом гасте:
Java:
EntityEquipment equipment = ghast.getEquipment();
ItemStack chestItem = equipment.getItem(EquipmentSlot.BODY);


Полная реализация
Java:
private boolean hasCustomHarness(HappyGhast ghast) {
EntityEquipment equipment = ghast.getEquipment();

ItemStack harness = equipment.getItem(EquipmentSlot.BODY);
if (harness.getType() != Material.WHITE_HARNESS) return false;

ItemMeta meta = harness.getItemMeta();

PersistentDataContainer container = meta.getPersistentDataContainer();
return container.has(new NamespacedKey(plugin, "test_key"), PersistentDataType.STRING);
}
 
Назад
Сверху Снизу