ConfigBuilder.java 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. package me.lortseam.completeconfig;
  2. import me.lortseam.completeconfig.api.ConfigCategory;
  3. import me.lortseam.completeconfig.api.ConfigOwner;
  4. import java.util.ArrayList;
  5. import java.util.Arrays;
  6. import java.util.List;
  7. public final class ConfigBuilder {
  8. static ConfigBuilder create(String modID, String[] branch, Class<? extends ConfigOwner> owner) {
  9. return new ConfigBuilder(modID, branch, owner);
  10. }
  11. private final ConfigHandler handler;
  12. private final Class<? extends ConfigOwner> owner;
  13. private final List<ConfigCategory> topLevelCategories = new ArrayList<>();
  14. private ConfigBuilder(String modID, String[] branch, Class<? extends ConfigOwner> owner) {
  15. handler = new ConfigHandler(modID, branch);
  16. this.owner = owner;
  17. }
  18. public ConfigBuilder add(ConfigCategory... categories) {
  19. topLevelCategories.addAll(Arrays.asList(categories));
  20. return this;
  21. }
  22. public ConfigHandler finish() {
  23. handler.register(owner, topLevelCategories);
  24. return handler;
  25. }
  26. }