- Баллы
- 173
- Имя в Minecraft
- Jampire
Впервые создаю тему в данном подфоруме и надеюсь найдется кто-нибудь, кто сможет мне помочь.
Возможно, что это баг движка или еще что-то, но сам я уже перепробовал очень многое и никак не могу заставить работать правильно.
Пытаюсь сохранить объект в конфиг, используя силы встроенного YML движка и возникли проблемы.
При старте плагина регистрирую класс
Сам класс делаю сериализируемым
Прописываю саму сериализацию
Допустим, записываю в конфиг секцию таких объектов
Пытаюсь получить их
В итоге при попытке сохранить этот объект в конфиг он сохраняется прекрасно и выглядит в целом как и должен.
При попытке его загрузить, никаких ошибок не происходит, но и в самом объекте конфига его не оказывается
в итоге возвращает 0, ибо в самом объекте конфига секция оказывается пустым, но в файле всё прекрасно.
НО! Стоит записать в эту же секцию любую другую строку, например 'string': 'string' - она начинает прекрасно читаться, но именно мои объекты все-равно игнорируются. К тому же не важно, в какую часть секции ее запихнуть.
Возможно, что это баг движка или еще что-то, но сам я уже перепробовал очень многое и никак не могу заставить работать правильно.
Пытаюсь сохранить объект в конфиг, используя силы встроенного YML движка и возникли проблемы.
При старте плагина регистрирую класс
Код:
ConfigurationSerialization.registerClass(MySuperClass.class);
Сам класс делаю сериализируемым
Код:
MySuperClass implements ConfigurationSerializable {
Прописываю саму сериализацию
Код:
@Override
public Map<String, Object> serialize() {
Map<String, Object> ser = new HashMap<String, Object>();
ser.put("stack", this.stack);
return ser;
}
Допустим, записываю в конфиг секцию таких объектов
Код:
Main.config.set("list.123", c);
Main.config.set("list.1234", c);
Пытаюсь получить их
Код:
for (String c : Main.config.getConfigurationSection("list").getValues(false).keySet()) {
Main.config.get("list." + c);
}
В итоге при попытке сохранить этот объект в конфиг он сохраняется прекрасно и выглядит в целом как и должен.
При попытке его загрузить, никаких ошибок не происходит, но и в самом объекте конфига его не оказывается
Код:
Main.config.getConfigurationSection("list").getValues(false).keySet().size()
Код:
list:
'123':
==: MySuperClass
name: '123'
'1234':
==: MySuperClass
name: '1234'
НО! Стоит записать в эту же секцию любую другую строку, например 'string': 'string' - она начинает прекрасно читаться, но именно мои объекты все-равно игнорируются. К тому же не важно, в какую часть секции ее запихнуть.
Последнее редактирование:
