Jump to content

Dutchs

Members
  • Posts

    4
  • Joined

  • Last visited

Dutchs's Achievements

Tree Puncher

Tree Puncher (2/8)

0

Reputation

  1. cannot or should not ?, i seem to be able to add Stats in FMLCommonSetupEvent using: private static ResourceLocation makeCustomStat(String pKey, StatFormatter pFormatter) { ResourceLocation resourcelocation = new ResourceLocation(Constants.MODID, pKey); Registry.register(Registry.CUSTOM_STAT, pKey, resourcelocation); net.minecraft.stats.Stats.CUSTOM.get(resourcelocation, pFormatter); return resourcelocation; } The same way vanilla adds custom stats into: "minecraft:custom" StatType registry.
  2. Hello, I'm attempting to add translation keys during runtime for "net.minecraft.stats.Stats" which are displayed in the statistics screen ,but have as of yet been unable to find a intended way to do so. As i'm adding new stat types depending on things other mods add i cannot add translations for them at build/generation time (using runData) because these are unknown at that point in time.
  3. https://www.curseforge.com/minecraft/mc-mods/infernal-stages The mod allows you to configure a set of Modifiers, to be associated with a stage which a player can have or not have, and by that it decides which special abilities a mob can spawn with around said player.
  4. Hey I'm attempting to store interdependent config data using ForgeConfigSpec API, ie a (variable size) List<MyClass> with MyClass having a String field and a List<String> field. I'd imagine this would involve implementing a serializer/deserializer, but i'm not entirely sure how to go about it, or if its even possible. Using the overload for ForgeConfigSpec.Builder.defineList and define that takes a List<String> for the path works somewhat but the number of config values that can be stored this way are hard-coded which is undesirable; [myClass1] name = "a" values = ["a", "b", "c"] [myClass2] name = "b" values = ["c", "b", "a"] This is what i've tried; @Mod.EventBusSubscriber(modid = Constants.MODID, bus = Mod.EventBusSubscriber.Bus.MOD) public class ConfigHandler { static public final CommonConfig COMMON_CONFIG; static public final ForgeConfigSpec COMMON_SPEC; static { final Pair<CommonConfig, ForgeConfigSpec> serverSpecPair = new ForgeConfigSpec.Builder().configure(CommonConfig::new); COMMON_CONFIG = serverSpecPair.getLeft(); COMMON_SPEC = serverSpecPair.getRight(); } @SubscribeEvent public static void onModConfigEvent(final ModConfigEvent configEvent) { if (configEvent.getConfig().getSpec() == ConfigHandler.COMMON_SPEC) { bakeCommonConfig(); } } //Common public static List<MyClass> myClasses; public static void bakeCommonConfig() { myClasses = COMMON_CONFIG.myClasses.get() } public static class CommonConfig { public final ForgeConfigSpec.ConfigValue<List<MyClass>> myClasses; List<MyClass> defaults = Arrays.asList(new MyClass("a", new ArrayList())); public CommonConfig(ForgeConfigSpec.Builder builder) { Predicate<Object> validator = o -> o instanceof MyClass; myClasses = builder.defineList("myClasses", defaults, validator); } } } public class MyClass { public String name; public List<String> values; public MyClass(String name, List<String> values) { this.name = name; this.values = values; } }
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.