Я разрабатываю плагин для прокси -системы Minecraft Velocity. Он стал довольно большим, и одна из основных вещей, которые мне нужно сделать, когда я увеличивает плагин,-это то, что мой упакованный файл конфигурации, чтобы иметь возможность обновлять себя, чтобы, когда я добавляю новые функции, пользователи могли настраивать их без необходимости делать волшебные хокки, чтобы найти новые варианты и добавлять их вручную. Варианты, которые плагин вырос. В настоящее время я пытаюсь внедрить конфигурационную библиотеку Spongepowered. У меня есть основная идея, работающая, но у меня есть две вещи, которые я хотел бы исправить, и я не могу найти решение для жизни меня. Есть ли способ сгенерировать его с помощью правильного гнезда?
Код: Выделить всё
base:
somevalue: false
branch:
value1: 1
value2: 2
< /code>
против того, что он делает в настоящее время: < /p>
base.somevalue: false
base.branch.value1: 1
base.branch.value2: 2
2: я использую @configserializable для создания объекта Mapper , чтобы я мог автоматически десеризировать все, а не делать все это вручную. Аннотация @setting работает так, как предполагалось, но аннотация @comment ничего не делает, как я понимаю, это должно. Из того, что я собираю, он должен вставить комментарий, который я пишу в файл конфигурации, когда он сохраняет, что полезно для того, кто пытается настроить плагин. Я пытался в течение 3 дней и не могу заставить его работать.
Код: Выделить всё
final YamlConfigurationLoader loader = YamlConfigurationLoader.builder()
.defaultOptions(ConfigurationOptions.defaults())
.path(config)
.build();
final CommentedConfigurationNode root = loader.load(
ConfigurationOptions.defaults()
.serializers(
TypeSerializerCollection.builder()
.registerAnnotatedObjects(
ObjectMapper.factoryBuilder()
.addProcessor(
Comment.class,
Processor.comments()
)
.build()
)
.registerAll(ConfigurationOptions.defaults().serializers())
.build()
)
);
ConfigUtil configUtil = root.get(ConfigUtil.class);
loader.save(root);
где configutil - мой пользовательский класс ObjectMapper . После Loader.save (root) он сохраняет все, как «должно» (за исключением вопроса о гнездовании, упомянутой выше), но комментарии, которые я написал для моего объекта , не появляются. Кто -нибудь знает, что я здесь делаю не так? Есть ли лучший способ сделать самостоятельные файлы конфигурации для скорости? Любая помощь будет очень признателен.>
Подробнее здесь:
https://stackoverflow.com/questions/797 ... to-my-mine