Posted April 4, 201510 yr 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
April 4, 201510 yr I can tell you that onServerStarting, onServerStarted, onServerStopping and onServerStopped events will help you! (They are fired even in sigleplayer) Check out my mods: BTAM Armor sets Avoid Exploding Creepers Tools compressor Anti Id Conflict Key bindings overhaul Colourfull blocks Invisi Zones
April 4, 201510 yr 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
April 4, 201510 yr Author Ok, so how exactly would I go about using this helpful looking piece of code?
April 4, 201510 yr 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
April 5, 201510 yr Author 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){ }
April 5, 201510 yr Those are startup events (like init, pre and post), use: @EventHandler 1.7.10 is no longer supported by forge, you are on your own.
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.