Move some things around
This commit is contained in:
parent
a3721174d9
commit
2393c48913
@ -6,7 +6,7 @@ minecraft_version=1.17
|
|||||||
yarn_mappings=build.1
|
yarn_mappings=build.1
|
||||||
loader_version=0.11.3
|
loader_version=0.11.3
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version=1.4.4
|
mod_version=2.0.0
|
||||||
maven_group=io.gitlab.jfronny
|
maven_group=io.gitlab.jfronny
|
||||||
archives_base_name=respackopts
|
archives_base_name=respackopts
|
||||||
|
|
||||||
|
@ -2,14 +2,13 @@ package io.gitlab.jfronny.respackopts;
|
|||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.GsonBuilder;
|
import com.google.gson.GsonBuilder;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import io.gitlab.jfronny.respackopts.data.entry.*;
|
||||||
import io.gitlab.jfronny.respackopts.data.*;
|
import io.gitlab.jfronny.respackopts.data.Respackmeta;
|
||||||
import io.gitlab.jfronny.respackopts.data.in.Respackmeta;
|
|
||||||
import io.gitlab.jfronny.respackopts.filters.conditions.SyntaxError;
|
|
||||||
import io.gitlab.jfronny.respackopts.gson.BooleanEntrySerializer;
|
import io.gitlab.jfronny.respackopts.gson.BooleanEntrySerializer;
|
||||||
import io.gitlab.jfronny.respackopts.gson.ConfigBranchSerializer;
|
import io.gitlab.jfronny.respackopts.gson.ConfigBranchSerializer;
|
||||||
import io.gitlab.jfronny.respackopts.gson.EnumEntrySerializer;
|
import io.gitlab.jfronny.respackopts.gson.EnumEntrySerializer;
|
||||||
import io.gitlab.jfronny.respackopts.gson.NumericEntrySerializer;
|
import io.gitlab.jfronny.respackopts.gson.NumericEntrySerializer;
|
||||||
|
import io.gitlab.jfronny.respackopts.gui.GuiFactory;
|
||||||
import net.fabricmc.api.ClientModInitializer;
|
import net.fabricmc.api.ClientModInitializer;
|
||||||
import net.fabricmc.api.EnvType;
|
import net.fabricmc.api.EnvType;
|
||||||
import net.fabricmc.api.Environment;
|
import net.fabricmc.api.Environment;
|
||||||
@ -64,7 +63,7 @@ public class Respackopts implements ClientModInitializer {
|
|||||||
public static void save() {
|
public static void save() {
|
||||||
for (String s : resPackMetas.keySet()) {
|
for (String s : resPackMetas.keySet()) {
|
||||||
s = resPackMetas.get(s).id;
|
s = resPackMetas.get(s).id;
|
||||||
LOGGER.info(s + ": " + CONFIG_BRANCH.get(s));
|
//LOGGER.info(s + ": " + CONFIG_BRANCH.get(s));
|
||||||
try (Writer writer = Files.newBufferedWriter(CONF_DIR.resolve(s + ".json"))) {
|
try (Writer writer = Files.newBufferedWriter(CONF_DIR.resolve(s + ".json"))) {
|
||||||
GSON.toJson(CONFIG_BRANCH.get(s), writer);
|
GSON.toJson(CONFIG_BRANCH.get(s), writer);
|
||||||
writer.flush();
|
writer.flush();
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
package io.gitlab.jfronny.respackopts.abstractions;
|
|
||||||
|
|
||||||
import me.shedaniel.clothconfig2.api.AbstractConfigListEntry;
|
|
||||||
|
|
||||||
public interface JfConfigCategory {
|
|
||||||
JfConfigCategory addEntry(AbstractConfigListEntry var1);
|
|
||||||
}
|
|
@ -1,4 +1,4 @@
|
|||||||
package io.gitlab.jfronny.respackopts.data.in;
|
package io.gitlab.jfronny.respackopts.data;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
package io.gitlab.jfronny.respackopts.data.in;
|
package io.gitlab.jfronny.respackopts.data;
|
||||||
|
|
||||||
import io.gitlab.jfronny.respackopts.data.ConfigBranch;
|
import io.gitlab.jfronny.respackopts.data.entry.ConfigBranch;
|
||||||
|
|
||||||
public class Respackmeta {
|
public class Respackmeta {
|
||||||
public ConfigBranch conf;
|
public ConfigBranch conf;
|
@ -1,4 +1,4 @@
|
|||||||
package io.gitlab.jfronny.respackopts.data.in;
|
package io.gitlab.jfronny.respackopts.data;
|
||||||
|
|
||||||
import com.google.gson.JsonArray;
|
import com.google.gson.JsonArray;
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
package io.gitlab.jfronny.respackopts.data;
|
||||||
|
|
||||||
|
public class RpoError extends Exception {
|
||||||
|
public RpoError(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package io.gitlab.jfronny.respackopts.data;
|
package io.gitlab.jfronny.respackopts.data.entry;
|
||||||
|
|
||||||
public class ConfigBooleanEntry extends Entry<Boolean> {
|
public class ConfigBooleanEntry extends Entry<Boolean> {
|
||||||
public ConfigBooleanEntry(boolean v) {
|
public ConfigBooleanEntry(boolean v) {
|
@ -1,8 +1,8 @@
|
|||||||
package io.gitlab.jfronny.respackopts.data;
|
package io.gitlab.jfronny.respackopts.data.entry;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import io.gitlab.jfronny.respackopts.Respackopts;
|
import io.gitlab.jfronny.respackopts.Respackopts;
|
||||||
import io.gitlab.jfronny.respackopts.filters.conditions.SyntaxError;
|
import io.gitlab.jfronny.respackopts.data.RpoError;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -12,30 +12,31 @@ public class ConfigBranch extends Entry<Map<String, Entry<?>>> {
|
|||||||
setValue(new HashMap<>());
|
setValue(new HashMap<>());
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean getBoolean(String name) throws SyntaxError {
|
public boolean getBoolean(String name) throws RpoError {
|
||||||
String[] sp = name.split("\\.");
|
String[] sp = name.split("\\.");
|
||||||
if (!super.getValue().containsKey(sp[0]))
|
if (!super.getValue().containsKey(sp[0]))
|
||||||
throw new SyntaxError("Invalid path to key");
|
throw new RpoError("Invalid path to key");
|
||||||
Entry<?> e = super.getValue().get(sp[0]);
|
Entry<?> e = super.getValue().get(sp[0]);
|
||||||
if (sp.length == 1) {
|
if (sp.length == 1) {
|
||||||
if (e instanceof ConfigBooleanEntry b)
|
if (e instanceof ConfigBooleanEntry b)
|
||||||
return b.getValue();
|
return b.getValue();
|
||||||
throw new SyntaxError("Not a boolean");
|
throw new RpoError("Not a boolean");
|
||||||
}
|
}
|
||||||
if (sp.length == 2 && e instanceof ConfigEnumEntry en) {
|
if (sp.length == 2 && e instanceof ConfigEnumEntry en) {
|
||||||
for (Map.Entry<String, Integer> entry : en.values.entrySet()) {
|
for (Map.Entry<String, Integer> entry : en.values.entrySet()) {
|
||||||
if (entry.getKey().equals(sp[1]))
|
if (entry.getKey().equals(sp[1]))
|
||||||
return entry.getValue().equals(en.getValue());
|
return entry.getValue().equals(en.getValue());
|
||||||
}
|
}
|
||||||
throw new SyntaxError("Could not find enum entry");
|
throw new RpoError("Could not find enum entry");
|
||||||
}
|
}
|
||||||
if (e instanceof ConfigBranch b)
|
if (e instanceof ConfigBranch b)
|
||||||
return b.getBoolean(name.substring(name.indexOf('.') + 1));
|
return b.getBoolean(name.substring(name.indexOf('.') + 1));
|
||||||
throw new SyntaxError("Invalid path to key");
|
throw new RpoError("Invalid path to key");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sync(Entry<Map<String, Entry<?>>> source, SyncMode mode) {
|
public void sync(Entry<Map<String, Entry<?>>> source, SyncMode mode) {
|
||||||
|
Respackopts.LOGGER.info(this);
|
||||||
for (Map.Entry<String, Entry<?>> e : source.getValue().entrySet()) {
|
for (Map.Entry<String, Entry<?>> e : source.getValue().entrySet()) {
|
||||||
if (!has(e.getKey())) {
|
if (!has(e.getKey())) {
|
||||||
if (mode.isAdd)
|
if (mode.isAdd)
|
||||||
@ -50,6 +51,7 @@ public class ConfigBranch extends Entry<Map<String, Entry<?>>> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Respackopts.LOGGER.info(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -79,7 +81,7 @@ public class ConfigBranch extends Entry<Map<String, Entry<?>>> {
|
|||||||
return ImmutableMap.copyOf(super.getValue());
|
return ImmutableMap.copyOf(super.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void buildShader(StringBuilder sb, String valuePrefix) throws SyntaxError {
|
public void buildShader(StringBuilder sb, String valuePrefix) throws RpoError {
|
||||||
for (Map.Entry<String, Entry<?>> e : super.getValue().entrySet()) {
|
for (Map.Entry<String, Entry<?>> e : super.getValue().entrySet()) {
|
||||||
if (e.getValue() instanceof ConfigNumericEntry n) {
|
if (e.getValue() instanceof ConfigNumericEntry n) {
|
||||||
sb.append("\n#define ");
|
sb.append("\n#define ");
|
||||||
@ -115,7 +117,7 @@ public class ConfigBranch extends Entry<Map<String, Entry<?>>> {
|
|||||||
n.buildShader(sb, valuePrefix + e.getKey() + "_");
|
n.buildShader(sb, valuePrefix + e.getKey() + "_");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
throw new SyntaxError("Invalid type");
|
throw new RpoError("Invalid type");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package io.gitlab.jfronny.respackopts.data;
|
package io.gitlab.jfronny.respackopts.data.entry;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
@ -1,4 +1,4 @@
|
|||||||
package io.gitlab.jfronny.respackopts.data;
|
package io.gitlab.jfronny.respackopts.data.entry;
|
||||||
|
|
||||||
public class ConfigNumericEntry extends Entry<Double> {
|
public class ConfigNumericEntry extends Entry<Double> {
|
||||||
public Double min;
|
public Double min;
|
@ -1,4 +1,4 @@
|
|||||||
package io.gitlab.jfronny.respackopts.data;
|
package io.gitlab.jfronny.respackopts.data.entry;
|
||||||
|
|
||||||
public abstract class Entry<T> {
|
public abstract class Entry<T> {
|
||||||
private T defaultValue;
|
private T defaultValue;
|
@ -1,4 +1,4 @@
|
|||||||
package io.gitlab.jfronny.respackopts.data;
|
package io.gitlab.jfronny.respackopts.data.entry;
|
||||||
|
|
||||||
public class SyncMode {
|
public class SyncMode {
|
||||||
public static final SyncMode RESPACK_LOAD = new SyncMode(false, true, true);
|
public static final SyncMode RESPACK_LOAD = new SyncMode(false, true, true);
|
@ -1,4 +1,4 @@
|
|||||||
package io.gitlab.jfronny.respackopts.abstractions;
|
package io.gitlab.jfronny.respackopts.filters;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
@ -1,15 +1,16 @@
|
|||||||
package io.gitlab.jfronny.respackopts.filters.conditions;
|
package io.gitlab.jfronny.respackopts.filters.conditions;
|
||||||
|
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
|
import io.gitlab.jfronny.respackopts.data.RpoError;
|
||||||
|
|
||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public class AndCondition implements Condition {
|
public class AndCondition implements Condition {
|
||||||
@Override
|
@Override
|
||||||
public boolean evaluate(JsonElement node) throws SyntaxError {
|
public boolean evaluate(JsonElement node) throws RpoError {
|
||||||
if (!node.isJsonArray())
|
if (!node.isJsonArray())
|
||||||
throw new SyntaxError("\"and\" condition requires an array of conditions");
|
throw new RpoError("\"and\" condition requires an array of conditions");
|
||||||
for (JsonElement jsonElement : node.getAsJsonArray()) {
|
for (JsonElement jsonElement : node.getAsJsonArray()) {
|
||||||
if (!ConditionEvaluator.evaluate(jsonElement))
|
if (!ConditionEvaluator.evaluate(jsonElement))
|
||||||
return false;
|
return false;
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
package io.gitlab.jfronny.respackopts.filters.conditions;
|
package io.gitlab.jfronny.respackopts.filters.conditions;
|
||||||
|
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
|
import io.gitlab.jfronny.respackopts.data.RpoError;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public interface Condition {
|
public interface Condition {
|
||||||
boolean evaluate(JsonElement node) throws SyntaxError;
|
boolean evaluate(JsonElement node) throws RpoError;
|
||||||
Set<String> getKeys();
|
Set<String> getKeys();
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,8 @@ package io.gitlab.jfronny.respackopts.filters.conditions;
|
|||||||
|
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import io.gitlab.jfronny.respackopts.Respackopts;
|
import io.gitlab.jfronny.respackopts.Respackopts;
|
||||||
import io.gitlab.jfronny.respackopts.data.in.Respackmeta;
|
import io.gitlab.jfronny.respackopts.data.Respackmeta;
|
||||||
|
import io.gitlab.jfronny.respackopts.data.RpoError;
|
||||||
|
|
||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -20,7 +21,7 @@ public class ConditionEvaluator {
|
|||||||
conditions.add(new NorCondition());
|
conditions.add(new NorCondition());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean evaluate(JsonElement condition) throws SyntaxError {
|
public static boolean evaluate(JsonElement condition) throws RpoError {
|
||||||
if (condition.isJsonPrimitive() && condition.getAsJsonPrimitive().isString())
|
if (condition.isJsonPrimitive() && condition.getAsJsonPrimitive().isString())
|
||||||
return evaluate(condition.getAsString());
|
return evaluate(condition.getAsString());
|
||||||
if (condition.isJsonObject() && condition.getAsJsonObject().size() == 1) {
|
if (condition.isJsonObject() && condition.getAsJsonObject().size() == 1) {
|
||||||
@ -30,7 +31,7 @@ public class ConditionEvaluator {
|
|||||||
return c.evaluate(entry.getValue());
|
return c.evaluate(entry.getValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
throw new SyntaxError("Could not find condition: " + entry.getKey());
|
throw new RpoError("Could not find condition: " + entry.getKey());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (condition.isJsonArray()) {
|
if (condition.isJsonArray()) {
|
||||||
@ -40,15 +41,15 @@ public class ConditionEvaluator {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
throw new SyntaxError("Condition entries may only be json objects containing one key and one value or strings");
|
throw new RpoError("Condition entries may only be json objects containing one key and one value or strings");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean evaluate(String condition) throws SyntaxError {
|
public static boolean evaluate(String condition) throws RpoError {
|
||||||
if (condition == null) {
|
if (condition == null) {
|
||||||
throw new SyntaxError("Condition must not be null");
|
throw new RpoError("Condition must not be null");
|
||||||
}
|
}
|
||||||
if (!condition.contains(":")) {
|
if (!condition.contains(":")) {
|
||||||
throw new SyntaxError("You must include you resource pack ID in conditions (format: pack:some.key)");
|
throw new RpoError("You must include you resource pack ID in conditions (format: pack:some.key)");
|
||||||
}
|
}
|
||||||
|
|
||||||
String sourcePack = condition.split(":")[0];
|
String sourcePack = condition.split(":")[0];
|
||||||
@ -58,6 +59,6 @@ public class ConditionEvaluator {
|
|||||||
return Respackopts.CONFIG_BRANCH.get(sourcePack).getBoolean(name);
|
return Respackopts.CONFIG_BRANCH.get(sourcePack).getBoolean(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
throw new SyntaxError("Could not find pack with specified ID");
|
throw new RpoError("Could not find pack with specified ID");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package io.gitlab.jfronny.respackopts.filters.conditions;
|
package io.gitlab.jfronny.respackopts.filters.conditions;
|
||||||
|
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
|
import io.gitlab.jfronny.respackopts.data.RpoError;
|
||||||
|
|
||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@ -8,9 +9,9 @@ import java.util.Set;
|
|||||||
//TODO implement equality checking for string/number variables
|
//TODO implement equality checking for string/number variables
|
||||||
public class EqualityCondition implements Condition {
|
public class EqualityCondition implements Condition {
|
||||||
@Override
|
@Override
|
||||||
public boolean evaluate(JsonElement node) throws SyntaxError {
|
public boolean evaluate(JsonElement node) throws RpoError {
|
||||||
if (!node.isJsonArray())
|
if (!node.isJsonArray())
|
||||||
throw new SyntaxError("\"equal\" condition requires an array of conditions");
|
throw new RpoError("\"equal\" condition requires an array of conditions");
|
||||||
Optional<Boolean> v = Optional.empty();
|
Optional<Boolean> v = Optional.empty();
|
||||||
for (JsonElement jsonElement : node.getAsJsonArray()) {
|
for (JsonElement jsonElement : node.getAsJsonArray()) {
|
||||||
boolean current = ConditionEvaluator.evaluate(jsonElement);
|
boolean current = ConditionEvaluator.evaluate(jsonElement);
|
||||||
|
@ -1,15 +1,16 @@
|
|||||||
package io.gitlab.jfronny.respackopts.filters.conditions;
|
package io.gitlab.jfronny.respackopts.filters.conditions;
|
||||||
|
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
|
import io.gitlab.jfronny.respackopts.data.RpoError;
|
||||||
|
|
||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public class NorCondition implements Condition {
|
public class NorCondition implements Condition {
|
||||||
@Override
|
@Override
|
||||||
public boolean evaluate(JsonElement node) throws SyntaxError {
|
public boolean evaluate(JsonElement node) throws RpoError {
|
||||||
if (!node.isJsonArray())
|
if (!node.isJsonArray())
|
||||||
throw new SyntaxError("\"not\"/\"nor\" condition requires an array of conditions");
|
throw new RpoError("\"not\"/\"nor\" condition requires an array of conditions");
|
||||||
for (JsonElement jsonElement : node.getAsJsonArray()) {
|
for (JsonElement jsonElement : node.getAsJsonArray()) {
|
||||||
if (ConditionEvaluator.evaluate(jsonElement))
|
if (ConditionEvaluator.evaluate(jsonElement))
|
||||||
return false;
|
return false;
|
||||||
|
@ -1,15 +1,16 @@
|
|||||||
package io.gitlab.jfronny.respackopts.filters.conditions;
|
package io.gitlab.jfronny.respackopts.filters.conditions;
|
||||||
|
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
|
import io.gitlab.jfronny.respackopts.data.RpoError;
|
||||||
|
|
||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public class OrCondition implements Condition {
|
public class OrCondition implements Condition {
|
||||||
@Override
|
@Override
|
||||||
public boolean evaluate(JsonElement node) throws SyntaxError {
|
public boolean evaluate(JsonElement node) throws RpoError {
|
||||||
if (!node.isJsonArray())
|
if (!node.isJsonArray())
|
||||||
throw new SyntaxError("\"or\" condition requires an array of conditions");
|
throw new RpoError("\"or\" condition requires an array of conditions");
|
||||||
for (JsonElement jsonElement : node.getAsJsonArray()) {
|
for (JsonElement jsonElement : node.getAsJsonArray()) {
|
||||||
if (ConditionEvaluator.evaluate(jsonElement))
|
if (ConditionEvaluator.evaluate(jsonElement))
|
||||||
return true;
|
return true;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package io.gitlab.jfronny.respackopts.filters.conditions;
|
package io.gitlab.jfronny.respackopts.filters.conditions;
|
||||||
|
|
||||||
import io.gitlab.jfronny.respackopts.Respackopts;
|
import io.gitlab.jfronny.respackopts.Respackopts;
|
||||||
import io.gitlab.jfronny.respackopts.abstractions.FileOpenProvider;
|
import io.gitlab.jfronny.respackopts.filters.FileOpenProvider;
|
||||||
import io.gitlab.jfronny.respackopts.data.in.Rpo;
|
import io.gitlab.jfronny.respackopts.data.Rpo;
|
||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
package io.gitlab.jfronny.respackopts.filters.conditions;
|
|
||||||
|
|
||||||
public class SyntaxError extends Exception {
|
|
||||||
public SyntaxError(String message) {
|
|
||||||
super(message);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +1,16 @@
|
|||||||
package io.gitlab.jfronny.respackopts.filters.conditions;
|
package io.gitlab.jfronny.respackopts.filters.conditions;
|
||||||
|
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
|
import io.gitlab.jfronny.respackopts.data.RpoError;
|
||||||
|
|
||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public class XorCondition implements Condition {
|
public class XorCondition implements Condition {
|
||||||
@Override
|
@Override
|
||||||
public boolean evaluate(JsonElement node) throws SyntaxError {
|
public boolean evaluate(JsonElement node) throws RpoError {
|
||||||
if (!node.isJsonArray())
|
if (!node.isJsonArray())
|
||||||
throw new SyntaxError("\"xor\" condition requires an array of conditions");
|
throw new RpoError("\"xor\" condition requires an array of conditions");
|
||||||
boolean bl = false;
|
boolean bl = false;
|
||||||
for (JsonElement jsonElement : node.getAsJsonArray()) {
|
for (JsonElement jsonElement : node.getAsJsonArray()) {
|
||||||
if (ConditionEvaluator.evaluate(jsonElement))
|
if (ConditionEvaluator.evaluate(jsonElement))
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package io.gitlab.jfronny.respackopts.filters.fallback;
|
package io.gitlab.jfronny.respackopts.filters.fallback;
|
||||||
|
|
||||||
import io.gitlab.jfronny.respackopts.Respackopts;
|
import io.gitlab.jfronny.respackopts.Respackopts;
|
||||||
import io.gitlab.jfronny.respackopts.abstractions.FileOpenProvider;
|
import io.gitlab.jfronny.respackopts.filters.FileOpenProvider;
|
||||||
import io.gitlab.jfronny.respackopts.data.in.Rpo;
|
import io.gitlab.jfronny.respackopts.data.Rpo;
|
||||||
import net.minecraft.resource.ResourceNotFoundException;
|
import net.minecraft.resource.ResourceNotFoundException;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.gitlab.jfronny.respackopts.gson;
|
package io.gitlab.jfronny.respackopts.gson;
|
||||||
|
|
||||||
import com.google.gson.*;
|
import com.google.gson.*;
|
||||||
import io.gitlab.jfronny.respackopts.data.ConfigBooleanEntry;
|
import io.gitlab.jfronny.respackopts.data.entry.ConfigBooleanEntry;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.gitlab.jfronny.respackopts.gson;
|
package io.gitlab.jfronny.respackopts.gson;
|
||||||
|
|
||||||
import com.google.gson.*;
|
import com.google.gson.*;
|
||||||
import io.gitlab.jfronny.respackopts.data.*;
|
import io.gitlab.jfronny.respackopts.data.entry.*;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.gitlab.jfronny.respackopts.gson;
|
package io.gitlab.jfronny.respackopts.gson;
|
||||||
|
|
||||||
import com.google.gson.*;
|
import com.google.gson.*;
|
||||||
import io.gitlab.jfronny.respackopts.data.ConfigEnumEntry;
|
import io.gitlab.jfronny.respackopts.data.entry.ConfigEnumEntry;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -3,11 +3,10 @@ package io.gitlab.jfronny.respackopts.gson;
|
|||||||
import com.google.gson.JsonDeserializationContext;
|
import com.google.gson.JsonDeserializationContext;
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import com.google.gson.JsonParseException;
|
import com.google.gson.JsonParseException;
|
||||||
import io.gitlab.jfronny.respackopts.data.ConfigBooleanEntry;
|
import io.gitlab.jfronny.respackopts.data.entry.ConfigBooleanEntry;
|
||||||
import io.gitlab.jfronny.respackopts.data.ConfigBranch;
|
import io.gitlab.jfronny.respackopts.data.entry.ConfigBranch;
|
||||||
import io.gitlab.jfronny.respackopts.data.ConfigNumericEntry;
|
import io.gitlab.jfronny.respackopts.data.entry.ConfigNumericEntry;
|
||||||
import io.gitlab.jfronny.respackopts.data.Entry;
|
import io.gitlab.jfronny.respackopts.data.LegacyConfig;
|
||||||
import io.gitlab.jfronny.respackopts.data.in.LegacyConfig;
|
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.gitlab.jfronny.respackopts.gson;
|
package io.gitlab.jfronny.respackopts.gson;
|
||||||
|
|
||||||
import com.google.gson.*;
|
import com.google.gson.*;
|
||||||
import io.gitlab.jfronny.respackopts.data.ConfigNumericEntry;
|
import io.gitlab.jfronny.respackopts.data.entry.ConfigNumericEntry;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
|
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
package io.gitlab.jfronny.respackopts;
|
package io.gitlab.jfronny.respackopts.gui;
|
||||||
|
|
||||||
import io.gitlab.jfronny.respackopts.abstractions.JfConfigCategory;
|
import io.gitlab.jfronny.respackopts.Respackopts;
|
||||||
import io.gitlab.jfronny.respackopts.abstractions.JfConfigCategoryPrimary;
|
import io.gitlab.jfronny.respackopts.gui.abstractions.JfConfigCategory;
|
||||||
import io.gitlab.jfronny.respackopts.abstractions.JfConfigCategorySub;
|
import io.gitlab.jfronny.respackopts.gui.abstractions.JfConfigCategoryPrimary;
|
||||||
import io.gitlab.jfronny.respackopts.data.*;
|
import io.gitlab.jfronny.respackopts.gui.abstractions.JfConfigCategorySub;
|
||||||
|
import io.gitlab.jfronny.respackopts.data.entry.*;
|
||||||
import me.shedaniel.clothconfig2.api.ConfigBuilder;
|
import me.shedaniel.clothconfig2.api.ConfigBuilder;
|
||||||
import me.shedaniel.clothconfig2.api.ConfigCategory;
|
import me.shedaniel.clothconfig2.api.ConfigCategory;
|
||||||
import me.shedaniel.clothconfig2.api.ConfigEntryBuilder;
|
import me.shedaniel.clothconfig2.api.ConfigEntryBuilder;
|
@ -0,0 +1,7 @@
|
|||||||
|
package io.gitlab.jfronny.respackopts.gui.abstractions;
|
||||||
|
|
||||||
|
import me.shedaniel.clothconfig2.api.AbstractConfigListEntry;
|
||||||
|
|
||||||
|
public interface JfConfigCategory {
|
||||||
|
void addEntry(AbstractConfigListEntry<?> var1);
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package io.gitlab.jfronny.respackopts.abstractions;
|
package io.gitlab.jfronny.respackopts.gui.abstractions;
|
||||||
|
|
||||||
import me.shedaniel.clothconfig2.api.AbstractConfigListEntry;
|
import me.shedaniel.clothconfig2.api.AbstractConfigListEntry;
|
||||||
import me.shedaniel.clothconfig2.api.ConfigCategory;
|
import me.shedaniel.clothconfig2.api.ConfigCategory;
|
||||||
@ -10,8 +10,7 @@ public class JfConfigCategoryPrimary implements JfConfigCategory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JfConfigCategory addEntry(AbstractConfigListEntry var1) {
|
public void addEntry(AbstractConfigListEntry<?> var1) {
|
||||||
base.addEntry(var1);
|
base.addEntry(var1);
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package io.gitlab.jfronny.respackopts.abstractions;
|
package io.gitlab.jfronny.respackopts.gui.abstractions;
|
||||||
|
|
||||||
import me.shedaniel.clothconfig2.api.AbstractConfigListEntry;
|
import me.shedaniel.clothconfig2.api.AbstractConfigListEntry;
|
||||||
import me.shedaniel.clothconfig2.impl.builders.SubCategoryBuilder;
|
import me.shedaniel.clothconfig2.impl.builders.SubCategoryBuilder;
|
||||||
@ -9,8 +9,7 @@ public class JfConfigCategorySub implements JfConfigCategory {
|
|||||||
this.sc = sc;
|
this.sc = sc;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public JfConfigCategory addEntry(AbstractConfigListEntry var1) {
|
public void addEntry(AbstractConfigListEntry<?> var1) {
|
||||||
sc.add(var1);
|
sc.add(var1);
|
||||||
return this;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -3,8 +3,8 @@ package io.gitlab.jfronny.respackopts.integration;
|
|||||||
import grondag.frex.FrexInitializer;
|
import grondag.frex.FrexInitializer;
|
||||||
import grondag.frex.api.config.ShaderConfig;
|
import grondag.frex.api.config.ShaderConfig;
|
||||||
import io.gitlab.jfronny.respackopts.Respackopts;
|
import io.gitlab.jfronny.respackopts.Respackopts;
|
||||||
import io.gitlab.jfronny.respackopts.data.ConfigBranch;
|
import io.gitlab.jfronny.respackopts.data.entry.ConfigBranch;
|
||||||
import io.gitlab.jfronny.respackopts.filters.conditions.SyntaxError;
|
import io.gitlab.jfronny.respackopts.data.RpoError;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -18,8 +18,8 @@ public class FrexCompat implements FrexInitializer {
|
|||||||
for (Map.Entry<String, ConfigBranch> e : Respackopts.CONFIG_BRANCH.entrySet()) {
|
for (Map.Entry<String, ConfigBranch> e : Respackopts.CONFIG_BRANCH.entrySet()) {
|
||||||
try {
|
try {
|
||||||
e.getValue().buildShader(sb, e.getKey() + "_");
|
e.getValue().buildShader(sb, e.getKey() + "_");
|
||||||
} catch (SyntaxError syntaxError) {
|
} catch (RpoError rpoError) {
|
||||||
Respackopts.LOGGER.error(syntaxError);
|
Respackopts.LOGGER.error(rpoError);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sb.append("\n#define respackopts_loaded");
|
sb.append("\n#define respackopts_loaded");
|
||||||
|
@ -3,7 +3,7 @@ package io.gitlab.jfronny.respackopts.integration;
|
|||||||
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
||||||
import com.terraformersmc.modmenu.api.ModMenuApi;
|
import com.terraformersmc.modmenu.api.ModMenuApi;
|
||||||
import io.gitlab.jfronny.respackopts.Respackopts;
|
import io.gitlab.jfronny.respackopts.Respackopts;
|
||||||
import io.gitlab.jfronny.respackopts.abstractions.JfConfigCategoryPrimary;
|
import io.gitlab.jfronny.respackopts.gui.abstractions.JfConfigCategoryPrimary;
|
||||||
import me.shedaniel.clothconfig2.api.ConfigBuilder;
|
import me.shedaniel.clothconfig2.api.ConfigBuilder;
|
||||||
import me.shedaniel.clothconfig2.api.ConfigCategory;
|
import me.shedaniel.clothconfig2.api.ConfigCategory;
|
||||||
import me.shedaniel.clothconfig2.api.ConfigEntryBuilder;
|
import me.shedaniel.clothconfig2.api.ConfigEntryBuilder;
|
||||||
|
@ -2,7 +2,7 @@ package io.gitlab.jfronny.respackopts.mixin;
|
|||||||
|
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
import io.gitlab.jfronny.respackopts.Respackopts;
|
import io.gitlab.jfronny.respackopts.Respackopts;
|
||||||
import io.gitlab.jfronny.respackopts.data.in.Respackmeta;
|
import io.gitlab.jfronny.respackopts.data.Respackmeta;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.gui.DrawableHelper;
|
import net.minecraft.client.gui.DrawableHelper;
|
||||||
import net.minecraft.client.gui.screen.pack.PackListWidget;
|
import net.minecraft.client.gui.screen.pack.PackListWidget;
|
||||||
@ -19,7 +19,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
|||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||||
|
|
||||||
@Mixin(PackListWidget.ResourcePackEntry.class)
|
@Mixin(PackListWidget.ResourcePackEntry.class)
|
||||||
public abstract class ResourcePackEntryMixin extends AlwaysSelectedEntryListWidget.Entry<PackListWidget.ResourcePackEntry> {
|
public abstract class ResourcePackEntryMixin {
|
||||||
@Final @Shadow private PackListWidget widget;
|
@Final @Shadow private PackListWidget widget;
|
||||||
|
|
||||||
@Shadow protected abstract boolean isSelectable();
|
@Shadow protected abstract boolean isSelectable();
|
||||||
|
@ -2,8 +2,8 @@ package io.gitlab.jfronny.respackopts.mixin;
|
|||||||
|
|
||||||
import com.google.gson.*;
|
import com.google.gson.*;
|
||||||
import io.gitlab.jfronny.respackopts.Respackopts;
|
import io.gitlab.jfronny.respackopts.Respackopts;
|
||||||
import io.gitlab.jfronny.respackopts.data.SyncMode;
|
import io.gitlab.jfronny.respackopts.data.entry.SyncMode;
|
||||||
import io.gitlab.jfronny.respackopts.data.in.Respackmeta;
|
import io.gitlab.jfronny.respackopts.data.Respackmeta;
|
||||||
import net.minecraft.resource.ResourcePackManager;
|
import net.minecraft.resource.ResourcePackManager;
|
||||||
import net.minecraft.resource.ResourcePackProfile;
|
import net.minecraft.resource.ResourcePackProfile;
|
||||||
import net.minecraft.resource.ResourceType;
|
import net.minecraft.resource.ResourceType;
|
||||||
|
@ -9,8 +9,7 @@
|
|||||||
"OptionsScreenMixin",
|
"OptionsScreenMixin",
|
||||||
"ResourcePackEntryMixin",
|
"ResourcePackEntryMixin",
|
||||||
"ResourcePackManagerMixin",
|
"ResourcePackManagerMixin",
|
||||||
"conditions.DirectoryResourcePackMixin",
|
"ResourcePackConditionMixin"
|
||||||
"conditions.ZipResourcePackMixin"
|
|
||||||
],
|
],
|
||||||
"injectors": {
|
"injectors": {
|
||||||
"defaultRequire": 1
|
"defaultRequire": 1
|
||||||
|
Loading…
Reference in New Issue
Block a user