Config refactor

This commit is contained in:
Aleksey 2020-11-28 15:38:25 +03:00
parent 7f2bad86ca
commit 0f12a477e0
10 changed files with 408 additions and 265 deletions

View file

@ -4,7 +4,6 @@ import org.jetbrains.annotations.Nullable;
import com.google.gson.JsonObject;
import net.minecraft.util.JsonHelper;
import ru.betterend.BetterEnd;
import ru.betterend.config.ConfigKeeper.BooleanEntry;
import ru.betterend.config.ConfigKeeper.Entry;
@ -22,25 +21,23 @@ public abstract class Config {
protected abstract void registerEntries();
@Nullable
public <E extends Entry<?>> E getEntry(String category, String key) {
return this.configKeeper.getEntry(category, key);
public <E extends Entry<?>> E getEntry(ConfigKey key) {
return this.configKeeper.getEntry(key);
}
@Nullable
public <T> T getDefault(String category, String key) {
Entry<T> entry = configKeeper.getEntry(category, key);
public <T> T getDefault(ConfigKey key) {
Entry<T> entry = configKeeper.getEntry(key);
return entry != null ? entry.getDefault() : null;
}
public String getString(String category, String key, String defaultValue) {
String str = configKeeper.getValue(category, key);
public String getString(ConfigKey key, String defaultValue) {
String str = configKeeper.getValue(key);
if (str == null) {
StringEntry entry = this.configKeeper.registerEntry(category, key, new StringEntry(defaultValue));
if (settings != null && settings.has(category)) {
JsonObject params = JsonHelper.getObject(settings, category);
key += " [default: " + defaultValue + "]";
if (params.has(key)) {
entry.fromString(JsonHelper.getString(params, key));
StringEntry entry = this.configKeeper.registerEntry(key, new StringEntry(defaultValue));
if (settings != null) {
if (settings != null) {
this.configKeeper.loadFromJson(settings, key, entry);
return entry.getValue();
}
}
@ -48,35 +45,30 @@ public abstract class Config {
return str != null ? str : defaultValue;
}
public String getString(String category, String key) {
String str = configKeeper.getValue(category, key);
public String getString(ConfigKey key) {
String str = configKeeper.getValue(key);
return str != null ? str : "";
}
public boolean setString(String category, String key, String value) {
public boolean setString(ConfigKey key, String value) {
try {
StringEntry entry = configKeeper.getEntry(category, key);
StringEntry entry = configKeeper.getEntry(key);
if (entry == null) return false;
entry.setValue(value);
this.configKeeper.set(category, key, entry);
return true;
} catch (NullPointerException ex) {
BetterEnd.LOGGER.catching(ex);
}
return false;
}
public int getInt(String category, String key, int defaultValue) {
Integer val = configKeeper.getValue(category, key);
public int getInt(ConfigKey key, int defaultValue) {
Integer val = configKeeper.getValue(key);
if (val == null) {
IntegerEntry entry = this.configKeeper.registerEntry(category, key, new IntegerEntry(defaultValue));
if (settings != null && settings.has(category)) {
JsonObject params = JsonHelper.getObject(settings, category);
key += " [default: " + defaultValue + "]";
if (params.has(key)) {
entry.fromString(JsonHelper.getString(params, key));
IntegerEntry entry = this.configKeeper.registerEntry(key, new IntegerEntry(defaultValue));
if (settings != null) {
if (settings != null) {
this.configKeeper.loadFromJson(settings, key, entry);
return entry.getValue();
}
}
@ -84,50 +76,42 @@ public abstract class Config {
return val != null ? val : defaultValue;
}
public int getInt(String category, String key) {
Integer val = configKeeper.getValue(category, key);
public int getInt(ConfigKey key) {
Integer val = configKeeper.getValue(key);
return val != null ? val : 0;
}
public boolean setInt(String category, String key, int value) {
public boolean setInt(ConfigKey key, int value) {
try {
IntegerEntry entry = configKeeper.getEntry(category, key);
IntegerEntry entry = configKeeper.getEntry(key);
if (entry == null) return false;
entry.setValue(value);
this.configKeeper.set(category, key, entry);
return true;
} catch (NullPointerException ex) {
BetterEnd.LOGGER.catching(ex);
}
return false;
}
public <T extends Comparable<T>> boolean setRanged(String category, String key, T value) {
public <T extends Comparable<T>> boolean setRanged(ConfigKey key, T value) {
try {
RangeEntry<T> entry = configKeeper.getEntry(category, key);
RangeEntry<T> entry = configKeeper.getEntry(key);
if (entry == null) return false;
entry.setValue(value);
this.configKeeper.set(category, key, entry);
return true;
} catch (NullPointerException | ClassCastException ex) {
BetterEnd.LOGGER.catching(ex);
}
return false;
}
public float getFloat(String category, String key, float defaultValue) {
Float val = configKeeper.getValue(category, key);
public float getFloat(ConfigKey key, float defaultValue) {
Float val = configKeeper.getValue(key);
if (val == null) {
FloatEntry entry = this.configKeeper.registerEntry(category, key, new FloatEntry(defaultValue));
if (settings != null && settings.has(category)) {
JsonObject params = JsonHelper.getObject(settings, category);
key += " [default: " + defaultValue + "]";
if (params.has(key)) {
entry.fromString(JsonHelper.getString(params, key));
FloatEntry entry = this.configKeeper.registerEntry(key, new FloatEntry(defaultValue));
if (settings != null) {
if (settings != null) {
this.configKeeper.loadFromJson(settings, key, entry);
return entry.getValue();
}
}
@ -135,59 +119,49 @@ public abstract class Config {
return val != null ? val : defaultValue;
}
public float getFloat(String category, String key) {
Float val = configKeeper.getValue(category, key);
public float getFloat(ConfigKey key) {
Float val = configKeeper.getValue(key);
return val != null ? val : 0.0F;
}
public boolean setFloat(String category, String key, float value) {
public boolean setFloat(ConfigKey key, float value) {
try {
FloatEntry entry = configKeeper.getEntry(category, key);
FloatEntry entry = configKeeper.getEntry(key);
if (entry == null) return false;
entry.setValue(value);
this.configKeeper.set(category, key, entry);
return true;
} catch (NullPointerException ex) {
BetterEnd.LOGGER.catching(ex);
}
return false;
}
public boolean getBoolean(String category, String key, boolean defaultValue) {
Boolean val = configKeeper.getValue(category, key);
public boolean getBoolean(ConfigKey key, boolean defaultValue) {
Boolean val = configKeeper.getValue(key);
if (val == null) {
BooleanEntry entry = this.configKeeper.registerEntry(category, key, new BooleanEntry(defaultValue));
if (settings != null && settings.has(category)) {
JsonObject params = JsonHelper.getObject(settings, category);
key += " [default: " + defaultValue + "]";
if (params.has(key)) {
entry.fromString(JsonHelper.getString(params, key));
return entry.getValue();
}
BooleanEntry entry = this.configKeeper.registerEntry(key, new BooleanEntry(defaultValue));
if (settings != null) {
this.configKeeper.loadFromJson(settings, key, entry);
return entry.getValue();
}
}
return val != null ? val : defaultValue;
}
public boolean getBoolean(String category, String key) {
Boolean val = configKeeper.getValue(category, key);
public boolean getBoolean(ConfigKey key) {
Boolean val = configKeeper.getValue(key);
return val != null ? val : false;
}
public boolean setBoolean(String category, String key, boolean value) {
public boolean setBoolean(ConfigKey key, boolean value) {
try {
BooleanEntry entry = configKeeper.getEntry(category, key);
BooleanEntry entry = configKeeper.getEntry(key);
if (entry == null) return false;
entry.setValue(value);
this.configKeeper.set(category, key, entry);
return true;
} catch (NullPointerException ex) {
BetterEnd.LOGGER.catching(ex);
}
return false;
}
}