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

  • Автор темы Автор темы Kurumi
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Kurumi

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Kurumi
Всем привет. Мне нужно чтобы можно было записать любой id брони в конфиг и если на игрока надета эта броня, ему отправится сообщение в чат. Для этого мне скорее всего понадобится list, чтобы плагин из конфига читал этот лист с броней. Я не понимаю, как это сделать. Хелп плиз)
 
Попробую объяснить еще раз... Мне нужно брать лист с броней из конфига, и если на игроке надета хотя-бы одна вещь из этого листа, тогда ему нужно отсылать сообщение. На этот раз, думаю, понятнее будет. Надеюсь на вашу помощь...
 
Как то так. в if может быть любая кастомная проверка.
Код:
        for(ItemStack stack : p.getInventory().getArmorContents()) {
            if(stack.isSimilar(stackother)) {
                p.sendMessage("ok");
            }
        }
 
Как то так. в if может быть любая кастомная проверка.
Код:
        for(ItemStack stack : p.getInventory().getArmorContents()) {
            if(stack.isSimilar(stackother)) {
                p.sendMessage("ok");
            }
        }
Извини за глупый вопрос, но я не понимаю, как тут подставить проверку брони из конфига?
 
Мне нужно проверить, надета ли на игрока хоть одна шмотка из листа
Тяжелый случай.
Код:
        for(ItemStack stack : p.getInventory().getArmorContents()) {
            for(ItemStack stackother : stackothers) {
                if(stack.isSimilar(stackother)) {
                    p.sendMessage("ok");
                }
            }
        }
 
Подскажи что за isSimilar, почитал доки, не особо понял
 
Мм, а как получить этот самый itemstack в конфиге?
Код:
for(ItemStack stack : enemy.getInventory().getArmorContents())
            {
                    if(stack.isSimilar(main.getConfig().getItemStack("test.armor")))
                    {
                        enemy.sendMessage("ok");
                    }
               }
А сам конфиг выглядит так
Код:
test:
  armor:
  - DIAMOND_CHESTPLATE
  -
  -
  -
И мне консоль выдает ошибку, скорее всего, потому что не видит этот нагрудник. Что нужно сделать, чтобы вместо названия были ID и вообще плагин брал из конфига сам нагрудник?
Знаю что сильно туплю и задаю глупые вопросы, но это надо прям срочно реализовать, помогите дураку)
 
Мм, а как получить этот самый itemstack в конфиге?
Код:
for(ItemStack stack : enemy.getInventory().getArmorContents())
            {
                    if(stack.isSimilar(main.getConfig().getItemStack("test.armor")))
                    {
                        enemy.sendMessage("ok");
                    }
               }
А сам конфиг выглядит так
Код:
test:
  armor:
  - DIAMOND_CHESTPLATE
  -
  -
  -
И мне консоль выдает ошибку, скорее всего, потому что не видит этот нагрудник. Что нужно сделать, чтобы вместо названия были ID и вообще плагин брал из конфига сам нагрудник?
Знаю что сильно туплю и задаю глупые вопросы, но это надо прям срочно реализовать, помогите дураку)
Дисериализируешь, создавая лист/массив предметов из конфига, потом проверяешь armorContents.

armor:
- DIAMOND_CHESTPLATE
- DIAMOND_BOOTS

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

config.getStringList().forEach(m -> fromConfig.add(Material.valueOf(m)));
 
Мм, а как получить этот самый itemstack в конфиге?
Код:
for(ItemStack stack : enemy.getInventory().getArmorContents())
            {
                    if(stack.isSimilar(main.getConfig().getItemStack("test.armor")))
                    {
                        enemy.sendMessage("ok");
                    }
               }
А сам конфиг выглядит так
Код:
test:
  armor:
  - DIAMOND_CHESTPLATE
  -
  -
  -
И мне консоль выдает ошибку, скорее всего, потому что не видит этот нагрудник. Что нужно сделать, чтобы вместо названия были ID и вообще плагин брал из конфига сам нагрудник?
Знаю что сильно туплю и задаю глупые вопросы, но это надо прям срочно реализовать, помогите дураку)
List<String> list = config.getStringList("test.armor");
 
Дописал к сообщению код. Потом тот лист с Material используешь, когда надо проверить вещи в слотах для брони (чет мне подсказывает, что я не совсем понял что надо, и есть варинаты покороче).
 
Дописал к сообщению код. Потом тот лист с Material используешь, когда надо проверить вещи в слотах для брони (чет мне подсказывает, что я не совсем понял что надо, и есть варинаты покороче).
чекни лс
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх