Jump to content

[1.11.2] [SOLVED] Use the new @Config-compatible config GUI


Bektor

Recommended Posts

Are you asking about the annotation-based config system or the recent addition of the config GUI compatible with it?

 

If it's the former, create a class to hold your config options and annotate it with @Config. This class should have a static field for each option or sub-category. These fields can be one of the following types:

  • Any primitive or primitive wrapper class or array of primitives/wrappers. This will be mapped to single value or list property of the corresponding type in the config file.
  • String or String[]. This will be mapped to string or string list property.
  • An enum. This will be mapped to a string property, but will throw an error if set to an invalid value.
  • Map<String, T>, or any class that implements it. T may be any of the previous types. This will be mapped to a category containing a property for each key/value pair in the Map.
  • Any class that directly extends Object. These will be mapped to a category containing a property for each of the class's non-static fields. The fields can be any of these types, including another class that directly extends Object.

You can use the sub-annotations of @Config to set the lang key (for the config GUI), comment (used in the config file, also in the config GUI if there's no translation for langKey + ".tooltip"), value range (for numeric properties), property/category name and whether changing the property's value requires restarting Minecraft or the world.

 

To use the config GUI with this system, all you need to do is subscribe to ConfigChangedEvent.OnConfigChangedEvent. If the event's mod ID is your mod ID, call ConfigManager.sync with your mod ID and Config.Type.INSTANCE.

 

You can see a basic implementation of this here. The translations for this can be found here.

  • Like 1

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

33 minutes ago, Choonster said:

 

Are you asking about the annotation-based config system or the recent addition of the config GUI compatible with it?

 

Basically about both. The last time I worked with both of them, I did everything completly without annotations.

 

And thx for the answer.

Edited by Bektor

Developer of Primeval Forest.

Link to comment
Share on other sites

  • 7 months later...

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Right now im trying to make an own mod for minecraft for the version 1.16.5 with forge but whatever i do it still doesnt fix the error this is my build.gradle : buildscript { repositories { maven { url = "https://maven.minecraftforge.net" } mavenCentral() } dependencies { classpath 'net.minecraftforge.gradle:ForgeGradle:5.1.+' } } apply plugin: 'net.minecraftforge.gradle' apply plugin: 'java' group = 'com.example' // Modify to your package name version = '1.0' archivesBaseName = 'flippermod' java { toolchain { languageVersion = JavaLanguageVersion.of(8) } } minecraft { version = "1.16.5-36.2.42" // Ensure this matches your Forge version mappings channel: 'official', version: '1.16.5' runs { client { workingDirectory project.file('run') property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' property 'forge.logging.console.level', 'debug' mods { flipper_mod { sourceSets.main.output } } } } } repositories { maven { url = "https://maven.minecraftforge.net/" } mavenCentral() } dependencies { minecraft "net.minecraftforge:forge:1.16.5-36.2.42" } and this one is my settings.gradle:  pluginManagement { repositories { gradlePluginPortal() maven { name = 'MinecraftForge' url = 'https://maven.minecraftforge.net/' } } } plugins { id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0' } rootProject.name = 'flippermod' this one is the mods.tml    modLoader="javafml" loaderVersion="[36,)" modId="flippermod" version="1.0.0" displayName="Flippermod" and the last one is the gradle-wrapper.properties distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip dc :"code_slivki"
    • Today I tried downloading 1.16.5 forge (the recommended version) and when installing I selected "download client". At the end just before appeared "These libraries failed to download. Try again." and at the bottom there were "org.apache.logging.log4j:log4j-api:2.15.0 ; org.apache.logging.log4j:log4j-core:2.15.0 and org.apache.logging.log4j:log4j-slf4j18-impl2.15.0" I tried the newest version and the same thing appeared
    • I think the problem is the server doesn't have enough ram, but I need to be sure before buying more. The modpack I use is Craft of exile 2 and the server has 4gb ram. When I try to turn it on I get a bunch of warns and at the end it just says "[Multicraft] Skipped 564 lines due to rate limit (160/s)" Is there a way to increase the rate limit? One time it did start, but without half of the mods. The modpack works perfectly fine on my computer even if I have the launch ram limit to 4gb.
    • Nevermind, RedstoneWireBlock.java had what I needed. Surprised I didn't try looking there until now.
    • I tried to open my Minecraft world normally and got the error "Errors in currently selected data pacts prevented the world from loading." Trying to start in safe mode gives the error "This world contains invalid or corrupted save data." My recent log is too large to make a Pastebin link. Any help would be much appreciated. 
  • Topics

×
×
  • Create New...

Important Information

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