Move some things around

This commit is contained in:
JFronny 2021-06-10 16:07:22 +02:00
parent a3721174d9
commit 2393c48913
No known key found for this signature in database
GPG Key ID: BEC5ACBBD4EE17E5
38 changed files with 98 additions and 93 deletions

View File

@ -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

View File

@ -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();

View File

@ -1,7 +0,0 @@
package io.gitlab.jfronny.respackopts.abstractions;
import me.shedaniel.clothconfig2.api.AbstractConfigListEntry;
public interface JfConfigCategory {
JfConfigCategory addEntry(AbstractConfigListEntry var1);
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -0,0 +1,7 @@
package io.gitlab.jfronny.respackopts.data;
public class RpoError extends Exception {
public RpoError(String message) {
super(message);
}
}

View File

@ -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) {

View File

@ -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");
} }
} }
} }

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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();
} }

View File

@ -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");
} }
} }

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -1,7 +0,0 @@
package io.gitlab.jfronny.respackopts.filters.conditions;
public class SyntaxError extends Exception {
public SyntaxError(String message) {
super(message);
}
}

View File

@ -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))

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -0,0 +1,7 @@
package io.gitlab.jfronny.respackopts.gui.abstractions;
import me.shedaniel.clothconfig2.api.AbstractConfigListEntry;
public interface JfConfigCategory {
void addEntry(AbstractConfigListEntry<?> var1);
}

View File

@ -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;
} }
} }

View File

@ -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;
} }
} }

View File

@ -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");

View File

@ -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;

View File

@ -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();

View File

@ -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;

View File

@ -9,8 +9,7 @@
"OptionsScreenMixin", "OptionsScreenMixin",
"ResourcePackEntryMixin", "ResourcePackEntryMixin",
"ResourcePackManagerMixin", "ResourcePackManagerMixin",
"conditions.DirectoryResourcePackMixin", "ResourcePackConditionMixin"
"conditions.ZipResourcePackMixin"
], ],
"injectors": { "injectors": {
"defaultRequire": 1 "defaultRequire": 1