Config.java 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. package me.lortseam.completeconfig;
  2. import com.google.gson.GsonBuilder;
  3. import com.google.gson.JsonElement;
  4. import com.google.gson.JsonSyntaxException;
  5. import lombok.AccessLevel;
  6. import lombok.RequiredArgsConstructor;
  7. import me.lortseam.completeconfig.api.ConfigCategory;
  8. import me.lortseam.completeconfig.collection.CollectionMap;
  9. import me.lortseam.completeconfig.serialization.CollectionMapDeserializer;
  10. import org.apache.logging.log4j.LogManager;
  11. import org.apache.logging.log4j.Logger;
  12. @RequiredArgsConstructor(access = AccessLevel.PACKAGE)
  13. public class Config extends CollectionMap {
  14. private static final Logger LOGGER = LogManager.getLogger();
  15. private final JsonElement json;
  16. void registerTopLevelCategory(ConfigCategory category) {
  17. fill(category);
  18. try {
  19. new GsonBuilder()
  20. .registerTypeAdapter(CollectionMapDeserializer.TYPE, new CollectionMapDeserializer(this, category.getConfigCategoryID()))
  21. .create()
  22. .fromJson(json, CollectionMapDeserializer.TYPE);
  23. } catch (JsonSyntaxException e) {
  24. LOGGER.warn("An error occurred while trying to load the config for category " + category.getClass());
  25. }
  26. }
  27. }