Config.java 851 B

123456789101112131415161718192021222324
  1. package me.lortseam.completeconfig;
  2. import com.google.gson.GsonBuilder;
  3. import com.google.gson.JsonElement;
  4. import lombok.AccessLevel;
  5. import lombok.RequiredArgsConstructor;
  6. import me.lortseam.completeconfig.api.ConfigCategory;
  7. import me.lortseam.completeconfig.collection.CollectionMap;
  8. import me.lortseam.completeconfig.serialization.CollectionMapDeserializer;
  9. @RequiredArgsConstructor(access = AccessLevel.PACKAGE)
  10. public class Config extends CollectionMap {
  11. private final JsonElement json;
  12. void registerTopLevelCategory(ConfigCategory category) {
  13. fill(category);
  14. new GsonBuilder()
  15. .registerTypeAdapter(CollectionMapDeserializer.TYPE, new CollectionMapDeserializer(this, category.getConfigCategoryID()))
  16. .create()
  17. .fromJson(json, CollectionMapDeserializer.TYPE);
  18. }
  19. }