Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Как получить List<List<String>> из конфига Bukkit?

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

Нейн

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
AmokDev
Всем доброго времени суток!

Нужно получить List<List<String>> из config.yml, но ide жалуется на
Java:
cfg.getStringList("myListListString");

Можно ли как-то получить такой объект, исходя из функционала спигота или нужно делать свои костыли?
 
Всем доброго времени суток!

Нужно получить List<List<String>> из config.yml, но ide жалуется на
Java:
cfg.getStringList("myListListString");

Можно ли как-то получить такой объект, исходя из функционала спигота или нужно делать свои костыли?
getObject("myListListString", List.class);
 
Всем доброго времени суток!

Нужно получить List<List<String>> из config.yml, но ide жалуется на
Java:
cfg.getStringList("myListListString");

Можно ли как-то получить такой объект, исходя из функционала спигота или нужно делать свои костыли?
Как такая структура должна выглядеть в конфиге?

getObject("myListListString", List.class);
Это ровно то же самое, что и section.getStringList(), только getStringList() ещё и с нормальным дженериком. Это не решает задачу ТСа
 
В его случае все равно с ненормальным, у него тип другой, тип токина увы у ведроапи нет.
Листа листов нет не в бакките, его нет в YML. Тут нужно не лист читать, а мапу. А ещё лучше использовать ConfigurationSerializable
 
Листа листов нет не в бакките, его нет в YML
Есть же. Даже подумал, может у меня шиза, так что проверил на всякий - работает.
Код:
test:
  - - hello
    - world
  - - welcome
    - back
Код:
List<?> list = getConfig().getList("test", List.of());
getLogger().info(list.toString());
for (var obj : list) {
    if (obj instanceof List<?> innerList) {
        for (var innerObj : innerList) {
            getLogger().info(innerObj.toString());
        }
    } else {
        getLogger().info("Unknown type " + obj);
    }
}
Результат:
Код:
[14:12:24 INFO]: [TestingStuff] [[hello, world], [welcome, back]]
[14:12:24 INFO]: [TestingStuff] hello
[14:12:24 INFO]: [TestingStuff] world
[14:12:24 INFO]: [TestingStuff] welcome
[14:12:24 INFO]: [TestingStuff] back
Yaml в целом очень гибкий в этом плане, можно и конфиг в список засунуть если постараться.
 
Есть же. Даже подумал, может у меня шиза, так что проверил на всякий - работает.
Код:
test:
  - - hello
    - world
  - - welcome
    - back
Код:
List<?> list = getConfig().getList("test", List.of());
getLogger().info(list.toString());
for (var obj : list) {
    if (obj instanceof List<?> innerList) {
        for (var innerObj : innerList) {
            getLogger().info(innerObj.toString());
        }
    } else {
        getLogger().info("Unknown type " + obj);
    }
}
Результат:
Код:
[14:12:24 INFO]: [TestingStuff] [[hello, world], [welcome, back]]
[14:12:24 INFO]: [TestingStuff] hello
[14:12:24 INFO]: [TestingStuff] world
[14:12:24 INFO]: [TestingStuff] welcome
[14:12:24 INFO]: [TestingStuff] back
Yaml в целом очень гибкий в этом плане, можно и конфиг в список засунуть если постараться.
Да оно то работает, индивиду не нравиться варнинг в иде)
 
Есть же. Даже подумал, может у меня шиза, так что проверил на всякий - работает.
Код:
test:
  - - hello
    - world
  - - welcome
    - back
Код:
List<?> list = getConfig().getList("test", List.of());
getLogger().info(list.toString());
for (var obj : list) {
    if (obj instanceof List<?> innerList) {
        for (var innerObj : innerList) {
            getLogger().info(innerObj.toString());
        }
    } else {
        getLogger().info("Unknown type " + obj);
    }
}
Результат:
Код:
[14:12:24 INFO]: [TestingStuff] [[hello, world], [welcome, back]]
[14:12:24 INFO]: [TestingStuff] hello
[14:12:24 INFO]: [TestingStuff] world
[14:12:24 INFO]: [TestingStuff] welcome
[14:12:24 INFO]: [TestingStuff] back
Yaml в целом очень гибкий в этом плане, можно и конфиг в список засунуть если постараться.
Жесть, ну и изврат. Но работает, да.

Да оно то работает, индивиду не нравиться варнинг в иде)
Мне не нравится getObject("myListListString", List.class), потому что им не прочитать лист листов. imDaniX сделал тоже самое, но с getList("test", List.of())
Вот это уже работает.

Хотя я удивлён, что YML и такое позволяет. Но выглядит ужасно
 
Жесть, ну и изврат. Но работает, да.


Мне не нравится getObject("myListListString", List.class), потому что им не прочитать лист листов. imDaniX сделал тоже самое, но с getList("test", List.of())
Вот это уже работает.

Хотя я удивлён, что YML и такое позволяет. Но выглядит ужасно

В моем конфиге это выглядит как
[
["Name", 1],
["Name", 228]
]

Делать для такого бд (such as sqlite) не хочется, ибо в жабе это не очень удобная практика. (там игроков от силы 10 будет)
 
Есть же. Даже подумал, может у меня шиза, так что проверил на всякий - работает.
Код:
test:
  - - hello
    - world
  - - welcome
    - back
Код:
List<?> list = getConfig().getList("test", List.of());
getLogger().info(list.toString());
for (var obj : list) {
    if (obj instanceof List<?> innerList) {
        for (var innerObj : innerList) {
            getLogger().info(innerObj.toString());
        }
    } else {
        getLogger().info("Unknown type " + obj);
    }
}
Результат:
Код:
[14:12:24 INFO]: [TestingStuff] [[hello, world], [welcome, back]]
[14:12:24 INFO]: [TestingStuff] hello
[14:12:24 INFO]: [TestingStuff] world
[14:12:24 INFO]: [TestingStuff] welcome
[14:12:24 INFO]: [TestingStuff] back
Yaml в целом очень гибкий в этом плане, можно и конфиг в список засунуть если постараться.

Спасибо, это действительно сработало!

ТЕМА ЗАКРЫТА​
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх