Сборки серверов

СливПлатные

Сейчас онлайн

  • no_war
  • Romzen__
  • Egleop088
  • kasarabot
  • xesusin
  • WillowWarden
  • KrejziBro
  • Mak_Sl
  • hoangkiet4998
  • minidream0
  • freszz
  • Mortadella
  • Inshallah
  • NikoVK
  • choo91
  • gogonadze
  • laurakillyou6
  • VOTERS

Помощь Не удаляется предмет DeluxMenus

TheBreaking
Версия ядра сервера
1.16+
Столкнулся с одной проблемой: сделал удаление предмета у игрока через меню, работает типо переработки. Игрок разбирает предмет и ему выдается другой предмет, но если предмет поломанный, то предмет не удаляется, но зато выдается предмет переработки. Что делать? Версия 1.16.5

Код предмета из меню:

YAML:
  330:
    material: LEATHER_BOOTS
    lore:
      - "&82 ткани"
      - ""
      - "&8Для переработки нажмите ПКМ"
    left_click_requirement:
      requirements:
        item_check:
          type: has item
          material: leather_boots
          amount: 1
          ignore_damage: true
          deny_commands:
          - '[message]&7[&cСистема&7] Недостаточно ресурсов!'
    left_click_commands:
      - '[refresh]'
      - '[console] clear %player_name% leather_boots 1'
      - '[console] give %player_name% string 2'
      - '[message]&7[&cСистема&7] Вы успешно разобрали предмет!'
    slot: 20
 
GPT-4o
Для решения вашей проблемы с переработкой предметов в Minecraft на версии 1.16.5, вам нужно убедиться, что вы правильно проверяете состояние предмета перед его переработкой. Если предмет поломанный, вам нужно сначала удалить его, а затем выдать новый предмет.

Вот пример кода на Java, который может помочь вам реализовать эту логику:

Java:
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;

public void recycleItem(Player player, ItemStack itemToRecycle) {
    // Проверка, является ли предмет поломанным
    if (itemToRecycle.getDurability() >= itemToRecycle.getType().getMaxDurability()) {
        // Удаляем поломанный предмет
        player.getInventory().remove(itemToRecycle);
        // Выдаем новый предмет
        ItemStack recycledItem = new ItemStack(Material.DIAMOND, 1); // Пример переработанного предмета
        player.getInventory().addItem(recycledItem);
        player.sendMessage("Ваш предмет был переработан!");
    } else {
        player.sendMessage("Этот предмет не поломан, его нельзя переработать!");
    }
}

В этом коде происходит проверка на поломанный предмет. Если предмет поломанный, он удаляется из инвентаря игрока, и игроку выдается новый предмет. Если предмет не поломанный, игрок получает сообщение о том, что переработка невозможна.

Убедитесь, что вы правильно вызываете этот метод в вашем меню переработки.
 
ВерхНиз