1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Не работает getItemInMainHand().clone()

Тема в разделе "Разработка плагинов для новичков", создана пользователем HogeltBellai, 8 авг 2023.

Статус темы:
Закрыта.
  1. Автор темы
    HogeltBellai

    HogeltBellai Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    HogeltBellai
    Добрый день форумчане!
    Столкнулся с такой проблемой, что вещи в руке при копировании нормально не дают материал и заменяют его на AIR.
    Я честно пытался сам пофиксить, но идеи у меня кончились по этому прошу у вас.

    По идее он полностью должен копипастить предмет.
    Версия 1.16.5 spigot
    Хочу подметить! Вещи с 1.12.2 он спокойно пропускает, а вещи 1.16.5 нет

    Логи консоли:
    Код:
    [00:04:57 INFO]: HogeltBellai issued server command: /ah sell 1
    [00:04:57 INFO]: [DEBUG] itemOffer: LEGACY_AIR
    [00:04:57 INFO]: [DEBUG] itemHand: LEGACY_AIR
    [00:04:57 INFO]: [DEBUG] Amount in Hand: 1
    [00:04:57 INFO]: [DEBUG] -
    [00:04:57 INFO]: [DEBUG] Amount in Hand: LEGACY_AIR
    [00:04:57 INFO]: [DEBUG] В руке игрока пусто или вещь является воздухом.

    Сам код:
    Код:
             Player player = (Player) sender;
             UUID uuid = player.getUniqueId();
             PlayerInventory inv = player.getInventory();
             ItemStack itemOffer = player.getInventory().getItemInMainHand().clone();
             ItemStack itemHand = player.getInventory().getItemInMainHand().clone();
    
            Bukkit.getLogger().info("[DEBUG] itemOffer: " + itemOffer.getType());
            Bukkit.getLogger().info("[DEBUG] itemHand: " + itemHand.getType());
            System.out.println("[DEBUG] Amount in Hand: " + itemHand.getAmount());
    
            if (itemHand == null || itemHand.getType() == Material.AIR) {
                System.out.println("[DEBUG] - ");
                System.out.println("[DEBUG] Amount in Hand: " + itemHand.getType());
                Bukkit.getLogger().info("[DEBUG] В руке игрока пусто или вещь является воздухом.");
                return false;
            }
     
  2. MurlikMurlik

    MurlikMurlik Активный участник Пользователь

    Баллы:
    96
    Похоже баккит использует легаси материалы для твоего плагина.
    Добавь api-version: 1.13 в plugin.yml чтобы он использовал нормальные материалы.
     
  3. Автор темы
    HogeltBellai

    HogeltBellai Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    HogeltBellai
    Проблема решена
    Уже увидел, но спасибо, не думал что это имеет такое большое значение
    Тема закрыта
     
Статус темы:
Закрыта.

Поделиться этой страницей