Помогите Выдача предметов из config.yml

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

BrainRTP

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
BrainRTP
Здравствуйте! Подскажите мне, пожалуйста, как реализовать выдачу предметов с зачарованиями? Эти предметы берутся из confing.yml (пример ниже)
YAML:
warrior:
    items:
        - IRON_SWORD:1:KNOCK_BACK:1  #id:кол-во_предмета:название_чара:LVL_чара
       - NAME_TAG:1 ....
И если, к примеру, нужно выдать предмет без зачарование, то нужно написать так:
YAML:
warrior:
    items:
        - IRON_SWORD:1
       - NAME_TAG:1
Либо как-нибудь по-другому в конфиге сделать структуру предмет + его зачарование
Выдачу предметов из списка научился делать (без зачарований):
Java:
List<String> items = this.getConfig().getStringList("warrior.items");
final short[] number = {0};
for (String i : items){
    ItemStack warrior1 = new ItemStack(Material.valueOf(i.toUpperCase()));
    inv.setItem(number[0], warrior1);
    number[0]++;player.sendMessage(String.valueOf(this.getConfig().getStringList("warrior.items.")));
}
Буду вам благодарен за помощь!
 
Последнее редактирование:
Enchantment.getByName(...) вроде как.
Таки я знаю как выдавать чары, но как реализовать систему, что бы она брала чары для определенного предмета из списка?
и все это в for.
Тобишь есть список предметов в конфиге такого типа (или Вы можете предложить другой тип)
YAML:
warrior:
    items:
        - IRON_SWORD:1:KNOCK_BACK:1  #id:кол-во_предмета:название_чара:LVL_чара
       - NAME_TAG:2:KNOCK_BACK:10
Используя конструкцию for игроку выдаются эти предметы. В итоге мы должны получить такую картину:
У игрока в '0' слоте один железный меч на отдачу I
В '1' слоте две бирки на отдачу X
 
Таки я знаю как выдавать чары, но как реализовать систему, что бы она брала чары для определенного предмета из списка?
и все это в for.
Тобишь есть список предметов в конфиге такого типа (или Вы можете предложить другой тип)
YAML:
warrior:
    items:
        - IRON_SWORD:1:KNOCK_BACK:1  #id:кол-во_предмета:название_чара:LVL_чара
       - NAME_TAG:2:KNOCK_BACK:10
Используя конструкцию for игроку выдаются эти предметы. В итоге мы должны получить такую картину:
У игрока в '0' слоте один железный меч на отдачу I
В '1' слоте две бирки на отдачу X
Ну к примеру раздели пробелами для split и ищи startsWith("Чтототам:")
 
Ну к примеру раздели пробелами для split и ищи startsWith("Чтототам:")
Большое спасибо, я попробую!
Может быть у Вас есть какие-нибудь идеи, как лучше эту систему реализовать? К примеру, как лучше сделать в config.yml ? А то id:ammount:enchant:lvl не для всех будет понятна :oops:
Если есть идеи, или по опыту знаете как лучше, не могли бы поделиться?
 
Большое спасибо, я попробую!
Может быть у Вас есть какие-нибудь идеи, как лучше эту систему реализовать? К примеру, как лучше сделать в config.yml ? А то id:ammount:enchant:lvl не для всех будет понятна :oops:
Если есть идеи, или по опыту знаете как лучше, не могли бы поделиться?
Я предпочитаю визуализацию, как в моем nbtkits. Накидал хрени в инвентарь, прописал команду и вуаля, у нас сериализовался контейнер. Пруфит.
https://cloud.mail.ru/public/KjNt/QKeHtjQTR
 
У меня вот так реализовано.

т.е. для каждого item новый конфиг секшон

upload_2017-1-14_14-42-31.png
 
Ну к примеру раздели пробелами для split и ищи startsWith("Чтототам:")
Я мозг сломал, простите...
Не могли бы Вы снова мне помочь?
Проблема такая, что игроку должно выдаться вот это:
В '9' слоте один железный меч на отдачу I
В '10' слоте две бирки на прочность II
В конфиге:
YAML:
warrior:
    items:
        - IRON_SWORD:KNOCK_BACK:1  #id:название_чара:LVL_чара
       - NAME_TAG:UNBREAKING:2
В коде:
Снимок экрана 2017-01-14 в 15.04.24.png
Выдает:
Снимок экрана 2017-01-14 в 15.04.14.png
Я не понимаю, как выдать-то?!
Разделить-то я разделил, а вот как выдать не понимаю!
Если берем:
Java:
for (String data : i.split(":", 2) {
    ItemStack warrior1 = new ItemStack(Material.valueOf(data.toUpperCase()));
    inv.setItem(number[0], warrior1);
    number[0]++;
То нам сначала выдастся предмет, а потом мы словим ошибку, что нет такого предмета как "KNOCK_BACK".
Вообщем, что-то в голову вообще мыслей голых не лезет как это можно сделать...
Через Essentials kits мне не нужно, если что)
Очень рассчитываю на вашу помощь!
 
Последнее редактирование:
Java:
for (String s: items){
   String[] itemInfo = s.split(":");
   ItemStack item = new ItemStack(Material.getMaterial(itemInfo[0].toUpperCase()));
   item.addEnchantment(Enchantment.getByName(itemInfo[1].toUpperCase()), Integer.parseInt(itemInfo[2]));
}
 
Накидать редактор, в конфиг кидать сразу ItemStack. После просто забирать из секции лист с предметами. ???
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх