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

Помогите Добавить описание к предмету? В GUI Ответ Есть!

Статус
Закрыто для дальнейших ответов.

gasfull

Старожил
Пользователь
Баллы
123
Имя в Minecraft
gasfull
Есть такой код:
Java:
inv = Bukkit.createInventory(null, 18, "Menu");
inv.setItem(0, new ItemStack(Material.COAL_ORE));
player.openInventory(inv);
Как добавить Описание к предмету COAL_ORE (Угольная Руда:rolleyes:)
 
Для начала дам вам совет - учитесь гуглить. На этот вопрос уже отвечалось много-много раз.
Теперь развернуто ответим:
Для работы с мета-данными (Название, описание, зачарования, etc) в ведре используют специальный объект ItemMeta
Работаем так
Код:
                //Создаем ItemStack
                ItemStack itemStack = new ItemStack(Material.COAL_ORE);
                //Получаем его мету
                ItemMeta itemMeta = itemStack.getItemMeta();
                //Вносим свои изменения
                //Задаем имя
                itemMeta.setDisplayName(ChatColor.GREEN + "Button");
                //Задаем описание. Метод принимает в себя List<String>
                itemMeta.setLore(Arrays.asList(ChatColor.YELLOW + "Hello", ChatColor.UNDERLINE + "Wow"));
                //Применяем изменения
                itemStack.setItemMeta(itemMeta);

Обязательно обращаем внимание на то что метод getItemMeta не является "настоящим" геттером и возвращает вам новый объект-обертку, а не ссылку на реальную мета-информацию предмета, потому чтобы внести изменения обязательно надо делать все именно так.

(Я про то что если вы сделаете просто itemStack.getItemMeta().setDisplayName("..."), то у вас ничего не выйдет.
Получили, изменили, записали
 
Для начала дам вам совет - учитесь гуглить. На этот вопрос уже отвечалось много-много раз.
Теперь развернуто ответим:
Для работы с мета-данными (Название, описание, зачарования, etc) в ведре используют специальный объект ItemMeta
Работаем так
Код:
                //Создаем ItemStack
                ItemStack itemStack = new ItemStack(Material.COAL_ORE);
                //Получаем его мету
                ItemMeta itemMeta = itemStack.getItemMeta();
                //Вносим свои изменения
                //Задаем имя
                itemMeta.setDisplayName(ChatColor.GREEN + "Button");
                //Задаем описание. Метод принимает в себя List<String>
                itemMeta.setLore(Arrays.asList(ChatColor.YELLOW + "Hello", ChatColor.UNDERLINE + "Wow"));
                //Применяем изменения
                itemStack.setItemMeta(itemMeta);

Обязательно обращаем внимание на то что метод getItemMeta не является "настоящим" геттером и возвращает вам новый объект-обертку, а не ссылку на реальную мета-информацию предмета, потому чтобы внести изменения обязательно надо делать все именно так.

(Я про то что если вы сделаете просто itemStack.getItemMeta().setDisplayName("..."), то у вас ничего не выйдет.
Получили, изменили, записали
Спасибо Большое!
P.S. гуглил.....:oops:
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх