Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Не могу использовать Material

ajdjfkac

Участник
Баллы
31
Имя в Minecraft
ahahah
Помогите, пишу плагин чтобы при нажатии на предмет в инвентаре окрывался gui меню. Проблема в том, что код не работает на версии 1.21, на ниже она работает. Ошибка возникает в строчках где упоминается Material.

Код:

public class Plugin extends JavaPlugin implements Listener {

@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
}

@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
Player player = (Player) event.getWhoClicked();
if (event.getCurrentItem() == null) return;

ItemStack clickedItem = event.getCurrentItem();

if (clickedItem.getType() == Material.GOLDEN_APPLE) {
event.setCancelled(true);
openCustomGUI(player);
}
}

private void openCustomGUI(Player player) {

Inventory gui = Bukkit.createInventory(null, 9, "Мое кастомное GUI");

ItemStack diamond = new ItemStack(Material.DIAMOND);
ItemStack emerald = new ItemStack(Material.EMERALD);

gui.setItem(0, diamond);
gui.setItem(1, emerald);

player.openInventory(gui);
}
}
 
Иногда часть проблем решаются очисткой кешей самой IDE
upload_2025-4-20_18-24-42.jpeg
 
код не работает на версии 1.21, на ниже она работает
Версия Java в проекте какая? Должна быть не ниже 21.
Импорт работает?
IDEA последней версии?
Если не поможет, то да, чистить кэши
 
Последнее редактирование:
В 1.21(а может и раньше, не разбирался в олд апи) для установки предметов в gui и всего что с этим связано нужно указывать не Material(материал) а ItemStack(сам предмет). ItemStack item = new ItemStack(Material.GOLDEN_APPLE)
 

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

Назад
Верх