Создание и получение описания в предмете

  • Автор темы Автор темы AdraliK
  • Дата начала Дата начала

AdraliK

Участник
Пользователь
Баллы
31
Имя в Minecraft
AdraliK
Здравствуйте! Мне надо узнать как получать описание предмета, чтобы потом с ним работать. В плагине я уже сделал описание при помощи ItemMeta и List<String>, но мне еще надо знать как получать строчки из описания. Я увидел, что ItemMeta есть команда "getLore", но как ей пользоваться понять не могу. Помогите кто знает!
Заранее спасибо ^_^!
 
Я увидел, что ItemMeta есть команда "getLore", но как ей пользоваться понять не могу.
Заранее спасибо ^_^!
Учи джаву. Там простой список. Для примера: получить первую строку - .get(0) и тд...
 
И да, это называется не команда, а вызов метода.
PHP:
ItemStack someItemStack = ...;

ItemMeta itemMeta = someItemStack.getItemMeta();
if (itemMeta.hasLore()) {
    List<String> lore = itemMeta.getLore(); // <- это обычная коллекция, как с ней работать читай в гугле.
    String string = lore.get(0); //Так мы получим первую строку из Lore.
    itemMeta.setLore(someNewLore); // Так мы может установить совершенно новый список как Lore.
    someItemStack.setItemMeta(itemMeta); //Если ты изменил Lore или любой другой компонент ItemMeta, то нужно его снова присвоить предмету.
}
 
PHP:
ItemStack item = new ItemStack(Material.STONE); // предмет
ItemMeta meta = item.getItemMeta(); // мета

if(meta.hasLore()) { // проверка на наличие описания
    int index = 0; // индекс считается от 0 (т.е. всегда отнимать единицу)
    List<String> lore = meta.getLore(); // описание

    String line = lore.get(index); // получение строки коллекции по индексу
}
 
Код:
        if(stack.hasItemMeta()) {
            if(stack.getItemMeta().hasLore()) {
                List<String> lore = stack.getItemMeta().getLore();
                System.out.println(Strings.join(lore, " "));
            }
        }
 
Код:
if(stack.hasItemMeta())
Существуют ItemStack'и без Meta? Походу метод hasMeta только для проверки редактировалась ли Meta ItemStack'а раньше.
Специально код ядра проверил.
PHP:
public ItemMeta getItemMeta() {
        return this.meta == null ? Bukkit.getItemFactory().getItemMeta(getType0()) : this.meta.clone();
    }
 
Назад
Верх