chore: bump deps
This commit is contained in:
parent
c76df2ba8d
commit
99db11f7a4
|
@ -25,14 +25,14 @@ repositories {
|
|||
}
|
||||
}
|
||||
|
||||
val fabricVersion = "0.87.1+1.20.2"
|
||||
val muscriptVersion = "1.4-SNAPSHOT"
|
||||
val modmenuVersion = "7.2.1"
|
||||
val fabricVersion = "0.89.1+1.20.2"
|
||||
val muscriptVersion = "1.5-SNAPSHOT"
|
||||
val modmenuVersion = "8.0.0-beta.2"
|
||||
jfMod {
|
||||
minecraftVersion = "23w33a"
|
||||
yarn("build.7")
|
||||
minecraftVersion = "1.20.2"
|
||||
yarn("build.1")
|
||||
loaderVersion = "0.14.22"
|
||||
libJfVersion = "3.13.0-SNAPSHOT"
|
||||
libJfVersion = "3.13.0"
|
||||
|
||||
modrinth {
|
||||
projectId = "respackopts"
|
||||
|
@ -51,14 +51,14 @@ dependencies {
|
|||
include(modImplementation("io.gitlab.jfronny:muscript:$muscriptVersion")!!)
|
||||
include(modImplementation("io.gitlab.jfronny:muscript-gson:$muscriptVersion")!!)
|
||||
modImplementation("io.gitlab.jfronny.libjf:libjf-data-manipulation-v0:${jfMod.libJfVersion.get()}")
|
||||
modImplementation("io.gitlab.jfronny.libjf:libjf-config-core-v1:${jfMod.libJfVersion.get()}")
|
||||
modImplementation("io.gitlab.jfronny.libjf:libjf-config-ui-tiny-v1:${jfMod.libJfVersion.get()}")
|
||||
modImplementation("io.gitlab.jfronny.libjf:libjf-config-core-v2:${jfMod.libJfVersion.get()}")
|
||||
modImplementation("io.gitlab.jfronny.libjf:libjf-config-ui-tiny:${jfMod.libJfVersion.get()}")
|
||||
|
||||
val nofabric: Action<ExternalModuleDependency> = Action {
|
||||
exclude("net.fabricmc") // required to work around duplicate fabric loaders
|
||||
}
|
||||
modLocalRuntime("io.gitlab.jfronny.libjf:libjf-devutil:${jfMod.libJfVersion.get()}", nofabric)
|
||||
//modLocalRuntime("com.terraformersmc:modmenu:$modmenuVersion", nofabric) // Temporarily disabled since modmenu doesn't support snapshots
|
||||
modLocalRuntime("com.terraformersmc:modmenu:$modmenuVersion", nofabric) // Temporarily disabled since modmenu doesn't support snapshots
|
||||
modClientCompileOnly("com.terraformersmc:modmenu:$modmenuVersion", nofabric)
|
||||
|
||||
modClientCompileOnly("io.vram:frex-fabric:20.0.+")
|
||||
|
|
|
@ -7,6 +7,7 @@ import io.gitlab.jfronny.commons.throwable.ThrowingConsumer;
|
|||
import io.gitlab.jfronny.commons.throwable.ThrowingSupplier;
|
||||
import io.gitlab.jfronny.muscript.compiler.Parser;
|
||||
import io.gitlab.jfronny.muscript.error.LocationalException;
|
||||
import io.gitlab.jfronny.respackopts.muscript.ScopeVersion;
|
||||
import io.gitlab.jfronny.respackopts.util.MetaCache;
|
||||
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
|
||||
import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
|
||||
|
@ -58,7 +59,8 @@ public class RpoClientCommand {
|
|||
Command<FabricClientCommandSource> execute = ctx -> {
|
||||
String snippet = StringArgumentType.getString(ctx, "snippet");
|
||||
try {
|
||||
String result = Parser.parse(snippet, "snippet").asStringExpr().get(MetaCache.getScope(IntegerArgumentType.getInteger(ctx, "version")));
|
||||
int ver = IntegerArgumentType.getInteger(ctx, "version");
|
||||
String result = Parser.parse(ScopeVersion.by(ver).muScriptVersion, snippet, "snippet").asStringExpr().get(MetaCache.getScope(ver));
|
||||
ctx.getSource().sendFeedback(Text.translatable("respackopts.snippet.success", result));
|
||||
} catch (LocationalException | Parser.ParseException e) {
|
||||
Respackopts.LOGGER.error("Could not execute snippet", e);
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package io.gitlab.jfronny.respackopts.mixin;
|
||||
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
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;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ui.ConfigScreenFactory;
|
||||
import io.gitlab.jfronny.respackopts.model.cache.CacheKey;
|
||||
import io.gitlab.jfronny.respackopts.util.MetaCache;
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
package io.gitlab.jfronny.respackopts;
|
||||
|
||||
import io.gitlab.jfronny.commons.log.Logger;
|
||||
import io.gitlab.jfronny.commons.logging.Logger;
|
||||
import io.gitlab.jfronny.gson.Gson;
|
||||
import io.gitlab.jfronny.gson.GsonBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigInstance;
|
||||
import io.gitlab.jfronny.muscript.StandardLib;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.ConfigInstance;
|
||||
import io.gitlab.jfronny.muscript.ast.*;
|
||||
import io.gitlab.jfronny.muscript.data.Scope;
|
||||
import io.gitlab.jfronny.muscript.data.dynamic.additional.DFinal;
|
||||
import io.gitlab.jfronny.respackopts.filters.*;
|
||||
import io.gitlab.jfronny.respackopts.gson.*;
|
||||
import io.gitlab.jfronny.respackopts.gson.entry.*;
|
||||
|
@ -18,8 +15,6 @@ import io.gitlab.jfronny.respackopts.server.ServerInstanceHolder;
|
|||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.ModInitializer;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
import net.fabricmc.loader.api.VersionParsingException;
|
||||
import net.fabricmc.loader.api.metadata.version.VersionPredicate;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package io.gitlab.jfronny.respackopts;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.ConfigInstance;
|
||||
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.ConfigInstance;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.JfCustomConfig;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.DSL;
|
||||
import io.gitlab.jfronny.respackopts.util.MetaCache;
|
||||
|
||||
import java.util.LinkedList;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package io.gitlab.jfronny.respackopts.filters.util;
|
||||
|
||||
import io.gitlab.jfronny.muscript.ast.StringExpr;
|
||||
import io.gitlab.jfronny.muscript.data.dynamic.DObject;
|
||||
import io.gitlab.jfronny.muscript.data.dynamic.Dynamic;
|
||||
import io.gitlab.jfronny.respackopts.model.cache.CacheKey;
|
||||
import io.gitlab.jfronny.respackopts.muscript.RespackoptsFS;
|
||||
|
@ -11,7 +12,7 @@ import java.io.*;
|
|||
import java.util.Map;
|
||||
|
||||
public class FileExpansionProvider {
|
||||
public static synchronized InputStream replace(Dynamic parameter, InputStream is, Map<String, StringExpr> expansions) throws IOException {
|
||||
public static synchronized InputStream replace(DObject parameter, InputStream is, Map<String, StringExpr> expansions) throws IOException {
|
||||
String s = new String(is.readAllBytes());
|
||||
for (Map.Entry<String, StringExpr> entry : expansions.entrySet()) {
|
||||
s = s.replace("${" + entry.getKey() + "}", entry.getValue().get(parameter));
|
||||
|
|
|
@ -45,13 +45,13 @@ public class BoolExprDeserializer implements JsonDeserializer<BoolExpr> {
|
|||
if (pr.isString()) {
|
||||
String name = pr.getAsString();
|
||||
if (name.toLowerCase(Locale.ROOT).equals("true"))
|
||||
return Expr.literal(-1, -1, true);
|
||||
return Expr.literal(CodeLocation.NONE, true);
|
||||
if (name.toLowerCase(Locale.ROOT).equals("false"))
|
||||
return Expr.literal(-1, -1, false);
|
||||
return Expr.literal(CodeLocation.NONE, false);
|
||||
return rpoBooleanCondition(name);
|
||||
}
|
||||
else if (pr.isBoolean()) {
|
||||
return Expr.literal(-1, -1, pr.getAsBoolean());
|
||||
return Expr.literal(CodeLocation.NONE, pr.getAsBoolean());
|
||||
}
|
||||
}
|
||||
throw new JsonParseException("Invalid data type for condition");
|
||||
|
|
|
@ -4,6 +4,7 @@ import io.gitlab.jfronny.gson.*;
|
|||
import io.gitlab.jfronny.muscript.StarScriptIngester;
|
||||
import io.gitlab.jfronny.muscript.ast.Expr;
|
||||
import io.gitlab.jfronny.muscript.compiler.Parser;
|
||||
import io.gitlab.jfronny.respackopts.muscript.ScopeVersion;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.HashMap;
|
||||
|
@ -19,7 +20,8 @@ public class ExprDeserializer implements JsonDeserializer<Expr<?>> {
|
|||
if (compiledScripts.containsKey(s))
|
||||
return compiledScripts.get(s);
|
||||
try {
|
||||
Expr<?> expr = Parser.parse(AttachmentHolder.getAttachedVersion() <= 7
|
||||
int v = AttachmentHolder.getAttachedVersion();
|
||||
Expr<?> expr = Parser.parse(ScopeVersion.by(v).muScriptVersion, v <= 7
|
||||
? StarScriptIngester.starScriptToMu(s)
|
||||
: s);
|
||||
compiledScripts.put(s, expr);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package io.gitlab.jfronny.respackopts.model;
|
||||
|
||||
import io.gitlab.jfronny.commons.serialize.gson.api.v1.Ignore;
|
||||
import io.gitlab.jfronny.commons.serialize.gson.api.v2.Ignore;
|
||||
import io.gitlab.jfronny.gson.annotations.SerializedName;
|
||||
|
||||
public class DirRpo {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package io.gitlab.jfronny.respackopts.model;
|
||||
|
||||
import io.gitlab.jfronny.commons.serialize.gson.api.v1.Ignore;
|
||||
import io.gitlab.jfronny.commons.serialize.gson.api.v2.Ignore;
|
||||
import io.gitlab.jfronny.gson.annotations.SerializedName;
|
||||
import io.gitlab.jfronny.muscript.ast.StringExpr;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package io.gitlab.jfronny.respackopts.model.tree;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.muscript.data.dynamic.DBool;
|
||||
import io.gitlab.jfronny.respackopts.Respackopts;
|
||||
import io.gitlab.jfronny.respackopts.RespackoptsConfig;
|
||||
|
|
|
@ -2,8 +2,8 @@ package io.gitlab.jfronny.respackopts.model.tree;
|
|||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import io.gitlab.jfronny.gson.reflect.TypeToken;
|
||||
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.v2.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.ConfigBuilder;
|
||||
import io.gitlab.jfronny.muscript.data.Scope;
|
||||
import io.gitlab.jfronny.muscript.data.dynamic.Dynamic;
|
||||
import io.gitlab.jfronny.muscript.data.dynamic.additional.DFinal;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package io.gitlab.jfronny.respackopts.model.tree;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.muscript.data.dynamic.DynamicBase;
|
||||
import io.gitlab.jfronny.respackopts.Respackopts;
|
||||
import io.gitlab.jfronny.respackopts.model.enums.ConfigSyncMode;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package io.gitlab.jfronny.respackopts.model.tree;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.muscript.data.dynamic.Dynamic;
|
||||
import io.gitlab.jfronny.muscript.data.dynamic.additional.DEnum;
|
||||
import io.gitlab.jfronny.muscript.data.dynamic.additional.DelegateDynamic;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package io.gitlab.jfronny.respackopts.model.tree;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.muscript.data.dynamic.DNumber;
|
||||
import io.gitlab.jfronny.respackopts.Respackopts;
|
||||
import io.gitlab.jfronny.respackopts.RespackoptsConfig;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package io.gitlab.jfronny.respackopts.model.tree;
|
||||
|
||||
import io.gitlab.jfronny.libjf.config.api.v1.dsl.CategoryBuilder;
|
||||
import io.gitlab.jfronny.libjf.config.api.v2.dsl.CategoryBuilder;
|
||||
|
||||
public record GuiEntryBuilderParam(CategoryBuilder<?> builder, String name, Runnable onSave) {
|
||||
public void saveCallback() {
|
||||
|
|
|
@ -1,65 +1,48 @@
|
|||
package io.gitlab.jfronny.respackopts.muscript;
|
||||
|
||||
import io.gitlab.jfronny.muscript.StandardLib;
|
||||
import io.gitlab.jfronny.muscript.compiler.Parser;
|
||||
import io.gitlab.jfronny.muscript.compiler.MuScriptVersion;
|
||||
import io.gitlab.jfronny.muscript.compiler.SourceFS;
|
||||
import io.gitlab.jfronny.muscript.data.Scope;
|
||||
import io.gitlab.jfronny.muscript.data.Script;
|
||||
import io.gitlab.jfronny.muscript.data.dynamic.DList;
|
||||
import io.gitlab.jfronny.muscript.data.dynamic.Dynamic;
|
||||
import io.gitlab.jfronny.muscript.data.dynamic.additional.DFinal;
|
||||
import io.gitlab.jfronny.muscript.gson.GsonLib;
|
||||
import io.gitlab.jfronny.respackopts.model.cache.CacheKey;
|
||||
import io.gitlab.jfronny.muscript.libs.*;
|
||||
import io.gitlab.jfronny.respackopts.model.cache.CachedPackState;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
import net.fabricmc.loader.api.VersionParsingException;
|
||||
import net.fabricmc.loader.api.metadata.version.VersionPredicate;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static io.gitlab.jfronny.muscript.data.dynamic.additional.DFinal.of;
|
||||
import java.util.EnumMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class MuScriptScope {
|
||||
private static final Scope SCOPE_12;
|
||||
private static final Scope SCOPE_13;
|
||||
private static final Map<ScopeVersion, Scope> map = new EnumMap<>(ScopeVersion.class);
|
||||
|
||||
static {
|
||||
SCOPE_12 = StandardLib.createScope().set("version", args -> {
|
||||
if (args.size() != 2) throw new IllegalArgumentException("Expected 2 arguments on version but got " + args.size());
|
||||
VersionPredicate predicate;
|
||||
try {
|
||||
predicate = VersionPredicate.parse(args.get(1).asString().getValue());
|
||||
} catch (VersionParsingException e) {
|
||||
throw new IllegalArgumentException("Could not parse version predicate", e);
|
||||
}
|
||||
return DFinal.of(FabricLoader.getInstance().getModContainer(args.get(0).asString().getValue())
|
||||
.map(c -> predicate.test(c.getMetadata().getVersion()))
|
||||
.orElse(false));
|
||||
});
|
||||
SCOPE_13 = GsonLib.addTo(SCOPE_12.fork());
|
||||
for (ScopeVersion version : ScopeVersion.values()) {
|
||||
Scope scope = StandardLib.createScope(version.muScriptVersion);
|
||||
scope = scope.set("version", args -> {
|
||||
if (args.size() != 2) throw new IllegalArgumentException("Expected 2 arguments on version but got " + args.size());
|
||||
VersionPredicate predicate;
|
||||
try {
|
||||
predicate = VersionPredicate.parse(args.get(1).asString().getValue());
|
||||
} catch (VersionParsingException e) {
|
||||
throw new IllegalArgumentException("Could not parse version predicate", e);
|
||||
}
|
||||
return DFinal.of(FabricLoader.getInstance().getModContainer(args.get(0).asString().getValue())
|
||||
.map(c -> predicate.test(c.getMetadata().getVersion()))
|
||||
.orElse(false));
|
||||
});
|
||||
if (version.contains(ScopeVersion.V13)) scope = GsonLib.addTo(scope);
|
||||
map.put(version, scope);
|
||||
}
|
||||
}
|
||||
|
||||
public static Scope fork(int version) {
|
||||
if (version <= 12) return SCOPE_12.fork();
|
||||
else return SCOPE_13.fork();
|
||||
return map.get(ScopeVersion.by(version)).fork();
|
||||
}
|
||||
|
||||
public static Scope configureFS(Scope scope, CachedPackState state, SourceFS fs) {
|
||||
int version = state.metadata().version;
|
||||
if (version <= 12) return scope;
|
||||
else return scope.set("readString", args -> {
|
||||
if (args.size() != 1) throw new IllegalArgumentException("Invalid number of arguments for readString: expected 1 but got " + args.size());
|
||||
return DFinal.of(state.cachedFiles().computeIfAbsent(args.get(0).asString().getValue(), fs::read));
|
||||
}).set("runScript", args -> {
|
||||
if (args.isEmpty()) throw new IllegalArgumentException("Invalid number of arguments for evaluateScript: expected 1 or more but got " + args.size());
|
||||
Script script = state.cachedScripts().computeIfAbsent(
|
||||
args.get(0).asString().getValue(),
|
||||
sourceFile -> Parser.parseMultiScript(sourceFile, fs)
|
||||
);
|
||||
List<? extends Dynamic> l = args.getValue();
|
||||
DList innerArgs = of(l.subList(1, l.size()));
|
||||
return script.bindTo(scope.fork()).call(innerArgs);
|
||||
});
|
||||
MuScriptVersion version = ScopeVersion.by(state.metadata().version).muScriptVersion;
|
||||
return IOLib.addTo(version, scope, new IOWrapper.Caching(new IOWrapper.SourceFSWrapper(version, fs)));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
package io.gitlab.jfronny.respackopts.muscript;
|
||||
|
||||
import io.gitlab.jfronny.muscript.compiler.MuScriptVersion;
|
||||
|
||||
public enum ScopeVersion {
|
||||
V10(MuScriptVersion.V1),
|
||||
V12(MuScriptVersion.V2),
|
||||
V13(MuScriptVersion.V3);
|
||||
|
||||
public final MuScriptVersion muScriptVersion;
|
||||
|
||||
ScopeVersion(MuScriptVersion muScriptVersion) {
|
||||
this.muScriptVersion = muScriptVersion;
|
||||
}
|
||||
|
||||
public static ScopeVersion by(int version) {
|
||||
return version < 10 ? V10 : version <= 12 ? V12 : V13;
|
||||
}
|
||||
|
||||
public boolean contains(ScopeVersion version) {
|
||||
return compareTo(version) >= 0;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue