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

Помогите Лист с броней в конфиге

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

Статус темы:
Закрыта.
  1. Автор темы
    Kurumi

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

    Баллы:
    76
    Всем привет. Мне нужно чтобы можно было записать любой id брони в конфиг и если на игрока надета эта броня, ему отправится сообщение в чат. Для этого мне скорее всего понадобится list, чтобы плагин из конфига читал этот лист с броней. Я не понимаю, как это сделать. Хелп плиз)
     
  2. Exception_Prototype

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

    Баллы:
    96
    Ну отправится оно ему, а дальше чё? Флудить будет?
     
  3. Автор темы
    Kurumi

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

    Баллы:
    76
    Это просто как какое-то действие если на нем есть броня из кфг, суть не в этом
     
  4. Zнамя Юности

    Zнамя Юности Активный участник Пользователь

    Баллы:
    76
    for (itemstack i : p.getEquipment()) {
    if (i.getType().name().equals(type)) {
    p.sendMessage("qq")
    }
    }
     
  5. Автор темы
    Kurumi

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

    Баллы:
    76
    upload_2018-2-19_16-36-3.png
     
  6. Автор темы
    Kurumi

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

    Баллы:
    76
    Попробую объяснить еще раз... Мне нужно брать лист с броней из конфига, и если на игроке надета хотя-бы одна вещь из этого листа, тогда ему нужно отсылать сообщение. На этот раз, думаю, понятнее будет. Надеюсь на вашу помощь...
     
  7. Автор темы
    Kurumi

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

    Баллы:
    76
    Хелпаните
     
  8. alexandrage

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

    Баллы:
    173
    Как то так. в if может быть любая кастомная проверка.
    Код:
            for(ItemStack stack : p.getInventory().getArmorContents()) {
                if(stack.isSimilar(stackother)) {
                    p.sendMessage("ok");
                }
            }
     
  9. Автор темы
    Kurumi

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

    Баллы:
    76
    Извини за глупый вопрос, но я не понимаю, как тут подставить проверку брони из конфига?
     
  10. alexandrage

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

    Баллы:
    173
  11. Автор темы
    Kurumi

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

    Баллы:
    76
  12. alexandrage

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

    Баллы:
    173
    Тяжелый случай.
    Код:
            for(ItemStack stack : p.getInventory().getArmorContents()) {
                for(ItemStack stackother : stackothers) {
                    if(stack.isSimilar(stackother)) {
                        p.sendMessage("ok");
                    }
                }
            }
     
  13. Автор темы
    Kurumi

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

    Баллы:
    76
    извини(
     
  14. Автор темы
    Kurumi

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

    Баллы:
    76
    Подскажи что за isSimilar, почитал доки, не особо понял
     
  15. MrMagaChannel

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

    Баллы:
    76
    Имя в Minecraft:
    mrmagachannel
    Тоже, что и equals, но не учитывает количество айтема
     
  16. Автор темы
    Kurumi

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

    Баллы:
    76
    Мм, а как получить этот самый itemstack в конфиге?
    Код:
    for(ItemStack stack : enemy.getInventory().getArmorContents())
                {
                        if(stack.isSimilar(main.getConfig().getItemStack("test.armor")))
                        {
                            enemy.sendMessage("ok");
                        }
                   }
    А сам конфиг выглядит так
    Код:
    test:
      armor:
      - DIAMOND_CHESTPLATE
      -
      -
      - 
    И мне консоль выдает ошибку, скорее всего, потому что не видит этот нагрудник. Что нужно сделать, чтобы вместо названия были ID и вообще плагин брал из конфига сам нагрудник?
    Знаю что сильно туплю и задаю глупые вопросы, но это надо прям срочно реализовать, помогите дураку)
     
  17. _MasterCapeXD_

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

    Баллы:
    76
    Имя в Minecraft:
    _MasterCapeXD_
    Дисериализируешь, создавая лист/массив предметов из конфига, потом проверяешь armorContents.

    armor:
    - DIAMOND_CHESTPLATE
    - DIAMOND_BOOTS

    List<Material> fromConfig = new ArrayList<Material>();

    config.getStringList().forEach(m -> fromConfig.add(Material.valueOf(m)));
     
  18. Zнамя Юности

    Zнамя Юности Активный участник Пользователь

    Баллы:
    76
    List<String> list = config.getStringList("test.armor");
     
  19. _MasterCapeXD_

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

    Баллы:
    76
    Имя в Minecraft:
    _MasterCapeXD_
    Дописал к сообщению код. Потом тот лист с Material используешь, когда надо проверить вещи в слотах для брони (чет мне подсказывает, что я не совсем понял что надо, и есть варинаты покороче).
     
  20. Автор темы
    Kurumi

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

    Баллы:
    76
    чекни лс
     
Статус темы:
Закрыта.

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