Merge branch 'master' of https://github.com/paulevsGitch/BetterEnd.git
This commit is contained in:
commit
82fa9b1047
14 changed files with 189 additions and 344 deletions
|
@ -2,8 +2,6 @@ package ru.betterend.config;
|
||||||
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import com.google.gson.JsonObject;
|
|
||||||
|
|
||||||
import ru.betterend.BetterEnd;
|
import ru.betterend.BetterEnd;
|
||||||
import ru.betterend.config.ConfigKeeper.BooleanEntry;
|
import ru.betterend.config.ConfigKeeper.BooleanEntry;
|
||||||
import ru.betterend.config.ConfigKeeper.Entry;
|
import ru.betterend.config.ConfigKeeper.Entry;
|
||||||
|
@ -15,20 +13,16 @@ import ru.betterend.config.ConfigKeeper.StringEntry;
|
||||||
public abstract class Config {
|
public abstract class Config {
|
||||||
|
|
||||||
protected final ConfigKeeper keeper;
|
protected final ConfigKeeper keeper;
|
||||||
protected final ConfigWriter writer;
|
|
||||||
|
|
||||||
protected abstract void registerEntries();
|
protected abstract void registerEntries();
|
||||||
|
|
||||||
public Config(String group) {
|
public Config(String group) {
|
||||||
this.writer = new ConfigWriter(group);
|
this.keeper = new ConfigKeeper(group);
|
||||||
JsonObject settings = writer.load();
|
|
||||||
this.keeper = new ConfigKeeper(settings);
|
|
||||||
this.registerEntries();
|
this.registerEntries();
|
||||||
this.writer.save();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveChanges() {
|
public void saveChanges() {
|
||||||
this.writer.save();
|
this.keeper.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|
|
@ -9,7 +9,6 @@ import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.google.common.reflect.TypeToken;
|
import com.google.common.reflect.TypeToken;
|
||||||
import com.google.gson.JsonElement;
|
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
|
|
||||||
import net.minecraft.util.JsonHelper;
|
import net.minecraft.util.JsonHelper;
|
||||||
|
@ -18,15 +17,27 @@ import ru.betterend.util.JsonFactory;
|
||||||
public final class ConfigKeeper {
|
public final class ConfigKeeper {
|
||||||
|
|
||||||
private Map<ConfigKey, Entry<?>> configEntries = Maps.newHashMap();
|
private Map<ConfigKey, Entry<?>> configEntries = Maps.newHashMap();
|
||||||
private final JsonObject configObject;
|
|
||||||
|
|
||||||
public ConfigKeeper(JsonObject config) {
|
private final JsonObject configObject;
|
||||||
this.configObject = config;
|
private final ConfigWriter writer;
|
||||||
|
|
||||||
|
private boolean changed = false;
|
||||||
|
|
||||||
|
public ConfigKeeper(String group) {
|
||||||
|
this.writer = new ConfigWriter(group);
|
||||||
|
this.configObject = writer.load();
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T, E extends Entry<T>> void storeValue(ConfigKey key, E entry, T value) {
|
public void save() {
|
||||||
if (configObject == null) return;
|
if (!changed) return;
|
||||||
|
this.writer.save();
|
||||||
|
this.changed = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private <T, E extends Entry<T>> void initializeEntry(ConfigKey key, E entry) {
|
||||||
|
if (configObject == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
String group = key.getOwner();
|
String group = key.getOwner();
|
||||||
JsonObject jsonGroup;
|
JsonObject jsonGroup;
|
||||||
if (configObject.has(group)) {
|
if (configObject.has(group)) {
|
||||||
|
@ -45,33 +56,24 @@ public final class ConfigKeeper {
|
||||||
}
|
}
|
||||||
String paramKey = key.getEntry();
|
String paramKey = key.getEntry();
|
||||||
paramKey += " [default: " + entry.getDefault() + "]";
|
paramKey += " [default: " + entry.getDefault() + "]";
|
||||||
entry.toJson(jsonCategory, paramKey, value);
|
this.changed = entry.setLocation(jsonCategory, paramKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T, E extends Entry<T>> T getValue(ConfigKey key, E entry) {
|
private <T, E extends Entry<T>> void storeValue(E entry, T value) {
|
||||||
if (configObject == null) {
|
if (configObject == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
T val = entry.getValue();
|
||||||
|
if (value.equals(val)) return;
|
||||||
|
entry.toJson(value);
|
||||||
|
this.changed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private <T, E extends Entry<T>> T getValue(E entry) {
|
||||||
|
if (!entry.hasLocation()) {
|
||||||
return entry.getDefault();
|
return entry.getDefault();
|
||||||
}
|
}
|
||||||
|
return entry.fromJson();
|
||||||
String group = key.getOwner();
|
|
||||||
if (!configObject.has(group)) {
|
|
||||||
return entry.getDefault();
|
|
||||||
}
|
|
||||||
|
|
||||||
JsonObject jsonGroup = JsonHelper.getObject(configObject, group);
|
|
||||||
String category = key.getCategory();
|
|
||||||
if (!jsonGroup.has(category)) {
|
|
||||||
return entry.getDefault();
|
|
||||||
}
|
|
||||||
|
|
||||||
JsonObject jsonCategory = JsonHelper.getObject(jsonGroup, category);
|
|
||||||
String paramKey = key.getEntry();
|
|
||||||
paramKey += " [default: " + entry.getDefault() + "]";
|
|
||||||
if (!jsonCategory.has(paramKey)) {
|
|
||||||
return entry.getDefault();
|
|
||||||
}
|
|
||||||
|
|
||||||
return entry.fromJson(jsonCategory.get(paramKey));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@ -93,9 +95,9 @@ public final class ConfigKeeper {
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T, E extends Entry<T>> E registerEntry(ConfigKey key, E entry) {
|
public <T, E extends Entry<T>> E registerEntry(ConfigKey key, E entry) {
|
||||||
entry.setWriter(value -> this.storeValue(key, entry, value));
|
entry.setWriter(value -> this.storeValue(entry, value));
|
||||||
entry.setReader(() -> { return this.getValue(key, entry); });
|
entry.setReader(() -> { return this.getValue(entry); });
|
||||||
this.storeValue(key, entry, entry.getValue());
|
this.initializeEntry(key, entry);
|
||||||
this.configEntries.put(key, entry);
|
this.configEntries.put(key, entry);
|
||||||
return entry;
|
return entry;
|
||||||
}
|
}
|
||||||
|
@ -107,13 +109,13 @@ public final class ConfigKeeper {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean fromJson(JsonElement json) {
|
public Boolean fromJson() {
|
||||||
return json.getAsBoolean();
|
return JsonHelper.getBoolean(location, key, defaultValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toJson(JsonObject json, String key, Boolean value) {
|
public void toJson(Boolean value) {
|
||||||
json.addProperty(key, value);
|
this.location.addProperty(key, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -124,13 +126,13 @@ public final class ConfigKeeper {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Float fromJson(JsonElement json) {
|
public Float fromJson() {
|
||||||
return json.getAsFloat();
|
return JsonHelper.getFloat(location, key, defaultValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toJson(JsonObject json, String key, Float value) {
|
public void toJson(Float value) {
|
||||||
json.addProperty(key, value);
|
this.location.addProperty(key, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,13 +143,13 @@ public final class ConfigKeeper {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Float fromJson(JsonElement json) {
|
public Float fromJson() {
|
||||||
return json.getAsFloat();
|
return JsonHelper.getFloat(location, key, defaultValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toJson(JsonObject json, String key, Float value) {
|
public void toJson(Float value) {
|
||||||
json.addProperty(key, value);
|
this.location.addProperty(key, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -163,13 +165,13 @@ public final class ConfigKeeper {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Integer fromJson(JsonElement json) {
|
public Integer fromJson() {
|
||||||
return json.getAsInt();
|
return JsonHelper.getInt(location, key, defaultValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toJson(JsonObject json, String key, Integer value) {
|
public void toJson(Integer value) {
|
||||||
json.addProperty(key, value);
|
this.location.addProperty(key, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -180,13 +182,13 @@ public final class ConfigKeeper {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Integer fromJson(JsonElement json) {
|
public Integer fromJson() {
|
||||||
return json.getAsInt();
|
return JsonHelper.getInt(location, key, defaultValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toJson(JsonObject json, String key, Integer value) {
|
public void toJson(Integer value) {
|
||||||
json.addProperty(key, value);
|
this.location.addProperty(key, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -197,13 +199,13 @@ public final class ConfigKeeper {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String fromJson(JsonElement json) {
|
public String fromJson() {
|
||||||
return json.getAsString();
|
return JsonHelper.getString(location, key, defaultValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toJson(JsonObject json, String key, String value) {
|
public void toJson(String value) {
|
||||||
json.addProperty(key, value);
|
this.location.addProperty(key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -226,13 +228,13 @@ public final class ConfigKeeper {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public T fromJson(JsonElement json) {
|
public T fromJson() {
|
||||||
return JsonFactory.GSON.fromJson(json, type);
|
return JsonFactory.GSON.fromJson(location.get(key), type);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toJson(JsonObject json, String key, T value) {
|
public void toJson(T value) {
|
||||||
json.addProperty(key, JsonFactory.GSON.toJson(json, type));
|
location.addProperty(key, JsonFactory.GSON.toJson(value, type));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -265,9 +267,11 @@ public final class ConfigKeeper {
|
||||||
protected final T defaultValue;
|
protected final T defaultValue;
|
||||||
protected Consumer<T> writer;
|
protected Consumer<T> writer;
|
||||||
protected Supplier<T> reader;
|
protected Supplier<T> reader;
|
||||||
|
protected JsonObject location;
|
||||||
|
protected String key;
|
||||||
|
|
||||||
public abstract T fromJson(JsonElement json);
|
public abstract T fromJson();
|
||||||
public abstract void toJson(JsonObject json, String key, T value);
|
public abstract void toJson(T value);
|
||||||
|
|
||||||
public Entry (T defaultValue) {
|
public Entry (T defaultValue) {
|
||||||
this.defaultValue = defaultValue;
|
this.defaultValue = defaultValue;
|
||||||
|
@ -281,6 +285,21 @@ public final class ConfigKeeper {
|
||||||
this.reader = reader;
|
this.reader = reader;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected boolean setLocation(JsonObject location, String key) {
|
||||||
|
this.location = location;
|
||||||
|
this.key = key;
|
||||||
|
if (!location.has(key)) {
|
||||||
|
this.toJson(defaultValue);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected boolean hasLocation() {
|
||||||
|
return this.location != null &&
|
||||||
|
this.key != null;
|
||||||
|
}
|
||||||
|
|
||||||
public T getValue() {
|
public T getValue() {
|
||||||
return this.reader.get();
|
return this.reader.get();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
package ru.betterend.config;
|
package ru.betterend.config;
|
||||||
|
|
||||||
public class Configs {
|
public class Configs {
|
||||||
public static final IdConfig ITEM_CONFIG = new CategoryConfig("items");
|
|
||||||
public static final IdConfig BLOCK_CONFIG = new CategoryConfig("blocks");
|
|
||||||
public static final IdConfig ENTITY_CONFIG = new CategoryConfig("entities");
|
public static final IdConfig ENTITY_CONFIG = new CategoryConfig("entities");
|
||||||
|
public static final IdConfig BLOCK_CONFIG = new CategoryConfig("blocks");
|
||||||
|
public static final SimpleConfig GENERAL = new SimpleConfig("settings");
|
||||||
|
public static final IdConfig ITEM_CONFIG = new CategoryConfig("items");
|
||||||
public static final IdConfig BIOME_CONFIG = new EntryConfig("biomes");
|
public static final IdConfig BIOME_CONFIG = new EntryConfig("biomes");
|
||||||
public static final SimpleConfig GENERATOR_CONFIG = new SimpleConfig("generator");
|
|
||||||
|
|
||||||
public static void saveConfigs() {
|
public static void saveConfigs() {
|
||||||
ITEM_CONFIG.saveChanges();
|
ENTITY_CONFIG.saveChanges();
|
||||||
BLOCK_CONFIG.saveChanges();
|
BLOCK_CONFIG.saveChanges();
|
||||||
BIOME_CONFIG.saveChanges();
|
BIOME_CONFIG.saveChanges();
|
||||||
ENTITY_CONFIG.saveChanges();
|
ITEM_CONFIG.saveChanges();
|
||||||
GENERATOR_CONFIG.save();
|
GENERAL.saveChanges();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,256 +1,88 @@
|
||||||
package ru.betterend.config;
|
package ru.betterend.config;
|
||||||
|
|
||||||
import java.io.File;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import java.io.FileNotFoundException;
|
|
||||||
import java.io.FileReader;
|
import ru.betterend.BetterEnd;
|
||||||
import java.io.FileWriter;
|
import ru.betterend.config.ConfigKeeper.Entry;
|
||||||
import java.io.IOException;
|
import ru.betterend.config.ConfigKeeper.FloatRange;
|
||||||
import java.io.Reader;
|
import ru.betterend.config.ConfigKeeper.IntegerRange;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Iterator;
|
public class SimpleConfig extends Config {
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map.Entry;
|
public SimpleConfig(String group) {
|
||||||
|
super(group);
|
||||||
import com.google.gson.Gson;
|
}
|
||||||
import com.google.gson.GsonBuilder;
|
|
||||||
import com.google.gson.JsonArray;
|
@Override
|
||||||
import com.google.gson.JsonElement;
|
protected void registerEntries() {}
|
||||||
import com.google.gson.JsonObject;
|
|
||||||
|
protected ConfigKey createKey(String category, String key) {
|
||||||
import ru.betterend.BetterEnd;
|
return new ConfigKey(BetterEnd.MOD_ID, category, key);
|
||||||
|
}
|
||||||
public final class SimpleConfig {
|
|
||||||
private boolean rewrite = false;
|
@Nullable
|
||||||
private final String name;
|
public <T, E extends Entry<T>> E getEntry(String category, String key, Class<E> type) {
|
||||||
private JsonObject config;
|
return this.getEntry(createKey(category, key), type);
|
||||||
|
}
|
||||||
public SimpleConfig(String name) {
|
|
||||||
this.name = name;
|
@Nullable
|
||||||
}
|
public <T, E extends Entry<T>> T getDefault(String category, String key, Class<E> type) {
|
||||||
|
return this.getDefault(createKey(category, key), type);
|
||||||
private void load() {
|
}
|
||||||
if (config == null) {
|
|
||||||
File file = getFolder();
|
public String getString(String category, String key, String defaultValue) {
|
||||||
if (!file.exists())
|
return this.getString(createKey(category, key), defaultValue);
|
||||||
file.mkdirs();
|
}
|
||||||
file = getFile();
|
|
||||||
if (file.exists()) {
|
public String getString(String category, String key) {
|
||||||
Gson gson = new Gson();
|
return this.getString(createKey(category, key));
|
||||||
try {
|
}
|
||||||
Reader reader = new FileReader(file);
|
|
||||||
config = gson.fromJson(reader, JsonObject.class);
|
public boolean setString(String category, String key, String value) {
|
||||||
if (config == null) {
|
return this.setString(createKey(category, key), value);
|
||||||
config = new JsonObject();
|
}
|
||||||
rewrite = true;
|
|
||||||
}
|
public int getInt(String category, String key, int defaultValue) {
|
||||||
else {
|
return this.getInt(createKey(category, key), defaultValue);
|
||||||
rewrite = false;
|
}
|
||||||
}
|
|
||||||
}
|
public int getInt(String category, String key) {
|
||||||
catch (FileNotFoundException e) {
|
return this.getInt(createKey(category, key));
|
||||||
e.printStackTrace();
|
}
|
||||||
config = new JsonObject();
|
|
||||||
rewrite = true;
|
public boolean setInt(String category, String key, int value) {
|
||||||
}
|
return this.setInt(createKey(category, key), value);
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
config = new JsonObject();
|
public boolean setRangedInt(String category, String key, int value) {
|
||||||
rewrite = true;
|
return this.setRanged(createKey(category, key), value, IntegerRange.class);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
public boolean setRangedFloat(String category, String key, float value) {
|
||||||
|
return this.setRanged(createKey(category, key), value, FloatRange.class);
|
||||||
public void save() {
|
}
|
||||||
if (rewrite) {
|
|
||||||
File file = getFolder();
|
public float getFloat(String category, String key, float defaultValue) {
|
||||||
if (!file.exists())
|
return this.getFloat(createKey(category, key), defaultValue);
|
||||||
file.mkdirs();
|
}
|
||||||
file = getFile();
|
|
||||||
Gson gson = new GsonBuilder().setPrettyPrinting().create();
|
public float getFloat(String category, String key) {
|
||||||
try {
|
return this.getFloat(createKey(category, key));
|
||||||
FileWriter writer = new FileWriter(file);
|
}
|
||||||
String gstring = gson.toJson(config);
|
|
||||||
writer.write(gstring);
|
public boolean setFloat(String category, String key, float value) {
|
||||||
writer.flush();
|
return this.setFloat(createKey(category, key), value);
|
||||||
writer.close();
|
}
|
||||||
rewrite = false;
|
|
||||||
}
|
public boolean getBoolean(String category, String key, boolean defaultValue) {
|
||||||
catch (IOException e) {
|
return this.getBoolean(createKey(category, key), defaultValue);
|
||||||
e.printStackTrace();
|
}
|
||||||
}
|
|
||||||
}
|
public boolean getBoolean(String category, String key) {
|
||||||
}
|
return this.getBoolean(createKey(category, key));
|
||||||
|
}
|
||||||
private File getFile() {
|
|
||||||
return new File(String.format("./config/%s/%s.json", BetterEnd.MOD_ID, name));
|
public boolean setBoolean(String category, String key, boolean value) {
|
||||||
}
|
return this.setBoolean(createKey(category, key), value);
|
||||||
|
}
|
||||||
private File getFolder() {
|
}
|
||||||
return new File("./config/" + BetterEnd.MOD_ID + "/");
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean getBoolean(String groups, String name, boolean def) {
|
|
||||||
load();
|
|
||||||
name += "[def: " + def + "]";
|
|
||||||
|
|
||||||
JsonObject group = getGroup(groups);
|
|
||||||
JsonElement element = group.get(name);
|
|
||||||
|
|
||||||
if (element != null) {
|
|
||||||
return element.getAsBoolean();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
group.addProperty(name, def);
|
|
||||||
rewrite = true;
|
|
||||||
return def;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBoolean(String groups, String name, boolean def, boolean value) {
|
|
||||||
name += "[def: " + def + "]";
|
|
||||||
|
|
||||||
JsonObject group = getGroup(groups);
|
|
||||||
group.addProperty(name, value);
|
|
||||||
|
|
||||||
rewrite = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getFloat(String groups, String name, float def) {
|
|
||||||
load();
|
|
||||||
name += "[def: " + def + "]";
|
|
||||||
|
|
||||||
JsonObject group = getGroup(groups);
|
|
||||||
JsonElement element = group.get(name);
|
|
||||||
|
|
||||||
if (element != null) {
|
|
||||||
return element.getAsFloat();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
group.addProperty(name, def);
|
|
||||||
rewrite = true;
|
|
||||||
return def;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFloat(String groups, String name, float def, float value) {
|
|
||||||
name += "[def: " + def + "]";
|
|
||||||
|
|
||||||
JsonObject group = getGroup(groups);
|
|
||||||
group.addProperty(name, value);
|
|
||||||
|
|
||||||
rewrite = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getInt(String groups, String name, int def) {
|
|
||||||
load();
|
|
||||||
name += "[def: " + def + "]";
|
|
||||||
|
|
||||||
JsonObject group = getGroup(groups);
|
|
||||||
JsonElement element = group.get(name);
|
|
||||||
|
|
||||||
if (element != null) {
|
|
||||||
return element.getAsInt();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
group.addProperty(name, def);
|
|
||||||
rewrite = true;
|
|
||||||
return def;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getString(String groups, String name, String def) {
|
|
||||||
load();
|
|
||||||
name += "[def: " + def + "]";
|
|
||||||
|
|
||||||
JsonObject group = getGroup(groups);
|
|
||||||
JsonElement element = group.get(name);
|
|
||||||
|
|
||||||
if (element != null) {
|
|
||||||
return element.getAsString();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
group.addProperty(name, def);
|
|
||||||
rewrite = true;
|
|
||||||
return def;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setInt(String groups, String name, int def, int value) {
|
|
||||||
name += "[def: " + def + "]";
|
|
||||||
|
|
||||||
JsonObject group = getGroup(groups);
|
|
||||||
group.addProperty(name, value);
|
|
||||||
|
|
||||||
rewrite = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStringLoad(String groups, String name, String value) {
|
|
||||||
JsonObject group = getGroup(groups);
|
|
||||||
group.addProperty(name, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String[] getStringArray(String groups, String name, String[] def) {
|
|
||||||
load();
|
|
||||||
|
|
||||||
JsonObject group = getGroup(groups);
|
|
||||||
JsonElement element = group.get(name);
|
|
||||||
|
|
||||||
if (element != null) {
|
|
||||||
return toStringArray(element.getAsJsonArray());
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
group.add(name, toJsonArray(def));
|
|
||||||
rewrite = true;
|
|
||||||
return def;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private String[] toStringArray(JsonArray array) {
|
|
||||||
load();
|
|
||||||
String[] result = new String[array.size()];
|
|
||||||
for (int i = 0; i < array.size(); i++)
|
|
||||||
result[i] = array.get(i).getAsString();
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
private JsonArray toJsonArray(String[] array) {
|
|
||||||
load();
|
|
||||||
JsonArray result = new JsonArray();
|
|
||||||
for (String s : array)
|
|
||||||
result.add(s);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public JsonObject getGroup(String groups) {
|
|
||||||
JsonObject obj = config;
|
|
||||||
String[] groupsArr = groups.split("\\.");
|
|
||||||
for (String group : groupsArr) {
|
|
||||||
JsonObject jGroup = obj.getAsJsonObject(group);
|
|
||||||
if (jGroup == null) {
|
|
||||||
jGroup = new JsonObject();
|
|
||||||
obj.add(group, jGroup);
|
|
||||||
}
|
|
||||||
obj = jGroup;
|
|
||||||
}
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> getBaseGroups() {
|
|
||||||
List<String> groups = new ArrayList<String>();
|
|
||||||
Iterator<Entry<String, JsonElement>> iterator = config.entrySet().iterator();
|
|
||||||
iterator.forEachRemaining((element) -> {
|
|
||||||
groups.add(element.getKey());
|
|
||||||
});
|
|
||||||
return groups;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Entry<String, JsonElement>> getGroupMembers(JsonObject group) {
|
|
||||||
List<Entry<String, JsonElement>> result = new ArrayList<Entry<String, JsonElement>>();
|
|
||||||
result.addAll(group.entrySet());
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void markToSave() {
|
|
||||||
rewrite = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package ru.betterend.compat.rei;
|
package ru.betterend.integration.rei;
|
||||||
|
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.util.List;
|
import java.util.List;
|
|
@ -1,4 +1,4 @@
|
||||||
package ru.betterend.compat.rei;
|
package ru.betterend.integration.rei;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
|
@ -1,4 +1,4 @@
|
||||||
package ru.betterend.compat.rei;
|
package ru.betterend.integration.rei;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
|
@ -1,4 +1,4 @@
|
||||||
package ru.betterend.compat.rei;
|
package ru.betterend.integration.rei;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
|
@ -1,4 +1,4 @@
|
||||||
package ru.betterend.compat.rei;
|
package ru.betterend.integration.rei;
|
||||||
|
|
||||||
import me.shedaniel.rei.plugin.containers.CraftingContainerInfoWrapper;
|
import me.shedaniel.rei.plugin.containers.CraftingContainerInfoWrapper;
|
||||||
import me.shedaniel.rei.server.ContainerInfoHandler;
|
import me.shedaniel.rei.server.ContainerInfoHandler;
|
|
@ -1,4 +1,4 @@
|
||||||
package ru.betterend.compat.rei;
|
package ru.betterend.integration.rei;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package ru.betterend.compat.rei;
|
package ru.betterend.integration.rei;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
|
@ -1,4 +1,4 @@
|
||||||
package ru.betterend.compat.rei;
|
package ru.betterend.integration.rei;
|
||||||
|
|
||||||
import me.shedaniel.rei.api.EntryStack;
|
import me.shedaniel.rei.api.EntryStack;
|
||||||
import me.shedaniel.rei.api.RecipeHelper;
|
import me.shedaniel.rei.api.RecipeHelper;
|
|
@ -22,8 +22,8 @@ public class TerrainGenerator {
|
||||||
private static boolean noRingVoid;
|
private static boolean noRingVoid;
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
newGenerator = Configs.GENERATOR_CONFIG.getBoolean("generator", "useNewGenerator", false);
|
newGenerator = Configs.GENERAL.getBoolean("generator", "useNewGenerator", false);
|
||||||
noRingVoid = Configs.GENERATOR_CONFIG.getBoolean("generator", "noRingVoid", false);
|
noRingVoid = Configs.GENERAL.getBoolean("generator", "noRingVoid", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void initNoise(long seed) {
|
public static void initNoise(long seed) {
|
||||||
|
|
|
@ -26,10 +26,10 @@
|
||||||
"ru.betterend.client.BetterEndClient"
|
"ru.betterend.client.BetterEndClient"
|
||||||
],
|
],
|
||||||
"rei_plugins": [
|
"rei_plugins": [
|
||||||
"ru.betterend.compat.rei.REIPlugin"
|
"ru.betterend.integration.rei.REIPlugin"
|
||||||
],
|
],
|
||||||
"rei_containers": [
|
"rei_containers": [
|
||||||
"ru.betterend.compat.rei.REIContainer"
|
"ru.betterend.integration.rei.REIContainer"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"mixins": [
|
"mixins": [
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue