|
@@ -2,10 +2,12 @@ package me.lortseam.completeconfig;
|
|
|
|
|
|
import me.lortseam.completeconfig.api.ConfigCategory;
|
|
import me.lortseam.completeconfig.api.ConfigCategory;
|
|
import me.lortseam.completeconfig.api.ConfigOwner;
|
|
import me.lortseam.completeconfig.api.ConfigOwner;
|
|
|
|
+import me.lortseam.completeconfig.gui.GuiBuilder;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
public final class ConfigBuilder {
|
|
public final class ConfigBuilder {
|
|
|
|
|
|
@@ -13,12 +15,15 @@ public final class ConfigBuilder {
|
|
return new ConfigBuilder(modID, branch, owner);
|
|
return new ConfigBuilder(modID, branch, owner);
|
|
}
|
|
}
|
|
|
|
|
|
- private final ConfigHandler handler;
|
|
|
|
|
|
+ private final String modID;
|
|
|
|
+ private final String[] branch;
|
|
private final Class<? extends ConfigOwner> owner;
|
|
private final Class<? extends ConfigOwner> owner;
|
|
private final List<ConfigCategory> topLevelCategories = new ArrayList<>();
|
|
private final List<ConfigCategory> topLevelCategories = new ArrayList<>();
|
|
|
|
+ private GuiBuilder guiBuilder;
|
|
|
|
|
|
private ConfigBuilder(String modID, String[] branch, Class<? extends ConfigOwner> owner) {
|
|
private ConfigBuilder(String modID, String[] branch, Class<? extends ConfigOwner> owner) {
|
|
- handler = new ConfigHandler(modID, branch);
|
|
|
|
|
|
+ this.modID = modID;
|
|
|
|
+ this.branch = branch;
|
|
this.owner = owner;
|
|
this.owner = owner;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -34,13 +39,24 @@ public final class ConfigBuilder {
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * Completes the config creation and registers the config.
|
|
|
|
|
|
+ * Sets a custom client GUI builder for the config.
|
|
|
|
+ *
|
|
|
|
+ * @param guiBuilder The GUI builder
|
|
|
|
+ * @return this config builder
|
|
|
|
+ */
|
|
|
|
+ public ConfigBuilder setGuiBuilder(GuiBuilder guiBuilder) {
|
|
|
|
+ Objects.requireNonNull(guiBuilder);
|
|
|
|
+ this.guiBuilder = guiBuilder;
|
|
|
|
+ return this;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Completes the config creation.
|
|
*
|
|
*
|
|
* @return the handler associated with the created config
|
|
* @return the handler associated with the created config
|
|
*/
|
|
*/
|
|
public ConfigHandler finish() {
|
|
public ConfigHandler finish() {
|
|
- handler.register(owner, topLevelCategories);
|
|
|
|
- return handler;
|
|
|
|
|
|
+ return new ConfigHandler(modID, branch, owner, topLevelCategories, guiBuilder);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|