Jump to content

Custom Configuration File Directories


Romejanic

Recommended Posts

Hello Guys! It's Romejanic here! And I want to give you a little tutorial! If you have seen my recent mods, you would know that my config files all go to the folder /romejanic in the Minecraft folder and server folder. So in this simple tutorial, I will show you how to not only get you config files in a custom directory, but to also make it work universally!

 

Ok. So first, I would recommend making a new class. Usually I call it 'ConfigLoader.java'. You can call it anything you want though! So first in the new class, type make a new void method like this;

 

public static void load(){

 

}

 

Inside that method, you are going to type this code:

 

File location = null;

 

After that, you also need to import java.io.File. Now, the reason you have typed null at the end is because if it was not an assignment, you would not be able to use it in other declarations. Anyway, we will move on. Next, you need to type this code;

 

Side s = FMLCommonHandler.instance().getEffectiveSide();

 

After that, you need to make two if statements. One for the client declarations and one for the server declarations. You will type the statements like this;

 

if(s == s.CLIENT){

 

}

if(s == s.SERVER){

 

}

 

After you type that in, you need to import cpw.mods.fml.common.FMLCommonHandler and cpw.mods.fml.relauncher.Side. Now inside the first if statement (The client statement) you will type the following;

 

location = new File(Minecraft.getMinecraftDir().toString()+"/<foldername>/<file-name>");

 

Ok. This is where the file's null assignment is replaced. But before we go on, you need to import net.minecraft.client.Minecraft. Except you must replace <foldername> for the name of your custom folder and <file-name> for you file's name. But for the file name, it must be followed by an extension. I would suggest making the extension .txt for easy access but it is really up to you. So, if I wanted my file to go to /romejanic/Ghost.txt, I would type;

 

location = new File(Minecraft.getMinecraftDir().toString()+"/romejanic/Ghost.txt");

 

Next let's go onto the server! You will probably just copy most of the code except since the Minecaft class doesn't exist in the server, you must change the directory. Instead, you must change it to this;

 

location = new File("./<foldername>/<file-name>");

 

Once that is complete, you need to create a new void method. It should look like this;

 

private static void config(File location){

 

}

 

Now, underneath the last if statement in the first void method (the server declaration) you need to type

 

config(location);

 

Next, in the second method, you need to type the following;

 

Configuration config = new Configuration(location);

 

config.load();

 

config.save();

 

Ok, you need to import net.minecraftforge.common.Configuration and you are done with the ConfigLoader class! Next, you need to move over to your main mod class. In the pre-init method, you need to add this bit of code;

 

ConfigLoader.load();

 

If the config file is not in the same package as the main mod class, make sure to import it.

 

So that should be it! After this, just follow the tutorials on how to make config files, unless you know how to make them, but skip the step for the config variable. And when you start the game, you will have your own custom config file directory!

 

BTW The final class should look like this;

 

import java.io.File;

 

import cpw.mods.fml.common.FMLCommonHandler;

import cpw.mods.fml.relauncher.Side;

 

import net.minecraft.client.Minecraft;

import net.minecraftforge.common.Configuration;

 

public class ConfigLoader {

 

public static void load(){

 

File location = null;

Side s = FMLCommonHandler.instance().getEffectiveSide();

if(s == s.CLIENT){

 

location = new File(Minecraft.getMinecraftDir().toString()+"/romejanic/Ghost.txt");

 

}

if(s == s.SERVER){

 

location = new File("./romejanic/Ghost.txt");

 

}

config(location);

 

}

 

private static void config(File location){

 

Configuration config = new Configuration(location);

 

config.load();

 

config.save();

 

}

 

}

 

Thanks!

Romejanic

Romejanic

 

Creator of Witch Hats, Explosive Chickens and Battlefield!

Link to comment
Share on other sites

Protip: DO NOT PUT YOUR CONFIGS OUTSIDE THE CONFIG FOLDER.

That's a really really stupid thing to do.

Breaking standards just because you feel like it is bad.

You can make subfolders in the config folder, but making them in the root of the MC folder just causes issues.

 

Proper way to do it is to listen for the PreInit event, and grab the config folder from that:

event.getModConfigurationDirectory();

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

And this is not the place to put modding tutorials up!

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

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



×
×
  • Create New...

Important Information

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