Document valid values for MultipleChoiceSettings in config file
This commit is contained in:
@@ -2,6 +2,7 @@ package com.replaymod.core;
|
|||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.GsonBuilder;
|
import com.google.gson.GsonBuilder;
|
||||||
|
import com.google.gson.JsonArray;
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import com.google.gson.JsonPrimitive;
|
import com.google.gson.JsonPrimitive;
|
||||||
@@ -164,6 +165,15 @@ class SettingsRegistryBackend {
|
|||||||
}
|
}
|
||||||
if (value instanceof String) {
|
if (value instanceof String) {
|
||||||
category.addProperty(key.getKey(), (String) value);
|
category.addProperty(key.getKey(), (String) value);
|
||||||
|
if (key instanceof SettingsRegistry.MultipleChoiceSettingKey) {
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
List<String> choices = ((SettingsRegistry.MultipleChoiceSettingKey<String>) key).getChoices();
|
||||||
|
JsonArray array = new JsonArray();
|
||||||
|
for (String choice : choices) {
|
||||||
|
array.add(choice);
|
||||||
|
}
|
||||||
|
category.add(key.getKey() + "_valid_values", array);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Gson gson = new GsonBuilder().setPrettyPrinting().create();
|
Gson gson = new GsonBuilder().setPrettyPrinting().create();
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
package com.replaymod.core;
|
package com.replaymod.core;
|
||||||
|
|
||||||
import net.minecraftforge.common.config.Configuration;
|
import net.minecraftforge.common.config.Configuration;
|
||||||
|
import net.minecraftforge.common.config.Property;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
class SettingsRegistryBackend {
|
class SettingsRegistryBackend {
|
||||||
@@ -36,7 +38,14 @@ class SettingsRegistryBackend {
|
|||||||
} else if (key.getDefault() instanceof Double) {
|
} else if (key.getDefault() instanceof Double) {
|
||||||
value = configuration.get(key.getCategory(), key.getKey(), (Double) key.getDefault()).getDouble();
|
value = configuration.get(key.getCategory(), key.getKey(), (Double) key.getDefault()).getDouble();
|
||||||
} else if (key.getDefault() instanceof String) {
|
} else if (key.getDefault() instanceof String) {
|
||||||
value = configuration.get(key.getCategory(), key.getKey(), (String) key.getDefault()).getString();
|
Property property = configuration.get(key.getCategory(), key.getKey(), (String) key.getDefault());
|
||||||
|
value = property.getString();
|
||||||
|
if (key instanceof SettingsRegistry.MultipleChoiceSettingKey) {
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
List<String> choices = ((SettingsRegistry.MultipleChoiceSettingKey<String>) key).getChoices();
|
||||||
|
property.setValidValues(choices.toArray(new String[0]));
|
||||||
|
property.setComment("Valid values: " + String.join(", ", choices));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new IllegalArgumentException("Default type " + key.getDefault().getClass() + " not supported.");
|
throw new IllegalArgumentException("Default type " + key.getDefault().getClass() + " not supported.");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import net.minecraft.entity.EntityLivingBase;
|
|||||||
import net.minecraftforge.client.event.GuiScreenEvent;
|
import net.minecraftforge.client.event.GuiScreenEvent;
|
||||||
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
||||||
import net.minecraftforge.client.event.RenderLivingEvent;
|
import net.minecraftforge.client.event.RenderLivingEvent;
|
||||||
|
import net.minecraftforge.common.config.Property;
|
||||||
|
|
||||||
class Patterns {
|
class Patterns {
|
||||||
@Pattern
|
@Pattern
|
||||||
@@ -44,4 +45,13 @@ class Patterns {
|
|||||||
//$$ return event.type;
|
//$$ return event.type;
|
||||||
//#endif
|
//#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Pattern
|
||||||
|
private static void setComment(Property property, String comment) {
|
||||||
|
//#if MC>=10900
|
||||||
|
property.setComment(comment);
|
||||||
|
//#else
|
||||||
|
//$$ property.comment = comment;
|
||||||
|
//#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user