Jump to content

Creating a config file in the world save folder


Elrol_Arrowsend

Recommended Posts

I am having a little trouble trying to figure out how to make a config (1) in anywhere other then the /config folder. and (2) to have it generate in a world save location on the world creation. I am trying to make a mod similar to the plugin McMMO so that I, and anyone else, can play it on singleplayer. any help with either problem, or both, will be much appreciated

Link to comment
Share on other sites

Well, if it helps, you can get the world save locations from here - it's different on a dedicated server and an integrated server, so I used a proxy method to get the right one.

 

  /**
   * Obtains the folder that world save backups should be stored in.
   * For Integrated Server, this is the saves folder
   * For Dedicated Server, a new 'backupsaves' folder is created in the same folder that contains the world save directory
   * @return the folder where backup saves should be created
   */
  public abstract Path getOrCreateSaveBackupsFolder() throws IOException;
in your proxy class

---> On an integrated server
@Override
  public Path getOrCreateSaveBackupsFolder() throws IOException {
    return new File(Minecraft.getMinecraft().mcDataDir, "saves").toPath();
  }

On a dedicated server
@Override
  public Path getOrCreateSaveBackupsFolder() throws IOException {
    Path universeFolder = FMLServerHandler.instance().getSavesDirectory().toPath();
    Path backupsFolder = universeFolder.resolve(SpeedyToolsOptions.nameForSavesBackupFolder());
    if (!Files.exists(backupsFolder)) {
      Files.createDirectory(backupsFolder);
    }
    return backupsFolder;
  }

 

-TGG

Link to comment
Share on other sites

During the the appropriate world loading event, (see WorldEvent and its derived Event classes), create a Configuration with the desired File location as constructor parameter, just like you normally do.  The File comes from the code fragments I showed you.  If this will never be installed on a dedicated server, then

new File(Minecraft.getMinecraft().mcDataDir, "saves").toPath();

should work just fine

 

-TGG

Link to comment
Share on other sites

I can tell you that onServerStarting, onServerStarted, onServerStopping and onServerStopped events will help you! (They are fired even in sigleplayer)

 

where exactly are these, or do i need to make them my self, when i tried this, it didnt work:

 

@SubscribeEvent

public void onServerStarting(FMLServerStartingEvent e){

 

}

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.