chore: clean up config modules
This commit is contained in:
parent
f03f1c306d
commit
09466ce897
|
@ -20,8 +20,8 @@ repositories {
|
|||
and include LibJF modules like this:
|
||||
```groovy
|
||||
dependencies {
|
||||
include modImplementation("io.gitlab.jfronny.libjf:libjf-config-core-v1:${project.libjf_version}")
|
||||
include modRuntimeOnly("io.gitlab.jfronny.libjf:libjf-config-ui-tiny-v1:${project.libjf_version}")
|
||||
include modImplementation("io.gitlab.jfronny.libjf:libjf-config-core-v2:${project.libjf_version}")
|
||||
include modRuntimeOnly("io.gitlab.jfronny.libjf:libjf-config-ui-tiny:${project.libjf_version}")
|
||||
include("io.gitlab.jfronny.libjf:libjf-base:${project.libjf_version}")
|
||||
|
||||
modLocalRuntime("io.gitlab.jfronny.libjf:libjf-config-reflect-v1:${project.libjf_version}")
|
||||
|
|
|
@ -6,11 +6,10 @@
|
|||
|
||||
- [libjf-base](./libjf-base.md)
|
||||
- [Config](./config/README.md)
|
||||
- [libjf-config-core-v1](./config/libjf-config-core-v1.md)
|
||||
- [libjf-config-reflect-v1](./config/libjf-config-reflect-v1.md)
|
||||
- [libjf-config-compiler-plugin](./config/libjf-config-compiler-plugin.md)
|
||||
- [libjf-config-commands-v1](./config/libjf-config-commands-v1.md)
|
||||
- [libjf-config-ui-tiny-v1](./config/libjf-config-ui-tiny-v1.md)
|
||||
- [libjf-config-core-v2](./config/libjf-config-core-v2.md)
|
||||
- [libjf-config-compiler-plugin-v2](./config/libjf-config-compiler-plugin-v2.md)
|
||||
- [libjf-config-commands](./config/libjf-config-commands.md)
|
||||
- [libjf-config-ui-tiny](./config/libjf-config-ui-tiny.md)
|
||||
- [libjf-devutil](./libjf-devutil.md)
|
||||
- [libjf-data-v0](./libjf-data-v0.md)
|
||||
- [libjf-data-manipulation-v0](./libjf-data-manipulation-v0.md)
|
||||
|
|
|
@ -11,8 +11,8 @@ repositories {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
include modImplementation("io.gitlab.jfronny.libjf:libjf-config-core-v1:${project.libjf_version}")
|
||||
include modRuntimeOnly("io.gitlab.jfronny.libjf:libjf-config-ui-tiny-v1:${project.libjf_version}")
|
||||
include modImplementation("io.gitlab.jfronny.libjf:libjf-config-core-v2:${project.libjf_version}")
|
||||
include modRuntimeOnly("io.gitlab.jfronny.libjf:libjf-config-ui-tiny:${project.libjf_version}")
|
||||
include("io.gitlab.jfronny.libjf:libjf-base:${project.libjf_version}")
|
||||
|
||||
annotationProcessor("io.gitlab.jfronny.libjf:libjf-config-compiler-plugin-v2:${project.libjf_version}")
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# libjf-config-commands-v1
|
||||
# libjf-config-commands
|
||||
This serverside module provides commands for modifying configs using this library.
|
||||
If you are developing a serverside mod, you may wish to include it to enable easier configuration.
|
||||
The commands are available under `/libjf config`, using auto-complete is recommended.
|
|
@ -1,4 +1,4 @@
|
|||
# libjf-config-core-v1
|
||||
# libjf-config-core-v2
|
||||
The core module contains the abstractions and annotations used by other modules to interact with configs.
|
||||
It also contains the code for registering configs to mods, serialization and automatic reloads on change.
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
# libjf-config-reflect-v1
|
||||
This module uses reflection to register configs from files using the annotations as presented [here](./libjf-config-core-v1.md)
|
||||
In order to register a config, simply add the class annotated as `@JfConfig` to the `libjf:config` entrypoint.
|
||||
Please be aware that this module may load your config class before the game classes are available.
|
||||
Using them there WILL result in problems!
|
||||
|
||||
Instead of using this implementation, you should use the [compiler plugin](./libjf-config-compiler-plugin-v2.md),
|
||||
which removes the runtime overhead of this implementation.
|
|
@ -1,4 +0,0 @@
|
|||
# libjf-config-ui-tiny-v1
|
||||
This module provides an automatically registered, TinyConfig-based UI for all mods using libjf-config.
|
||||
Embedding this is recommended when developing client-side mods.
|
||||
Manually generating config screens is also possible through `ConfigScreen.create(config, parent)`
|
|
@ -0,0 +1,4 @@
|
|||
# libjf-config-ui-tiny
|
||||
This module provides an automatically registered, TinyConfig-based UI for all mods using libjf-config.
|
||||
Embedding this is recommended when developing client-side mods.
|
||||
libjf-config-ui-tiny implements the config-core-provided `ConfigScreenFactory`, so you can `ConfigScreenFactory.getInstance().create(config, parent).get()` to obtain a screen for your config.
|
|
@ -1,7 +1,7 @@
|
|||
# libjf-web-v0
|
||||
libjf-web-v0 provides an HTTP web server you can use in your serverside (and technically also clientside) mods
|
||||
to serve web content through a unified port.
|
||||
libjf-web-v0 depends on libjf-config-v1 to provide its config, libjf-base, fabric-lifecycle-events-v1 and fabric-command-api-v1
|
||||
libjf-web-v0 depends on libjf-config-core-v2 to provide its config, libjf-base, fabric-lifecycle-events-v1 and fabric-command-api-v1
|
||||
|
||||
### Getting started
|
||||
Implement WebInit and register it as a libjf:web entrypoint. To enable the server, also add the following to your fabric.mod.json:
|
||||
|
|
|
@ -5,12 +5,12 @@ plugins {
|
|||
}
|
||||
|
||||
base {
|
||||
archivesName.set("libjf-config-commands-v1")
|
||||
archivesName.set("libjf-config-commands")
|
||||
}
|
||||
|
||||
dependencies {
|
||||
val fabricVersion: String by rootProject.extra
|
||||
api(devProject(":libjf-base"))
|
||||
api(devProject(":libjf-config-core-v1"))
|
||||
api(devProject(":libjf-config-core-v2"))
|
||||
include(modImplementation(fabricApi.module("fabric-command-api-v2", fabricVersion))!!)
|
||||
}
|
|
@ -8,11 +8,12 @@ import com.mojang.brigadier.exceptions.DynamicCommandExceptionType;
|
|||
import io.gitlab.jfronny.commons.throwable.ThrowingRunnable;
|
||||
import io.gitlab.jfronny.commons.throwable.ThrowingSupplier;
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.*;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.type.Type;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.*;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.type.Type;
|
||||
import net.fabricmc.api.ModInitializer;
|
||||
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
|
||||
import net.minecraft.server.command.ServerCommandSource;
|
||||
import net.minecraft.text.MutableText;
|
||||
import net.minecraft.text.Text;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
@ -22,6 +23,12 @@ import static net.minecraft.server.command.CommandManager.argument;
|
|||
import static net.minecraft.server.command.CommandManager.literal;
|
||||
|
||||
public class JfConfigCommand implements ModInitializer {
|
||||
private static final String MOD_ID = "libjf-config-commands";
|
||||
|
||||
private MutableText text(String text) {
|
||||
return Text.literal("[" + MOD_ID + "] " + text);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInitialize() {
|
||||
CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> {
|
||||
|
@ -29,25 +36,24 @@ public class JfConfigCommand implements ModInitializer {
|
|||
LiteralArgumentBuilder<ServerCommandSource> c_config = literal("config")
|
||||
.requires((serverCommandSource) -> serverCommandSource.hasPermissionLevel(4))
|
||||
.executes(context -> {
|
||||
context.getSource().sendFeedback(() -> Text.literal("[libjf-config-v1] Loaded configs for:"), false);
|
||||
ConfigHolder.getInstance().getRegistered().forEach((s, config) -> {
|
||||
context.getSource().sendFeedback(() -> Text.literal("- " + s), false);
|
||||
});
|
||||
MutableText text = text("Loaded configs for:");
|
||||
ConfigHolder.getInstance().getRegistered().forEach((s, config) -> text.append("\n- " + s));
|
||||
context.getSource().sendFeedback(() -> text, false);
|
||||
return Command.SINGLE_SUCCESS;
|
||||
});
|
||||
LiteralArgumentBuilder<ServerCommandSource> c_reload = literal("reload").executes(context -> {
|
||||
ConfigHolder.getInstance().getRegistered().forEach((mod, config) -> config.load());
|
||||
context.getSource().sendFeedback(() -> Text.literal("[libjf-config-v1] Reloaded configs"), true);
|
||||
context.getSource().sendFeedback(() -> text("Reloaded configs"), true);
|
||||
return Command.SINGLE_SUCCESS;
|
||||
});
|
||||
LiteralArgumentBuilder<ServerCommandSource> c_reset = literal("reset").executes(context -> {
|
||||
context.getSource().sendError(Text.literal("[libjf-config-v1] Please specify a config to reset"));
|
||||
context.getSource().sendError(text("Please specify a config to reset"));
|
||||
return Command.SINGLE_SUCCESS;
|
||||
});
|
||||
ConfigHolder.getInstance().getRegistered().forEach((id, config) -> {
|
||||
c_reload.then(literal(id).executes(context -> {
|
||||
config.load();
|
||||
context.getSource().sendFeedback(() -> Text.literal("[libjf-config-v1] Reloaded config for " + id), true);
|
||||
context.getSource().sendFeedback(() -> text("Reloaded config for " + id), true);
|
||||
return Command.SINGLE_SUCCESS;
|
||||
}));
|
||||
registerEntries(config, id, c_config, c_reset, cns -> {
|
||||
|
@ -63,7 +69,7 @@ public class JfConfigCommand implements ModInitializer {
|
|||
private void registerEntries(ConfigCategory config, String subpath, LiteralArgumentBuilder<ServerCommandSource> c_config, LiteralArgumentBuilder<ServerCommandSource> c_reset, Function<Consumer<LiteralArgumentBuilder<ServerCommandSource>>, LiteralArgumentBuilder<ServerCommandSource>> pathGen) {
|
||||
c_config.then(pathGen.apply(cns -> {
|
||||
cns.executes(context -> {
|
||||
context.getSource().sendFeedback(() -> Text.literal("[libjf-config-v1] " + subpath + " is a category"), false);
|
||||
context.getSource().sendFeedback(() -> text(subpath + " is a category"), false);
|
||||
return Command.SINGLE_SUCCESS;
|
||||
});
|
||||
for (EntryInfo<?> entry : config.getEntries()) {
|
||||
|
@ -73,13 +79,13 @@ public class JfConfigCommand implements ModInitializer {
|
|||
c_reset.then(pathGen.apply(cns -> {
|
||||
cns.executes(context -> {
|
||||
config.reset();
|
||||
context.getSource().sendFeedback(() -> Text.literal("[libjf-config-v1] Reset config for " + subpath), true);
|
||||
context.getSource().sendFeedback(() -> text("Reset config for " + subpath), true);
|
||||
return Command.SINGLE_SUCCESS;
|
||||
});
|
||||
config.getPresets().forEach((id2, preset) -> {
|
||||
cns.then(literal(id2).executes(context -> {
|
||||
preset.run();
|
||||
context.getSource().sendFeedback(() -> Text.literal("[libjf-config-v1] Loaded preset " + id2 + " for " + subpath), true);
|
||||
context.getSource().sendFeedback(() -> text("Loaded preset " + id2 + " for " + subpath), true);
|
||||
return Command.SINGLE_SUCCESS;
|
||||
}));
|
||||
});
|
||||
|
@ -103,8 +109,8 @@ public class JfConfigCommand implements ModInitializer {
|
|||
|
||||
private <T> void registerEntry(ConfigCategory config, String subpath, LiteralArgumentBuilder<ServerCommandSource> cns, EntryInfo<T> entry) {
|
||||
LiteralArgumentBuilder<ServerCommandSource> c_entry = literal(entry.getName()).executes(context -> {
|
||||
String msg = "[libjf-config-v1] The value of " + subpath + "." + entry.getName() + " is " + tryRun(entry::getValue);
|
||||
context.getSource().sendFeedback(() -> Text.literal(msg), false);
|
||||
String msg = "The value of " + subpath + "." + entry.getName() + " is " + tryRun(entry::getValue);
|
||||
context.getSource().sendFeedback(() -> text(msg), false);
|
||||
return Command.SINGLE_SUCCESS;
|
||||
});
|
||||
ArgumentType<?> type = getType(entry);
|
||||
|
@ -115,7 +121,7 @@ public class JfConfigCommand implements ModInitializer {
|
|||
entry.setValue(value);
|
||||
config.getRoot().write();
|
||||
});
|
||||
context.getSource().sendFeedback(() -> Text.literal("[libjf-config-v1] Set " + subpath + "." + entry.getName() + " to " + value), true);
|
||||
context.getSource().sendFeedback(() -> text("Set " + subpath + "." + entry.getName() + " to " + value), true);
|
||||
return Command.SINGLE_SUCCESS;
|
||||
}));
|
||||
}
|
||||
|
@ -126,7 +132,7 @@ public class JfConfigCommand implements ModInitializer {
|
|||
entry.setValue(enumConstant);
|
||||
config.getRoot().write();
|
||||
});
|
||||
context.getSource().sendFeedback(() -> Text.literal("[libjf-config-v1] Set " + subpath + "." + entry.getName() + " to " + enumConstant), true);
|
||||
context.getSource().sendFeedback(() -> text("Set " + subpath + "." + entry.getName() + " to " + enumConstant), true);
|
||||
return Command.SINGLE_SUCCESS;
|
||||
}));
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "libjf-config-commands-v1",
|
||||
"id": "libjf-config-commands",
|
||||
"name": "LibJF Config Commands",
|
||||
"version": "${version}",
|
||||
"authors": ["JFronny"],
|
||||
|
@ -20,7 +20,7 @@
|
|||
"minecraft": "*",
|
||||
"fabric-command-api-v2": "*",
|
||||
"libjf-base": ">=${version}",
|
||||
"libjf-config-core-v1": ">=${version}"
|
||||
"libjf-config-core-v2": ">=${version}"
|
||||
},
|
||||
"custom": {
|
||||
"modmenu": {
|
|
@ -22,7 +22,7 @@ dependencies {
|
|||
val annotationsVersion: String by rootProject.extra
|
||||
val javapoetVersion: String by rootProject.extra
|
||||
implementation("io.gitlab.jfronny.gson:gson-compile-processor-core:$gsonCompileVersion")
|
||||
implementation(devProject(":libjf-config-core-v1"))
|
||||
implementation(devProject(":libjf-config-core-v2"))
|
||||
implementation("org.jetbrains:annotations:$annotationsVersion")
|
||||
implementation("io.gitlab.jfronny:commons:$commonsVersion")
|
||||
implementation("io.gitlab.jfronny:commons-gson:$commonsVersion")
|
||||
|
|
|
@ -4,9 +4,9 @@ import com.squareup.javapoet.*;
|
|||
import io.gitlab.jfronny.commons.StringFormatter;
|
||||
import io.gitlab.jfronny.gson.compile.processor.core.*;
|
||||
import io.gitlab.jfronny.gson.reflect.TypeToken;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.*;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.DSL;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.type.Type;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.*;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.DSL;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.type.Type;
|
||||
|
||||
import javax.annotation.processing.*;
|
||||
import javax.lang.model.SourceVersion;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package io.gitlab.jfronny.libjf.config.plugin.test;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.*;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
"libjf-config-core-v1.jfconfig.title": "LibJF Config",
|
||||
"libjf-config-core-v1.jfconfig.watchForChanges": "Watch for changes",
|
||||
"libjf-config-core-v1.jfconfig.watchForChanges.tooltip": "Automatically reload configs when they are changed",
|
||||
"libjf-config-v1.presets": "Presets",
|
||||
"libjf-config-v1.default": "Default",
|
||||
"libjf-config-v1.see-also": "See also: %s",
|
||||
"libjf-config-v1.reset": "Reset",
|
||||
"libjf-config-core-v1.no-screen": "No screen",
|
||||
"libjf-config-core-v1.no-screen.description": "No mod for rendering config UIs was discovered. Install LibJF to add one.",
|
||||
"libjf-config-core-v1.edit": "Edit"
|
||||
}
|
|
@ -5,7 +5,7 @@ plugins {
|
|||
}
|
||||
|
||||
base {
|
||||
archivesName.set("libjf-config-core-v1")
|
||||
archivesName.set("libjf-config-core-v2")
|
||||
}
|
||||
|
||||
dependencies {
|
|
@ -1,6 +1,6 @@
|
|||
package io.gitlab.jfronny.libjf.config.api.v2.ui;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.impl.ui.ConfigScreenFactoryDiscovery;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
|
|
@ -3,8 +3,8 @@ package io.gitlab.jfronny.libjf.config.impl.ui;
|
|||
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
||||
import com.terraformersmc.modmenu.api.ModMenuApi;
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigHolder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigHolder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.impl.ConfigCore;
|
||||
|
||||
import java.util.HashMap;
|
|
@ -7,10 +7,10 @@ import java.util.Objects;
|
|||
|
||||
public class PlaceholderScreen extends Screen {
|
||||
private final Screen parent;
|
||||
private final Text description = Text.translatable("libjf-config-core-v1.no-screen.description");
|
||||
private final Text description = Text.translatable("libjf-config-core-v2.no-screen.description");
|
||||
|
||||
protected PlaceholderScreen(Screen parent) {
|
||||
super(Text.translatable("libjf-config-core-v1.no-screen"));
|
||||
super(Text.translatable("libjf-config-core-v2.no-screen"));
|
||||
this.parent = parent;
|
||||
addDrawable((context, mouseX, mouseY, delta) -> {
|
||||
context.drawCenteredTextWithShadow(textRenderer, description, width / 2, (height - textRenderer.fontHeight) / 2, 0xFFFFFF);
|
|
@ -1,6 +1,6 @@
|
|||
package io.gitlab.jfronny.libjf.config.impl.ui;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ui.ConfigScreenFactory;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"libjf-config-core-v2.jfconfig.title": "LibJF Config",
|
||||
"libjf-config-core-v2.jfconfig.watchForChanges": "Watch for changes",
|
||||
"libjf-config-core-v2.jfconfig.watchForChanges.tooltip": "Automatically reload configs when they are changed",
|
||||
"libjf-config-core-v2.presets": "Presets",
|
||||
"libjf-config-core-v2.default": "Default",
|
||||
"libjf-config-core-v2.see-also": "See also: %s",
|
||||
"libjf-config-core-v2.reset": "Reset",
|
||||
"libjf-config-core-v2.no-screen": "No screen",
|
||||
"libjf-config-core-v2.no-screen.description": "No mod for rendering config UIs was discovered. Install LibJF to add one.",
|
||||
"libjf-config-core-v2.edit": "Edit"
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package io.gitlab.jfronny.libjf.config.api.v1;
|
||||
package io.gitlab.jfronny.libjf.config.api.v2;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package io.gitlab.jfronny.libjf.config.api.v1;
|
||||
package io.gitlab.jfronny.libjf.config.api.v2;
|
||||
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package io.gitlab.jfronny.libjf.config.api.v1;
|
||||
package io.gitlab.jfronny.libjf.config.api.v2;
|
||||
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.impl.ConfigHolderImpl;
|
|
@ -1,4 +1,4 @@
|
|||
package io.gitlab.jfronny.libjf.config.api.v1;
|
||||
package io.gitlab.jfronny.libjf.config.api.v2;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.util.Optional;
|
|
@ -1,4 +1,4 @@
|
|||
package io.gitlab.jfronny.libjf.config.api.v1;
|
||||
package io.gitlab.jfronny.libjf.config.api.v2;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
|
@ -1,9 +1,7 @@
|
|||
package io.gitlab.jfronny.libjf.config.api.v1;
|
||||
package io.gitlab.jfronny.libjf.config.api.v2;
|
||||
|
||||
import io.gitlab.jfronny.gson.JsonElement;
|
||||
import io.gitlab.jfronny.gson.JsonParseException;
|
||||
import io.gitlab.jfronny.gson.stream.*;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.type.Type;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.type.Type;
|
||||
import io.gitlab.jfronny.libjf.config.impl.dsl.DslEntryInfo;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package io.gitlab.jfronny.libjf.config.api.v1;
|
||||
package io.gitlab.jfronny.libjf.config.api.v2;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package io.gitlab.jfronny.libjf.config.api.v1;
|
||||
package io.gitlab.jfronny.libjf.config.api.v2;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.DSL;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.DSL;
|
||||
|
||||
/**
|
||||
* The interface for entrypoints performing custom config registrations
|
|
@ -1,4 +1,4 @@
|
|||
package io.gitlab.jfronny.libjf.config.api.v1;
|
||||
package io.gitlab.jfronny.libjf.config.api.v2;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package io.gitlab.jfronny.libjf.config.api.v1;
|
||||
package io.gitlab.jfronny.libjf.config.api.v2;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
|
@ -1,8 +1,9 @@
|
|||
package io.gitlab.jfronny.libjf.config.api.v1.dsl;
|
||||
package io.gitlab.jfronny.libjf.config.api.v2.dsl;
|
||||
|
||||
import io.gitlab.jfronny.commons.SamWithReceiver;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.*;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.type.Type;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.*;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.type.Type;
|
||||
import io.gitlab.jfronny.libjf.config.impl.ConfigCore;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -14,7 +15,7 @@ import java.util.function.Supplier;
|
|||
* @param <Builder> The class implementing this builder
|
||||
*/
|
||||
public interface CategoryBuilder<Builder extends CategoryBuilder<Builder>> {
|
||||
String CONFIG_PRESET_DEFAULT = "libjf-config-v1.default";
|
||||
String CONFIG_PRESET_DEFAULT = ConfigCore.MOD_ID + ".default";
|
||||
|
||||
Builder setTranslationPrefix(String translationPrefix);
|
||||
String getTranslationPrefix();
|
|
@ -1,7 +1,7 @@
|
|||
package io.gitlab.jfronny.libjf.config.api.v1.dsl;
|
||||
package io.gitlab.jfronny.libjf.config.api.v2.dsl;
|
||||
|
||||
import io.gitlab.jfronny.commons.SamWithReceiver;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigInstance;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.util.function.Consumer;
|
|
@ -1,7 +1,7 @@
|
|||
package io.gitlab.jfronny.libjf.config.api.v1.dsl;
|
||||
package io.gitlab.jfronny.libjf.config.api.v2.dsl;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigHolder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigHolder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.impl.dsl.DSLImpl;
|
||||
|
||||
/**
|
|
@ -1,4 +1,4 @@
|
|||
package io.gitlab.jfronny.libjf.config.api.v1.dsl;
|
||||
package io.gitlab.jfronny.libjf.config.api.v2.dsl;
|
||||
|
||||
import io.gitlab.jfronny.gson.stream.JsonReader;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package io.gitlab.jfronny.libjf.config.api.v1.type;
|
||||
package io.gitlab.jfronny.libjf.config.api.v2.type;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
package io.gitlab.jfronny.libjf.config.impl;
|
||||
|
||||
import io.gitlab.jfronny.commons.serialize.gson.api.v1.GsonHolders;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.Category;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.JfConfig;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.Category;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.JfConfig;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.libjf.gson.FabricLoaderGsonGenerator;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
import net.fabricmc.loader.api.metadata.CustomValue;
|
|
@ -1,10 +1,10 @@
|
|||
package io.gitlab.jfronny.libjf.config.impl;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.DSL;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.DSL;
|
||||
|
||||
public class ConfigCore {
|
||||
public static final String MOD_ID = "libjf-config-core-v1";
|
||||
public static final String MOD_ID = "libjf-config-core-v2";
|
||||
public static final String MODULE_ID = "libjf:config";
|
||||
public static boolean watchForChanges = true;
|
||||
public static final ConfigInstance CONFIG_INSTANCE;
|
|
@ -2,8 +2,8 @@ package io.gitlab.jfronny.libjf.config.impl;
|
|||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigHolder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigHolder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigInstance;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
|
@ -3,10 +3,10 @@ package io.gitlab.jfronny.libjf.config.impl.dsl;
|
|||
import io.gitlab.jfronny.commons.throwable.Coerce;
|
||||
import io.gitlab.jfronny.gson.stream.JsonReader;
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.*;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.Migration;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.type.Type;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.*;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.Migration;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.type.Type;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.Consumer;
|
|
@ -1,7 +1,7 @@
|
|||
package io.gitlab.jfronny.libjf.config.impl.dsl;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.ConfigBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.ConfigBuilder;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
|
||||
import java.nio.file.Path;
|
|
@ -1,9 +1,9 @@
|
|||
package io.gitlab.jfronny.libjf.config.impl.dsl;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigHolder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.ConfigBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.DSL;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigHolder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.ConfigBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.DSL;
|
||||
|
||||
public class DSLImpl implements DSL {
|
||||
@Override
|
|
@ -4,7 +4,7 @@ import io.gitlab.jfronny.commons.serialize.gson.api.v1.GsonHolders;
|
|||
import io.gitlab.jfronny.gson.*;
|
||||
import io.gitlab.jfronny.gson.stream.*;
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.*;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.*;
|
||||
import io.gitlab.jfronny.libjf.config.impl.entrypoint.JfConfigSafe;
|
||||
import io.gitlab.jfronny.libjf.config.impl.watch.JfConfigWatchService;
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
package io.gitlab.jfronny.libjf.config.impl.dsl;
|
||||
|
||||
import io.gitlab.jfronny.gson.stream.JsonReader;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.*;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.*;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.CategoryBuilder;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
import java.util.*;
|
|
@ -1,8 +1,8 @@
|
|||
package io.gitlab.jfronny.libjf.config.impl.dsl;
|
||||
|
||||
import io.gitlab.jfronny.gson.stream.JsonReader;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.*;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.*;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.CategoryBuilder;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.nio.file.Path;
|
|
@ -5,9 +5,9 @@ import io.gitlab.jfronny.commons.throwable.ThrowingConsumer;
|
|||
import io.gitlab.jfronny.commons.throwable.ThrowingSupplier;
|
||||
import io.gitlab.jfronny.gson.stream.*;
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.Entry;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.EntryInfo;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.type.Type;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.Entry;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.EntryInfo;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.type.Type;
|
||||
import io.gitlab.jfronny.libjf.config.impl.entrypoint.JfConfigSafe;
|
||||
|
||||
import java.io.IOException;
|
|
@ -1,8 +1,8 @@
|
|||
package io.gitlab.jfronny.libjf.config.impl.entrypoint;
|
||||
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.JfCustomConfig;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.DSL;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.JfCustomConfig;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.DSL;
|
||||
import io.gitlab.jfronny.libjf.config.impl.ConfigCore;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
import net.fabricmc.loader.api.entrypoint.EntrypointContainer;
|
|
@ -2,7 +2,7 @@ package io.gitlab.jfronny.libjf.config.impl.watch;
|
|||
|
||||
import io.gitlab.jfronny.commons.throwable.ThrowingRunnable;
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigHolder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigHolder;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
|
||||
import java.io.IOException;
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "libjf-config-core-v1",
|
||||
"id": "libjf-config-core-v2",
|
||||
"name": "LibJF Config",
|
||||
"version": "${version}",
|
||||
"authors": ["JFronny"],
|
|
@ -1,15 +0,0 @@
|
|||
import io.gitlab.jfronny.scripts.*
|
||||
|
||||
plugins {
|
||||
id("jfmod.module")
|
||||
}
|
||||
|
||||
base {
|
||||
archivesName.set("libjf-config-reflect-v1")
|
||||
}
|
||||
|
||||
dependencies {
|
||||
api(devProject(":libjf-base"))
|
||||
api(devProject(":libjf-unsafe-v0"))
|
||||
api(devProject(":libjf-config-core-v1"))
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
package io.gitlab.jfronny.libjf.config.api.v1.reflect;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.ConfigBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.impl.reflect.ReflectiveConfigBuilderImpl;
|
||||
|
||||
public interface ReflectiveConfigBuilder extends ConfigBuilder.ConfigBuilderFunction {
|
||||
static ReflectiveConfigBuilder of(String id, Class<?> klazz) {
|
||||
return new ReflectiveConfigBuilderImpl(id, klazz);
|
||||
}
|
||||
}
|
|
@ -1,84 +0,0 @@
|
|||
package io.gitlab.jfronny.libjf.config.impl.reflect;
|
||||
|
||||
import io.gitlab.jfronny.commons.reflect.Reflect;
|
||||
import io.gitlab.jfronny.commons.throwable.ThrowingConsumer;
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.*;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.ConfigBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.reflect.ReflectiveConfigBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.impl.AuxiliaryMetadata;
|
||||
import io.gitlab.jfronny.libjf.config.impl.dsl.DslEntryInfo;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Function;
|
||||
|
||||
public class ReflectiveConfigBuilderImpl implements ReflectiveConfigBuilder {
|
||||
private final AuxiliaryMetadata rootMeta;
|
||||
private final Class<?> rootClass;
|
||||
private final Class<?> rootTweaker;
|
||||
private final String id;
|
||||
|
||||
public ReflectiveConfigBuilderImpl(String id, Class<?> klazz) {
|
||||
this.id = id;
|
||||
this.rootClass = Objects.requireNonNull(klazz);
|
||||
JfConfig annotation = klazz.getAnnotation(JfConfig.class);
|
||||
rootTweaker = annotation.tweaker();
|
||||
this.rootMeta = AuxiliaryMetadata.of(annotation).merge(AuxiliaryMetadata.forMod(id));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConfigBuilder<?> apply(ConfigBuilder<?> builder) {
|
||||
return applyCategory(builder, rootClass, findTweaker(rootTweaker, ConfigBuilder.class), rootMeta);
|
||||
}
|
||||
|
||||
private <T extends CategoryBuilder<?>> T applyCategory(T builder, Class<?> configClass, Function<T, T> tweaker, AuxiliaryMetadata meta) {
|
||||
meta.applyTo(builder);
|
||||
for (Field field : configClass.getFields()) {
|
||||
if (field.isAnnotationPresent(Entry.class)) {
|
||||
builder.value(DslEntryInfo.ofField(field));
|
||||
}
|
||||
}
|
||||
for (Method method : configClass.getMethods()) {
|
||||
try {
|
||||
if (method.isAnnotationPresent(Preset.class)) {
|
||||
builder.addPreset(builder.getTranslationPrefix() + method.getName(), ReflectiveConfigBuilderImpl.<ConfigCategory>staticToConsumer(configClass, method).addHandler(e -> LibJf.LOGGER.error("Could not apply preset", e)));
|
||||
} else if (method.isAnnotationPresent(Verifier.class)) {
|
||||
builder.addVerifier(ReflectiveConfigBuilderImpl.<ConfigCategory>staticToConsumer(configClass, method).addHandler(e -> LibJf.LOGGER.error("Could not run verifier", e)));
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
LibJf.LOGGER.error("Could not process method " + method.getName() + " of config class " + configClass.getName());
|
||||
}
|
||||
}
|
||||
|
||||
for (Class<?> categoryClass : configClass.getClasses()) {
|
||||
if (categoryClass.isAnnotationPresent(Category.class)) {
|
||||
Category annotation = categoryClass.getAnnotation(Category.class);
|
||||
String name = categoryClass.getSimpleName();
|
||||
name = Character.toLowerCase(name.charAt(0)) + name.substring(1); // camelCase
|
||||
var categoryTweaker = findTweaker(annotation.tweaker(), CategoryBuilder.class);
|
||||
builder.category(name, builder1 -> applyCategory(builder1, categoryClass, categoryTweaker, AuxiliaryMetadata.of(categoryClass.getAnnotation(Category.class))));
|
||||
}
|
||||
}
|
||||
|
||||
return tweaker.apply(builder);
|
||||
}
|
||||
|
||||
private <T> Function<T, T> findTweaker(Class<?> targetClass, Class<T> tweakedClass) {
|
||||
try {
|
||||
return Objects.equals(targetClass, void.class)
|
||||
? Function.identity()
|
||||
: Reflect.staticFunction(targetClass, "tweak", tweakedClass, tweakedClass);
|
||||
} catch (Throwable t) {
|
||||
LibJf.LOGGER.error("Could not find tweaker " + targetClass + " for mod " + id, t);
|
||||
return Function.identity();
|
||||
}
|
||||
}
|
||||
|
||||
public static <T> ThrowingConsumer<T, Throwable> staticToConsumer(Class<?> klazz, Method method) throws Throwable {
|
||||
Runnable rn = Reflect.staticProcedure(klazz, method.getName());
|
||||
return c -> rn.run();
|
||||
}
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
package io.gitlab.jfronny.libjf.config.impl.reflect.entrypoint;
|
||||
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.*;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.DSL;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.reflect.ReflectiveConfigBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.impl.ConfigCore;
|
||||
import io.gitlab.jfronny.libjf.config.impl.entrypoint.JfConfigSafe;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
import net.fabricmc.loader.api.entrypoint.EntrypointContainer;
|
||||
import net.fabricmc.loader.api.entrypoint.PreLaunchEntrypoint;
|
||||
|
||||
public class JfConfigReflectSafe implements PreLaunchEntrypoint {
|
||||
@Override
|
||||
public void onPreLaunch() {
|
||||
LibJf.setup();
|
||||
for (EntrypointContainer<Object> config : FabricLoader.getInstance().getEntrypointContainers(ConfigCore.MODULE_ID, Object.class)) {
|
||||
registerIfMissing(config.getProvider().getMetadata().getId(), config.getEntrypoint());
|
||||
}
|
||||
}
|
||||
|
||||
public static void registerIfMissing(String modId, Object config) {
|
||||
if (JfConfigSafe.REGISTERED_MODS.add(modId)) {
|
||||
ConfigHolder.getInstance().migrateFiles(modId);
|
||||
if (config instanceof JfCustomConfig cfg) {
|
||||
cfg.register(DSL.create(modId));
|
||||
} else {
|
||||
Class<?> klazz = config.getClass();
|
||||
if (klazz.isAnnotationPresent(JfConfig.class)) {
|
||||
DSL.create(modId).register(ReflectiveConfigBuilder.of(modId, klazz));
|
||||
} else {
|
||||
LibJf.LOGGER.error("Attempted to register improper config for mod " + modId + " (missing @JfConfig annotation or JfCustomConfig interface)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
package io.gitlab.jfronny.libjf.config.impl.reflect.entrypoint;
|
||||
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.impl.ConfigCore;
|
||||
import io.gitlab.jfronny.libjf.unsafe.DynamicEntry;
|
||||
import io.gitlab.jfronny.libjf.unsafe.UltraEarlyInit;
|
||||
|
||||
public class JfConfigUnsafe implements UltraEarlyInit {
|
||||
@Override
|
||||
public void init() {
|
||||
DynamicEntry.execute(ConfigCore.MODULE_ID, Object.class,
|
||||
s -> JfConfigReflectSafe.registerIfMissing(s.modId(), s.instance())
|
||||
);
|
||||
LibJf.LOGGER.info("Finished LibJF config entrypoint");
|
||||
}
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "libjf-config-reflect-v1",
|
||||
"name": "LibJF Config Reflect",
|
||||
"version": "${version}",
|
||||
"authors": ["JFronny"],
|
||||
"contact": {
|
||||
"email": "projects.contact@frohnmeyer-wds.de",
|
||||
"homepage": "https://jfronny.gitlab.io",
|
||||
"issues": "https://git.frohnmeyer-wds.de/JfMods/LibJF/issues",
|
||||
"sources": "https://git.frohnmeyer-wds.de/JfMods/LibJF"
|
||||
},
|
||||
"license": "MIT",
|
||||
"environment": "*",
|
||||
"entrypoints": {
|
||||
"libjf:preEarly": [
|
||||
"io.gitlab.jfronny.libjf.config.impl.reflect.entrypoint.JfConfigUnsafe"
|
||||
],
|
||||
"preLaunch": [
|
||||
"io.gitlab.jfronny.libjf.config.impl.reflect.entrypoint.JfConfigReflectSafe"
|
||||
]
|
||||
},
|
||||
"depends": {
|
||||
"fabricloader": ">=0.12.0",
|
||||
"minecraft": "*",
|
||||
"libjf-base": ">=${version}",
|
||||
"libjf-unsafe-v0": ">=${version}",
|
||||
"libjf-config-core-v1": ">=${version}"
|
||||
},
|
||||
"custom": {
|
||||
"modmenu": {
|
||||
"badges": ["library"],
|
||||
"parent": "libjf"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
package io.gitlab.jfronny.libjf.config.test.reflect;
|
||||
|
||||
import io.gitlab.jfronny.commons.serialize.gson.api.v1.Ignore;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@JfConfig(referencedConfigs = {"libjf-web-v0"}, tweaker = TestConfigTweaker.class)
|
||||
public class TestConfig {
|
||||
@Entry public static boolean disablePacks = false;
|
||||
@Entry public static Boolean disablePacks2 = false;
|
||||
@Entry public static int intTest = 20;
|
||||
@Entry(min = -5, max = 12) public static int intTestB = 20;
|
||||
@Entry(min = -6) public static float floatTest = -5;
|
||||
@Entry(min = 2, max = 21) public static double doubleTest = 20;
|
||||
@Entry public static String dieStr = "lolz";
|
||||
@Entry @Ignore public static String guiOnlyStr = "lolz";
|
||||
public static String gsonOnlyStr = "lolz";
|
||||
@Entry public static Test enumTest = Test.Test;
|
||||
@Entry public static List<String> stringList;
|
||||
|
||||
@Preset
|
||||
public static void moskau() {
|
||||
disablePacks = true;
|
||||
disablePacks2 = true;
|
||||
intTest = -5;
|
||||
floatTest = -6;
|
||||
doubleTest = 4;
|
||||
dieStr = "Moskau";
|
||||
}
|
||||
|
||||
@Verifier
|
||||
public static void setIntTestIfDisable() {
|
||||
if (disablePacks) intTest = 0;
|
||||
}
|
||||
|
||||
@Verifier
|
||||
public static void stringListVerifier() {
|
||||
if (stringList == null) stringList = new ArrayList<>(List.of("Obama"));
|
||||
}
|
||||
|
||||
public enum Test {
|
||||
Test, ER
|
||||
}
|
||||
|
||||
@Category
|
||||
public static class Subcategory {
|
||||
@Entry public static boolean boolInSub = false;
|
||||
@Entry public static int intIbSub = 15;
|
||||
|
||||
@Category
|
||||
public static class Inception {
|
||||
@Entry public static Test yesEnum = Test.ER;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
package io.gitlab.jfronny.libjf.config.test.reflect;
|
||||
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.ConfigBuilder;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class TestConfigTweaker {
|
||||
public static ConfigBuilder<?> tweak(ConfigBuilder<?> builder) {
|
||||
if (!Objects.equals("libjf-config-reflect-v1-testmod", builder.getId())) throw new IllegalStateException("No!");
|
||||
LibJf.LOGGER.info("Called config tweaker");
|
||||
return builder.addMigration("joe", reader -> {
|
||||
TestConfig.disablePacks = reader.nextBoolean();
|
||||
});
|
||||
}
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
"libjf-config-reflect-v1-testmod.jfconfig.title": "JfConfig example",
|
||||
"libjf-config-reflect-v1-testmod.jfconfig.disablePacks": "Disable resource packs",
|
||||
"libjf-config-reflect-v1-testmod.jfconfig.intTest": "Int Test",
|
||||
"libjf-config-reflect-v1-testmod.jfconfig.decimalTest": "Decimal Test",
|
||||
"libjf-config-reflect-v1-testmod.jfconfig.dieStr": "String Test",
|
||||
"libjf-config-reflect-v1-testmod.jfconfig.gsonOnlyStr.tooltip": "George",
|
||||
"libjf-config-reflect-v1-testmod.jfconfig.enumTest": "Enum Test",
|
||||
"libjf-config-reflect-v1-testmod.jfconfig.enumTest.tooltip": "Enum Test Tooltip",
|
||||
"libjf-config-reflect-v1-testmod.jfconfig.enum.Test.Test": "Test",
|
||||
"libjf-config-reflect-v1-testmod.jfconfig.enum.Test.ER": "ER",
|
||||
"libjf-config-reflect-v1-testmod.jfconfig.moskau": "Moskau",
|
||||
"libjf-config-reflect-v1-testmod.jfconfig.stringList": "String list",
|
||||
"libjf-config-reflect-v1-testmod.jfconfig.stringList.tooltip": "Tooltip of the String list"
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "libjf-config-reflect-v1-testmod",
|
||||
"name": "LibJF Config Reflect",
|
||||
"version": "1.0",
|
||||
"environment": "*",
|
||||
"entrypoints": {
|
||||
"libjf:config": [
|
||||
"io.gitlab.jfronny.libjf.config.test.reflect.TestConfig"
|
||||
]
|
||||
},
|
||||
"custom": {
|
||||
"modmenu": {
|
||||
"parent": "libjf-testmod"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"libjf-config-ui-tiny-v1.entry.json.read.fail.title": "Could not read",
|
||||
"libjf-config-ui-tiny-v1.entry.json.read.fail.description": "The given entry could not be stringified. Please edit the config manually"
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
"libjf-config-ui-tiny-v1-testmod.jfconfig.title": "JfConfig example",
|
||||
"libjf-config-ui-tiny-v1-testmod.jfconfig.ca1.title": "Category 1",
|
||||
"libjf-config-ui-tiny-v1-testmod.jfconfig.ca1.tooltip": "This is category 1\nIt has an excessively long description to test multiline descriptions and wrapping, which are required for this to look good.\nThis is supported btw.",
|
||||
"libjf-config-ui-tiny-v1-testmod.jfconfig.ca1.value1": "Value 1",
|
||||
"libjf-config-ui-tiny-v1-testmod.jfconfig.ca2.title": "Category 2",
|
||||
"libjf-config-ui-tiny-v1-testmod.jfconfig.ca2.tooltip": "This is category 2",
|
||||
"libjf-config-ui-tiny-v1-testmod.jfconfig.ca2.value2": "Value 2",
|
||||
"libjf-config-ui-tiny-v1-testmod.jfconfig.ca3.title": "Category 3",
|
||||
"libjf-config-ui-tiny-v1-testmod.jfconfig.ca3.tooltip": "This is category 3",
|
||||
"libjf-config-ui-tiny-v1-testmod.jfconfig.ca3.value3": "Value 3",
|
||||
"libjf-config-ui-tiny-v1-testmod.jfconfig.ca4.title": "Category 4",
|
||||
"libjf-config-ui-tiny-v1-testmod.jfconfig.ca4.tooltip": "This is category 4",
|
||||
"libjf-config-ui-tiny-v1-testmod.jfconfig.ca4.value4": "Value 4",
|
||||
"libjf-config-ui-tiny-v1-testmod.jfconfig.ca5.title": "Category 5",
|
||||
"libjf-config-ui-tiny-v1-testmod.jfconfig.ca5.tooltip": "This is category 5",
|
||||
"libjf-config-ui-tiny-v1-testmod.jfconfig.ca5.value5": "Value 5",
|
||||
"libjf-config-ui-tiny-v1-testmod.jfconfig.ca6.title": "Category 6",
|
||||
"libjf-config-ui-tiny-v1-testmod.jfconfig.ca6.tooltip": "This is category 6",
|
||||
"libjf-config-ui-tiny-v1-testmod.jfconfig.ca6.value6": "Value 6"
|
||||
}
|
|
@ -5,12 +5,12 @@ plugins {
|
|||
}
|
||||
|
||||
base {
|
||||
archivesName.set("libjf-config-ui-tiny-v1")
|
||||
archivesName.set("libjf-config-ui-tiny")
|
||||
}
|
||||
|
||||
dependencies {
|
||||
val fabricVersion: String by rootProject.extra
|
||||
api(devProject(":libjf-base"))
|
||||
api(devProject(":libjf-config-core-v1"))
|
||||
api(devProject(":libjf-config-core-v2"))
|
||||
include(fabricApi.module("fabric-resource-loader-v0", fabricVersion))
|
||||
}
|
|
@ -2,8 +2,9 @@ package io.gitlab.jfronny.libjf.config.impl.ui.tiny;
|
|||
|
||||
import io.gitlab.jfronny.commons.throwable.Try;
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigCategory;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigCategory;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.impl.ConfigCore;
|
||||
import io.gitlab.jfronny.libjf.config.impl.entrypoint.JfConfigSafe;
|
||||
import io.gitlab.jfronny.libjf.config.impl.ui.tiny.entry.EntryListWidget;
|
||||
import io.gitlab.jfronny.libjf.config.impl.ui.tiny.entry.WidgetState;
|
||||
|
@ -98,7 +99,7 @@ public class TinyConfigScreen extends ScreenWithSaveHook {
|
|||
this.addDrawableChild(done);
|
||||
|
||||
if (tabs.size() == 1 && !config.getPresets().isEmpty()) {
|
||||
this.addDrawableChild(ButtonWidget.builder(Text.translatable("libjf-config-v1.presets"),
|
||||
this.addDrawableChild(ButtonWidget.builder(Text.translatable(ConfigCore.MOD_ID + ".presets"),
|
||||
button -> Objects.requireNonNull(client).setScreen(new PresetsScreen(this, config, this::afterSelectPreset)))
|
||||
.dimensions(4, 6, 80, 20)
|
||||
.build());
|
|
@ -2,10 +2,10 @@ package io.gitlab.jfronny.libjf.config.impl.ui.tiny;
|
|||
|
||||
import io.gitlab.jfronny.commons.serialize.gson.api.v1.GsonHolders;
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.EntryInfo;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.type.Type;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.EntryInfo;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.type.Type;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ui.ConfigScreenFactory;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
|
@ -45,8 +45,8 @@ public class TinyConfigScreenFactory implements ConfigScreenFactory<Screen, Tiny
|
|||
SystemToast.add(
|
||||
MinecraftClient.getInstance().getToastManager(),
|
||||
SystemToast.Type.PACK_LOAD_FAILURE,
|
||||
Text.translatable("libjf-config-ui-tiny-v1.entry.json.write.fail.title"),
|
||||
Text.translatable("libjf-config-ui-tiny-v1.entry.json.write.fail.description")
|
||||
Text.translatable("libjf-config-ui-tiny.entry.json.write.fail.title"),
|
||||
Text.translatable("libjf-config-ui-tiny.entry.json.write.fail.description")
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,7 +1,8 @@
|
|||
package io.gitlab.jfronny.libjf.config.impl.ui.tiny;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigCategory;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigCategory;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.impl.ConfigCore;
|
||||
import io.gitlab.jfronny.libjf.config.impl.ui.tiny.entry.WidgetFactory;
|
||||
import io.gitlab.jfronny.libjf.config.impl.entrypoint.JfConfigSafe;
|
||||
import io.gitlab.jfronny.libjf.config.impl.ui.tiny.entry.*;
|
||||
|
@ -46,14 +47,14 @@ public class TinyConfigTab implements Tab {
|
|||
}
|
||||
} else {
|
||||
if (!config.getPresets().isEmpty()) {
|
||||
this.list.addReference(Text.translatable("libjf-config-v1.presets"),
|
||||
this.list.addReference(Text.translatable(ConfigCore.MOD_ID + ".presets"),
|
||||
() -> new PresetsScreen(screen, config, screen::afterSelectPreset));
|
||||
}
|
||||
}
|
||||
for (WidgetState<?> info : widgets) {
|
||||
MutableText name = Text.translatable(config.getTranslationPrefix() + info.entry.getName());
|
||||
WidgetFactory.Widget control = info.factory == null ? null : info.factory.build(screen, textRenderer);
|
||||
ButtonWidget resetButton = ButtonWidget.builder(Text.translatable("libjf-config-v1.reset"), (button -> info.reset()))
|
||||
ButtonWidget resetButton = ButtonWidget.builder(Text.translatable(ConfigCore.MOD_ID + ".reset"), (button -> info.reset()))
|
||||
.dimensions(screen.width - 155, 0, 40, 20)
|
||||
.build();
|
||||
BooleanSupplier resetVisible = () -> {
|
||||
|
@ -70,7 +71,7 @@ public class TinyConfigTab implements Tab {
|
|||
}
|
||||
for (ConfigInstance ci : config.getReferencedConfigs()) {
|
||||
if (ci != null) {
|
||||
this.list.addReference(Text.translatable("libjf-config-v1.see-also", TinyConfigScreen.getTitle(ci.getTranslationPrefix())),
|
||||
this.list.addReference(Text.translatable(ConfigCore.MOD_ID + ".see-also", TinyConfigScreen.getTitle(ci.getTranslationPrefix())),
|
||||
() -> new TinyConfigScreen(ci, screen));
|
||||
}
|
||||
}
|
|
@ -4,9 +4,9 @@ import io.gitlab.jfronny.commons.ref.R;
|
|||
import io.gitlab.jfronny.commons.serialize.gson.api.v1.GsonHolders;
|
||||
import io.gitlab.jfronny.commons.throwable.Try;
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigCategory;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.EntryInfo;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.type.Type;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigCategory;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.EntryInfo;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.type.Type;
|
||||
import io.gitlab.jfronny.libjf.config.impl.ui.tiny.EditorScreen;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
|
@ -156,7 +156,7 @@ public class EntryInfoWidgetBuilder {
|
|||
state.managedTemp = false;
|
||||
state.tempValue = null;
|
||||
return (screen, textRenderer) -> {
|
||||
final ButtonWidget button = ButtonWidget.builder(Text.translatable("libjf-config-core-v1.edit"), $ -> {
|
||||
final ButtonWidget button = ButtonWidget.builder(Text.translatable("libjf-config-core-v2.edit"), $ -> {
|
||||
final String jsonified;
|
||||
if (state.tempValue == null) {
|
||||
try {
|
||||
|
@ -166,8 +166,8 @@ public class EntryInfoWidgetBuilder {
|
|||
SystemToast.add(
|
||||
screen.getClient().getToastManager(),
|
||||
SystemToast.Type.PACK_LOAD_FAILURE,
|
||||
Text.translatable("libjf-config-ui-tiny-v1.entry.json.read.fail.title"),
|
||||
Text.translatable("libjf-config-ui-tiny-v1.entry.json.read.fail.description")
|
||||
Text.translatable("libjf-config-ui-tiny.entry.json.read.fail.title"),
|
||||
Text.translatable("libjf-config-ui-tiny.entry.json.read.fail.description")
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
@ -189,8 +189,8 @@ public class EntryInfoWidgetBuilder {
|
|||
SystemToast.add(
|
||||
screen.getClient().getToastManager(),
|
||||
SystemToast.Type.PACK_LOAD_FAILURE,
|
||||
Text.translatable("libjf-config-ui-tiny-v1.entry.json.write.fail.title"),
|
||||
Text.translatable("libjf-config-ui-tiny-v1.entry.json.write.fail.description")
|
||||
Text.translatable("libjf-config-ui-tiny.entry.json.write.fail.title"),
|
||||
Text.translatable("libjf-config-ui-tiny.entry.json.write.fail.description")
|
||||
);
|
||||
state.tempValue = json;
|
||||
}
|
|
@ -2,7 +2,7 @@ package io.gitlab.jfronny.libjf.config.impl.ui.tiny.entry;
|
|||
|
||||
import io.gitlab.jfronny.commons.ref.R;
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.EntryInfo;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.EntryInfo;
|
||||
import net.minecraft.text.Text;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
package io.gitlab.jfronny.libjf.config.impl.ui.tiny.presets;
|
||||
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigCategory;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigCategory;
|
||||
import io.gitlab.jfronny.libjf.config.impl.ConfigCore;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.minecraft.client.gui.DrawContext;
|
||||
|
@ -19,7 +20,7 @@ public class PresetsScreen extends Screen {
|
|||
private final Runnable afterSelect;
|
||||
|
||||
public PresetsScreen(Screen parent, ConfigCategory config, Runnable afterSelect) {
|
||||
super(Text.translatable("libjf-config-v1.presets"));
|
||||
super(Text.translatable(ConfigCore.MOD_ID + ".presets"));
|
||||
this.parent = parent;
|
||||
this.config = config;
|
||||
this.afterSelect = afterSelect;
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"libjf-config-ui-tiny.entry.json.read.fail.title": "Could not read",
|
||||
"libjf-config-ui-tiny.entry.json.read.fail.description": "The given entry could not be stringified. Please edit the config manually"
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "libjf-config-ui-tiny-v1",
|
||||
"id": "libjf-config-ui-tiny",
|
||||
"name": "LibJF Config UI: Tiny",
|
||||
"version": "${version}",
|
||||
"authors": ["JFronny"],
|
||||
|
@ -20,7 +20,7 @@
|
|||
"minecraft": "*",
|
||||
"fabric-resource-loader-v0": "*",
|
||||
"libjf-base": ">=${version}",
|
||||
"libjf-config-core-v1": ">=${version}"
|
||||
"libjf-config-core-v2": ">=${version}"
|
||||
},
|
||||
"custom": {
|
||||
"modmenu": {
|
|
@ -1,7 +1,7 @@
|
|||
package io.gitlab.jfronny.libjf.config.test.tiny;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.JfCustomConfig;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.DSL;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.JfCustomConfig;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.DSL;
|
||||
|
||||
public class TestConfig implements JfCustomConfig {
|
||||
private int value1 = 0;
|
|
@ -1,6 +1,6 @@
|
|||
package io.gitlab.jfronny.libjf.config.test.tiny.mixin;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigHolder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigHolder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ui.ConfigScreenFactory;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.screen.option.OptionsScreen;
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"libjf-config-ui-tiny-testmod.jfconfig.title": "JfConfig example",
|
||||
"libjf-config-ui-tiny-testmod.jfconfig.ca1.title": "Category 1",
|
||||
"libjf-config-ui-tiny-testmod.jfconfig.ca1.tooltip": "This is category 1\nIt has an excessively long description to test multiline descriptions and wrapping, which are required for this to look good.\nThis is supported btw.",
|
||||
"libjf-config-ui-tiny-testmod.jfconfig.ca1.value1": "Value 1",
|
||||
"libjf-config-ui-tiny-testmod.jfconfig.ca2.title": "Category 2",
|
||||
"libjf-config-ui-tiny-testmod.jfconfig.ca2.tooltip": "This is category 2",
|
||||
"libjf-config-ui-tiny-testmod.jfconfig.ca2.value2": "Value 2",
|
||||
"libjf-config-ui-tiny-testmod.jfconfig.ca3.title": "Category 3",
|
||||
"libjf-config-ui-tiny-testmod.jfconfig.ca3.tooltip": "This is category 3",
|
||||
"libjf-config-ui-tiny-testmod.jfconfig.ca3.value3": "Value 3",
|
||||
"libjf-config-ui-tiny-testmod.jfconfig.ca4.title": "Category 4",
|
||||
"libjf-config-ui-tiny-testmod.jfconfig.ca4.tooltip": "This is category 4",
|
||||
"libjf-config-ui-tiny-testmod.jfconfig.ca4.value4": "Value 4",
|
||||
"libjf-config-ui-tiny-testmod.jfconfig.ca5.title": "Category 5",
|
||||
"libjf-config-ui-tiny-testmod.jfconfig.ca5.tooltip": "This is category 5",
|
||||
"libjf-config-ui-tiny-testmod.jfconfig.ca5.value5": "Value 5",
|
||||
"libjf-config-ui-tiny-testmod.jfconfig.ca6.title": "Category 6",
|
||||
"libjf-config-ui-tiny-testmod.jfconfig.ca6.tooltip": "This is category 6",
|
||||
"libjf-config-ui-tiny-testmod.jfconfig.ca6.value6": "Value 6"
|
||||
}
|
|
@ -1,10 +1,10 @@
|
|||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "libjf-config-ui-tiny-v1-testmod",
|
||||
"id": "libjf-config-ui-tiny-testmod",
|
||||
"name": "LibJF Config UI: Tiny",
|
||||
"version": "1.0",
|
||||
"environment": "*",
|
||||
"mixins": ["libjf-config-ui-tiny-v1-testmod.mixins.json"],
|
||||
"mixins": ["libjf-config-ui-tiny-testmod.mixins.json"],
|
||||
"entrypoints": {
|
||||
"libjf:config": [
|
||||
"io.gitlab.jfronny.libjf.config.test.tiny.TestConfig"
|
|
@ -10,5 +10,5 @@ base {
|
|||
|
||||
dependencies {
|
||||
api(devProject(":libjf-base"))
|
||||
api(devProject(":libjf-config-core-v1"))
|
||||
api(devProject(":libjf-config-core-v2"))
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package io.gitlab.jfronny.libjf.translate.impl;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.JfCustomConfig;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.DSL;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.JfCustomConfig;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.DSL;
|
||||
import io.gitlab.jfronny.libjf.translate.api.TranslateService;
|
||||
import io.gitlab.jfronny.libjf.translate.impl.google.GoogleTranslateService;
|
||||
import io.gitlab.jfronny.libjf.translate.impl.libretranslate.LibreTranslateService;
|
||||
|
|
|
@ -11,7 +11,7 @@ base {
|
|||
dependencies {
|
||||
val fabricVersion: String by rootProject.extra
|
||||
api(devProject(":libjf-base"))
|
||||
api(devProject(":libjf-config-core-v1"))
|
||||
api(devProject(":libjf-config-core-v2"))
|
||||
include(modImplementation(fabricApi.module("fabric-command-api-v2", fabricVersion))!!)
|
||||
|
||||
annotationProcessor(project(":libjf-config-compiler-plugin-v2"))
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package io.gitlab.jfronny.libjf.web.impl;
|
||||
|
||||
import io.gitlab.jfronny.libjf.LibJf;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.*;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.ServerSocket;
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
"fabricloader": ">=0.12.0",
|
||||
"minecraft": "*",
|
||||
"libjf-base": ">=${version}",
|
||||
"libjf-config-core-v1": ">=${version}",
|
||||
"libjf-config-core-v2": ">=${version}",
|
||||
"fabric-command-api-v2": "*"
|
||||
},
|
||||
"custom": {
|
||||
|
|
|
@ -14,10 +14,9 @@ rootProject.name = "libjf"
|
|||
|
||||
include("libjf-base")
|
||||
|
||||
include("libjf-config-core-v1")
|
||||
include("libjf-config-reflect-v1")
|
||||
include("libjf-config-commands-v1")
|
||||
include("libjf-config-ui-tiny-v1")
|
||||
include("libjf-config-core-v2")
|
||||
include("libjf-config-commands")
|
||||
include("libjf-config-ui-tiny")
|
||||
include("libjf-data-v0")
|
||||
include("libjf-data-manipulation-v0")
|
||||
include("libjf-devutil")
|
||||
|
|
Loading…
Reference in New Issue