Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Dutchs

Members
  • Joined

  • Last visited

Everything posted by Dutchs

  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; } }

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.