Posted April 11, 20205 yr I'm trying to figure out how to create a multi-line define list in the TOML config file using ForgeConfigSpec. Anyone have any insights? Here's the code: public class AttributesConfig { final ForgeConfigSpec.ConfigValue<List<? extends String>> attributes; AttributesConfig(final ForgeConfigSpec.Builder builder) { builder.push("Attributes"); builder.comment("Add attribute modifiers to entities to change their stats. Takes 4-6 values seperated by a semicolon.", "Format: entity;attribute;operator;value;dimension;child", "entity: entity name", "attribute: attribute name (Possible attributes: " + AttributeHelper.getAttributesString() + ")", "operator: operator type (0 = add, 1 = multiply and add)", "value: value which will be used for the calculation", "dimension: dimension (ID) in which the entity should get the boost (optional! Leave this blank or use a \"/\" for any dimension)", "child: 0 = the modifier doesn't care if the entity is a child or not, 1 = adults only, 2 = children only (optional! Leave this blank for 0)"); attributes = builder .defineList("Attributes", Arrays.asList(Constants.ATTRIBUTE_DEFAULT), ELEMENT_VALIDATOR); builder.pop(); } } Here's the current output (all one line): "Attributes" = ["zombie;generic.maxHealth;1;0.5;/;1", "zombie_pigman;generic.maxHealth;1;0.5;/;1", "zombie_villager;generic.maxHealth;1;0.5;/;1", ...etc.] Here's what I'm trying to achieve: "Attributes" = "zombie;generic.maxHealth;1;0.5;/;1", "zombie_pigman;generic.maxHealth;1;0.5;/;1", "zombie_villager;generic.maxHealth;1;0.5;/;1" etc... Thanks! Edited April 14, 20205 yr by p1ut0nium
August 3, 20205 yr Don't you just need a System.lineSeparator() here? Or a "%n" inside the string where you want to go to a new line. Example: ("FirstString" + System.lineSeparator() + "NewLineString") or ("FirstString%nNewLineString) Check out the port of the BetterEnd fabric mod (WIP): https://www.curseforge.com/minecraft/mc-mods/betterend-forge-port
August 3, 20205 yr defineList takes an array. ForgeConfig handles the reading and writing of the config file. So guessing any application of a line separator would be on the ForgeConfig side. I'm just wondering if there are any flags or such [documented or undocumented] to have the config file print out the array as a list rather than one long run on paragraph. The option probably does not exist but it never hurts to ask. 5 hours ago, Beethoven92 said: Don't you just need a System.lineSeparator() here? Or a "%n" inside the string where you want to go to a new line. Example: ("FirstString" + System.lineSeparator() + "NewLineString") or ("FirstString%nNewLineString) Edited August 3, 20205 yr by frakier there, their and they're... I used their for there
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.