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

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

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

  1. Автор темы
    AdraliK

    AdraliK Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    AdraliK
    Здравствуйте! Мне надо узнать как получать описание предмета, чтобы потом с ним работать. В плагине я уже сделал описание при помощи ItemMeta и List<String>, но мне еще надо знать как получать строчки из описания. Я увидел, что ItemMeta есть команда "getLore", но как ей пользоваться понять не могу. Помогите кто знает!
    Заранее спасибо ^_^!
     
  2. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Учи джаву. Там простой список. Для примера: получить первую строку - .get(0) и тд...
     
  3. Exception_Prototype

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

    Баллы:
    96
    И да, это называется не команда, а вызов метода.
    PHP:
    ItemStack someItemStack = ...;

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

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

    Баллы:
    76
    PHP:
    ItemStack item = new ItemStack(Material.STONE); // предмет
    ItemMeta meta item.getItemMeta(); // мета

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

        
    String line lore.get(index); // получение строки коллекции по индексу
    }
     
  5. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Код:
            if(stack.hasItemMeta()) {
                if(stack.getItemMeta().hasLore()) {
                    List<String> lore = stack.getItemMeta().getLore();
                    System.out.println(Strings.join(lore, " "));
                }
            }
     
  6. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Существуют ItemStack'и без Meta? Походу метод hasMeta только для проверки редактировалась ли Meta ItemStack'а раньше.
    Специально код ядра проверил.
    PHP:
    public ItemMeta getItemMeta() {
            return 
    this.meta == null Bukkit.getItemFactory().getItemMeta(getType0()) : this.meta.clone();
        }
     

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