Class ConfigHelper
java.lang.Object
tech.anonymoushacker1279.immersiveweapons.config.ConfigHelper
Helpers for creating configs and defining complex objects in configs - Thanks Commoble!
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classA config-reload-sensitive wrapper around a config field for a complex objectstatic classDynamicOps for usingCodecs to load objects from configs. -
Method Summary
Modifier and TypeMethodDescriptionstatic <T> ConfigHelper.ConfigObject<T>defineObject(net.neoforged.neoforge.common.ModConfigSpec.Builder builder, String name, com.mojang.serialization.Codec<T> codec, T defaultObject) Define a config value for a complex object.static <T> Tregister(net.neoforged.fml.config.ModConfig.Type configType, Function<net.neoforged.neoforge.common.ModConfigSpec.Builder, T> configFactory) Register a config using a default config filename for your mod.static <T> Tregister(net.neoforged.fml.config.ModConfig.Type configType, Function<net.neoforged.neoforge.common.ModConfigSpec.Builder, T> configFactory, String configName) Register a config using a custom filename.
-
Method Details
-
register
public static <T> T register(net.neoforged.fml.config.ModConfig.Type configType, Function<net.neoforged.neoforge.common.ModConfigSpec.Builder, T> configFactory) Register a config using a default config filename for your mod.- Type Parameters:
T- The class of your config implementation- Parameters:
configType- Forge config type:- SERVER configs are defined by the server and synced to clients; individual configs are generated per-save. Filename will be modid-server.toml
- COMMON configs are definable by both server and clients and not synced (they may have different values). Filename will be modid-client.toml
- CLIENT configs are defined by clients and not used on the server. Filename will be modid-client.toml.
configFactory- A constructor or factory for your config class- Returns:
- An instance of your config class
-
register
public static <T> T register(net.neoforged.fml.config.ModConfig.Type configType, Function<net.neoforged.neoforge.common.ModConfigSpec.Builder, T> configFactory, @Nullable String configName) Register a config using a custom filename.- Type Parameters:
T- Your config class- Parameters:
configType- Forge config type:- SERVER configs are defined by the server and synced to clients; individual configs are generated per-save.
- COMMON configs are definable by both server and clients and not synced (they may have different values)
- CLIENT configs are defined by clients and not used on the server
configFactory- A constructor or factory for your config classconfigName- Name of your config file. Supports subfolders, e.g. "yourmod/yourconfig".- Returns:
- An instance of your config class
-
defineObject
public static <T> ConfigHelper.ConfigObject<T> defineObject(net.neoforged.neoforge.common.ModConfigSpec.Builder builder, String name, com.mojang.serialization.Codec<T> codec, T defaultObject) Define a config value for a complex object.- Type Parameters:
T- The type of the thing in the config we are making a listener for- Parameters:
builder- Builder to build configs withname- The name of the field in your config that will hold objects of this typecodec- A Codec for de/serializing your object type.defaultObject- The default instance of your config field. The given codec must be able to serialize this; if it cannot, an exception will be intentionally thrown the first time the config attempts to load. If the codec fails to deserialize the config field at a later time, an error message will be logged and this default instance will be used instead.- Returns:
- A reload-sensitive wrapper around your config object value. Use ConfigObject#get to get the most up-to-date object.
-