[3.x Webservice Update] Plans, ideas, requests etc. #635

Closed
opened 2026-06-26 21:16:26 +02:00 by Griefed · 0 comments
Owner

@Griefed on GitHub · https://github.com/Griefed/ServerPackCreator/issues/68

Moved here: https://git.griefed.de/Griefed/ServerPackCreator/-/milestones/1

Why?

This issue is a collection of some plans, ideas, requests and my ramblings regarding the next major update to ServerPackCreator. If you have any ideas or requests for this specific version, comment below.
Note: Just because something is on this list does not mean that it will 100% make it into the next major release. It may, it may not. That'll be up to me. Things may get added in subsequent releases.

If you have a request that you absolutely want to see added to/implemented in ServerPackCreator, feel free to explain said request in the comments below. Be as clear and detailed as possible and keep in mind that I may reject your request.

Where?

Dev-builld artifacts can be downloaded here: https://git.griefed.de/Griefed/ServerPackCreator/-/pipelines?page=1&scope=branches&ref=webservice

Ideas, plans, improvements, enhancements, new features etc. etc.

Likely to happen:

  1. Split the repository up into separate repositories:
    1. ServerPackCreator-frontend (holds the VueJS/Quasar code) major benefit: Pages for demo, separate build pipeline, separate releases, separate renovate config
    2. ServerPackCreator-backend (holds the Java code) Pages for docs, separate build pipeline, separate releases, separate renovate config
    3. ServerPackCreator adds frontend and backend as submodules, pulls the tagged commits, builds the final product. Benefit: Freeze frontend and backend with specific commits. Hosts the dockerfiles. Hosts final build pipeline. Hosts final releases
  2. REST API with Spring Boot as the backend. VueJS/Quasar for the frontend.
  3. SPA to view configuration, downloads, logs, about
  4. Upload exported modpack from CurseForge app of which ServerPackCreator will then generate a server pack and allow the user to download said pack in webUI.
    1. Must be toggleable via property in serverpackcreator.properties, in case an admin who deploys the service deems it unsafe to allow strangers to upload ZIP-archives, containing gods-know what.
    2. research posibilities of creating server packs for modpacks which aren't in the usual Overwolf/CurseForge format. Meaning: archives which do not contain an instance.json, but rather the full modpack itself, with mods and everything.
  5. If modpackDir points at a zip (CurseForge app export), install the modpack and generate a server pack from it. Ties in with 4.
  6. Provide more screenshots of SPC running in CLI | GUI | WEB mode in README and some sort of "about"
  7. ??? Info regarding sponsoring in about panels/tabs? Dunno
  8. Rework argument handling / parsing to enforce priority, catch nonsense arguments passed by user, solve problem of specifying multiple valid modes at once at the same time
  9. Refactor CurseForgeModpack to install the specified modpack in work/projectID/fileID-folder. If the specified projectID/fileID already exists, create server pack from that. Prevents unnecessary downloads if a projectID/fileID was specified. See github.com/Griefed/ServerPackCreator@3155af4990 and github.com/Griefed/ServerPackCreator@00dd7aa15b. If any download during the creation of a CurseForgeModpack fails, cleanup and restart the process.
    1. This may be possible with an int tries counter which inceremnts if any error is encountered and the process restarted. If the counter hits 3, cancel and tell the user.
  10. Allow lanuage change in webUI via vue-i18n App Internationalization (i18n)
    1. When running as a webservice, force the backend to use en_us as the language. Makes debugging and error reports easier. and since the end-user won't see log entries or error messages from the backend anyway, we have no need for i18n.
  11. QuartzScheduler to delete manifest files on a schedule. Ensures ServerPackCreator always has the latest and greatest Minecraft, Forge and Fabric versions available for validation.
    1. Cleanup modpacks generated from CurseForge.
    2. Cleanup server pack folders (NOT ZIP-archives). This saves diskspace. Should be able to deactivate this.
    3. Vaildate database entries for available server packs? Would improve safety of entries in downloads-section
    4. Cleanup temp directory where uploaded ZIP-archives are stored
  12. Improve addon-handling. Intensive tests required. Webservice must allow for use of addons as well. Also: Improve the way addons are used by ServerPackCreator, and, subsequently, improve the exampleaddon. Best way would be something like calling the main from any addon inside the addonfolder with the current configurationModel, instead of executing the JAR in a process, with the configurationModel passed as a commandline-argument... This looks promising: https://github.com/pf4j/pf4j
  13. Remove tab for modloader-installer.log from GUI. On error during installation, refer users to said log-file, ask whether they want to open it in theri favourite edit.
  14. Update README with information regarding pull requests. Pull requests need to be made against a (to be created) special branch (maybe contributions?). From this branch I can pull to local, merge, push to GitLab and GitLab mirrors to GitHub
  15. Update README with new screenshots and explanations of ServerPackCreator. Update documentation/how-to/installation guide.
Screenshots
CLI and GUI
| Windows | Linux | Mac
| CLI Win | CLI Linux | CLI Mac
| GUI Light | GUI Light | GUI Light
| GUI Dark | GUI Dark | GUI Dark

Web
Light Configuration
Light Downloads
Dark Configuration
Dark Downloads

Comparisons:
Advantages/Disadvantages CLI vs. GUI vs. Webservice:
CLI:

GUI:

Webservice:

Not likely to happen, but interested in experimenting with. May happen in later version, but no promise:

  1. Move resource bundles for language keys outside of JAR-file, to allow people to edit them to their liking. Makes it easier for people to edit/change/add/remove stuff, test it and report back their changes/additions etc.
  2. Settings window/menu for editing settings in serverpackcreator.properties. Should require the user to toggle some JToggle or JCheckBox like "Enable Advanced Settings" and give the user a warning that changing these settings can cause unexpected behaviour, break things, or cause file corruption etc. etc.. Basically, disclaimer: "I can not be held responsible if you change this stuff. You are on your own:"
  3. Allow for configuration of imap server to listen to. If email with subject "Create Server Pack" comes in, parse body for configuration, generate server pack, return download link of server pack to sender. This would require the sender to use CurseForge projectID and fileIDs, so SPC can create the modpack from which to generate a server pack.
    1. Allow users to specify an email when queueing up a server pack generation, so they can be notified if said server pack was generated. Could also send the download link along with the e-mail.
  4. Upon change in textfields in GUI, check entered configuration. If correct, do nothing. If wrong, let the user know the setting is not correct to tell them to check logs for more details.
  5. When a server pack was generated from a CurseForge projectID and fileID, store the configuration, generated from this combination, in the database and offer a download in addition to the server pack itself.
  6. Discord integration: Allow configuration of Discord bot, token, channel etc. so ServerPackCreator, when running as a webservice, can post status updates to a specified channel, whenever either a generation has been started, finished of requested, or when an error occurs. https://github.com/Discord4J/Discord4J

Done:

  1. GUI: Check javaPath upon start and if no viable Java installation can be found, open dialog to select correct java installation. Further prevents incorrect setting of javaPath and makes config transfers between users more comfortable. Say user A for Modpack AA shares their config with User B, but User A has a different Java installed than User B, or similar situations come to mind. Implemented some time ago
  2. Refactor all relevant paths to be based on the directory in which ServerPackCreator resides in. Otherwise we run into the possibility of the user not knowing where what is and SPC producing BS when running as a webservice. We get the full path to the JAR-file/exe from main anyway, so we should make use of that. This would also improve addon handling, so it's pretty much a must do at this point. Was implemented some time ago
  3. If the config does not specify any clientside-only mods, prepopulate GUIs with FALLBACKMODSLIST. Gives users an example on how this is supposed to be configured as well. See github.com/Griefed/ServerPackCreator@ff18c5e56f
  4. If possible: Check whether the CurseForge App is currently running and warn the user about the possible side effects of creating a server pack for a modpack whilst the CurseForge app monitors the modpack directory #55 [1]
  5. Prepopulate Java Path in GUIs. Since Java is required to run SPC, let it prepopulate this setting if the loaded config does not provide a setting. See github.com/Griefed/ServerPackCreator@ff18c5e56f
  6. Preselect files/folders specified in clientMods and copyDirs when using GUIs Not possible. setSelectedFiles only prefills the textfield in the opened window, but does not visually select files/folders. Haven't found a way to realize this after digging through Google for a couple of days. Will not spend more time on this.
  7. Write runTest for Fabric. I seem to only have thought of writing tests for Forge. Derp. https://github.com/Griefed/ServerPackCreator/blob/main/src/test/java/de/griefed/serverpackcreator/CreateServerPackTest.java#L417
  8. Documentation: Rework guides on how to use SPC to be more precise / easier to understandSee github.com/Griefed/ServerPackCreator@7d0d2bd5b2
  9. Add more debug logging. At the same time, move log4j-xml to outside of jar file to allow users to enable debug logging. Ongoing process. See github.com/Griefed/ServerPackCreator@fcbe6cfade. In order to activate debug logging, set <Property name="log-level-spc">INFO</Property> from INFO to DEBUG.
  10. Move CreateGui createGui = new CreateGui[...] to else { in main See github.com/Griefed/ServerPackCreator@d39730c86c
  11. -help arg to print help regarding running ServerPackCreator See github.com/Griefed/ServerPackCreator@4689f54335
  12. When using the "Upload log"-button in the GUI, upload modloader-installer.log if it isn't empty. Not happening. Modloader installer logs are too big when Forge had a go. hastebin returns error 413 if I try to upload a Forge installer log.
  13. Make Modloader setting a slider to choose between Fabric and Forge See github.com/Griefed/ServerPackCreator@4f9eb79f81
  14. Store files for Minecraft/Fabric/Forge version validation and latest version acquisition in work/filename. Generate on SPC startup, don't delete after server pack generation. Refresh when SPC starts. See github.com/Griefed/ServerPackCreator@1927faa33d and github.com/Griefed/ServerPackCreator@ab080a6024
  15. Set whitelist=false in template server.properties See github.com/Griefed/ServerPackCreator@bc4018edf2
  16. Generate server packs in server-packs-folder in SPC home dir. Should fix issue mentioned in 9. [1] See github.com/Griefed/ServerPackCreator@539341d68f
  17. Update CONTRIBUTING.md and let people know about not being able to merge on GitHub because GitHub is a mirror from my GitLab See github.com/Griefed/ServerPackCreator@272119fb81
  18. Add missing description for -lang argumentSee github.com/Griefed/ServerPackCreator@164073fc8b
  19. Autoappend .exe to javaPath if we are on Windows and if the user manually specified the path and if the path is correct, else autoset the path and ignore user-specified config for javaPath. See github.com/Griefed/ServerPackCreator@fae311ea2e and github.com/Griefed/ServerPackCreator@b6da489e08
  20. Docker: Check is STARTUP_PARAMETER is set. If not, assume -cli. See github.com/Griefed/ServerPackCreator@cad6e55e73
  21. Merge methods for creation of default files and manifest files for version validation. See github.com/Griefed/ServerPackCreator@9111e7c585
  22. "Addon API" as in, have a folder addons in which JAR-files can be added to provide additional functionality to ServerPackCreator. Would allow people to write and add more features without having to need to change the src. Idealy, provide examples in separate repositories. See github.com/Griefed/ServerPackCreator@2a93e5476d and ServerPackCreatorExampleAddon
  23. Merge checkJavaPath and getJavaPathFromSystem to one method which returns a string containing the correct path. See github.com/Griefed/ServerPackCreator@0c982cb5ab
  24. Tidy up GUI classes, meaning: Extract things like Dialogs into their own methods. Makes the GUI classes easier to read/understand and way more maintainable. See github.com/Griefed/ServerPackCreator@9268245df8 and github.com/Griefed/ServerPackCreator@7a335dab87
  25. https://github.com/Griefed/ServerPackCreator/issues/62 See github.com/Griefed/ServerPackCreator@094a217e83 and github.com/Griefed/ServerPackCreator@e17322ed5d and github.com/Griefed/ServerPackCreator@3811190cb4
  26. GUI: Refactor Minecraft version into selection from list gathered from manifest See github.com/Griefed/ServerPackCreator@5b56f18a90
  27. GUI: Refactor Modloader version into selection from list gathered from manifest and listed versions depending on selection of modloader See github.com/Griefed/ServerPackCreator@5b56f18a90
  28. https://github.com/Griefed/ServerPackCreator/issues/73 "Have an option to input custom java args for the servers." See github.com/Griefed/ServerPackCreator@929bfa6807
  29. Improve clientMods to autoescape [ and ] should a mod have said characters in its name. https://github.com/Griefed/ServerPackCreator/issues/71 See github.com/Griefed/ServerPackCreator@0e029ec477
  30. Rework GUI, possibly with NetBeans or similar software, to improve UX. Won't interfere with 12. and 13. Possibly make use of https://github.com/vincenzopalazzo/material-ui-swing as it looks sweeeeeeet af.
    1. Toggle for Light/Dark mode? (MaterialLookAndFeel.changeTheme(new CustomMaterialTheme()); see https://github.com/vincenzopalazzo/material-ui-swing/wiki/Material-Component-Supported) See github.com/Griefed/ServerPackCreator@949fb6aecd
  31. GUI: Menu-bar:
    1. "Data":
      1. Load configuration from file See github.com/Griefed/ServerPackCreator@949fb6aecd
      2. Switch between lightmode and darkmode See github.com/Griefed/ServerPackCreator@949fb6aecd
    2. "Addons":
      1. Entry for refreshing installed addons
      2. Entry for opening the addon directory
      3. Entry for opening the example addon GitHub page in browser
    3. "Files":
      1. Open ServerPackCreator directory in explorer
      2. Open server-packs directory in explorer
      3. Open server_files directory in explorer
    4. "About":
      1. Entry "About" to replace About-tab
      2. Entry "Help" to replace the help button in the Create Server Pack-tab
      3. Entry "GitHub" which links to GitHub project
      4. Entry "Buy me a coffee" which links to GitHub Sponsors
  32. Can Mohist be supported as well, somehow? Mayhaps as a checkbox only visible if Forge modloader is selected? For download/installation etc. https://wiki.mohistmc.com/#/. Should be possible. Can already be done via addons.
  33. Check possibilities of createserverpack refactoring to run in separate thread. The process of generating a server pack needs to be able to run without problems once started and be independant/self-reliant. Basically: ServerPackCreator must allow for multiple parallel server pack generation tasks at the same time. Otherwise the whole REST API thing is pretty much DOA. ??? Refactor CreateServerPack to ServerPackHandler and extract run(...) into its own class which creates/receives all the objects necessary to successfully run the creation of a server pack. See github.com/Griefed/ServerPackCreator@93a666a54a
  34. FileWatcher to monitor whether any important files were deleted and if so, generate new ones. Namely serverpackcreator.properties, log4j2.xml and so on. Watched files would not include manifest files, as QuartzScheduler will take care of those.
  35. serverpackcreator.properties to enable/disable/set various features/settings/properties in ServerPackCreator:
    1. Allow configuration of hastebin server: String requestURL = "https://haste.zneix.eu/documents"; should be properties.getProperty("haste.server","https://haste.zneix.eu/documents"); See github.com/Griefed/ServerPackCreator@0235378822
    2. Set language (replace lang.properties) See github.com/Griefed/ServerPackCreator@bb11972711
    3. Change path for server pack generation. See github.com/Griefed/ServerPackCreator@4a36e76bfa
    4. Move FALLBACKMODSLIST to serverpackcreator.properties. Allows users to expand it without having to touch the code of SPC. See github.com/Griefed/ServerPackCreator@bb11972711
    5. ???

Footnotes:

[1] Overwolf's CurseForge app seems to use some sort of filewatcher. Using ServerPackCreator on any modpack inside the Instances folder can result in random mods being deleted. I advise against using ServerPackCreator on any modpack inside the Instances folder. Note: ServerPackCreator does not delete any mods. It reads a list of mods inside your modpack into memory, removes clientside-only mods from that list and then copies that list to the server pack.
I thought I fixed this issue a while back when I rewrote the way ServerPackCreator copies mods from the modpack to the server pack, by not deleting clientside-only mods but instead just not copying them over. It appears the problem still occurs and only happens when CurseForge is opened and a server pack is generated for a modpack inside said folder.
To avoid this issue, simply copy your modpack to a directory outside the Instances folder and you are good to go.

<!-- repoman:origin --> > **@Griefed** on **GitHub** · https://github.com/Griefed/ServerPackCreator/issues/68 Moved here: https://git.griefed.de/Griefed/ServerPackCreator/-/milestones/1 # Why? This issue is a collection of some plans, ideas, requests and my ramblings regarding the next major update to ServerPackCreator. If you have any ideas or requests for this specific version, comment below. **Note:** Just because something is on this list does ***not*** mean that it will 100% make it into the next major release. It may, it may not. That'll be up to me. Things may get added in subsequent releases. If you have a request that you absolutely want to see added to/implemented in ServerPackCreator, feel free to explain said request in the comments below. Be as clear and detailed as possible and keep in mind that I may reject your request. # Where? Dev-builld artifacts can be downloaded here: https://git.griefed.de/Griefed/ServerPackCreator/-/pipelines?page=1&scope=branches&ref=webservice # Ideas, plans, improvements, enhancements, new features etc. etc. ## Likely to happen: 1. Split the repository up into separate repositories: 1. ServerPackCreator-frontend (holds the VueJS/Quasar code) major benefit: Pages for demo, separate build pipeline, separate releases, separate renovate config 2. ServerPackCreator-backend (holds the Java code) Pages for docs, separate build pipeline, separate releases, separate renovate config 3. ServerPackCreator adds frontend and backend as submodules, pulls the tagged commits, builds the final product. Benefit: Freeze frontend and backend with specific commits. Hosts the dockerfiles. Hosts final build pipeline. Hosts final releases 1. REST API with Spring Boot as the backend. VueJS/Quasar for the frontend. 1. SPA to view configuration, downloads, logs, about 1. Upload exported modpack from CurseForge app of which ServerPackCreator will then generate a server pack and allow the user to download said pack in webUI. 1. Must be toggleable via property in `serverpackcreator.properties`, in case an admin who deploys the service deems it unsafe to allow strangers to upload ZIP-archives, containing gods-know what. 2. research posibilities of creating server packs for modpacks which **aren't** in the usual Overwolf/CurseForge format. Meaning: archives which do not contain an instance.json, but rather the full modpack itself, with mods and everything. 1. If modpackDir points at a zip (CurseForge app export), install the modpack and generate a server pack from it. Ties in with 4. 1. Provide more screenshots of SPC running in CLI | GUI | WEB mode in README and some sort of "about" 1. ??? Info regarding sponsoring in about panels/tabs? Dunno 1. Rework argument handling / parsing to enforce priority, catch nonsense arguments passed by user, solve problem of specifying multiple valid modes at once at the same time 1. ~~Refactor CurseForgeModpack to install the specified modpack in `work/projectID/fileID`-folder. If the specified projectID/fileID already exists, create server pack from that. Prevents unnecessary downloads if a projectID/fileID was specified.~~ See https://github.com/Griefed/ServerPackCreator/commit/3155af499006eba64751cca01e53e45480e8e936 and https://github.com/Griefed/ServerPackCreator/commit/00dd7aa15b8cdbdce91f6d510fc2505f2f6e9d1a. If any download during the creation of a CurseForgeModpack fails, cleanup and restart the process. 1. This may be possible with an `int tries` counter which inceremnts if any error is encountered and the process restarted. If the counter hits 3, cancel and tell the user. 1. Allow lanuage change in webUI via vue-i18n [App Internationalization (i18n)](https://quasar.dev/options/app-internationalization) 1. When running as a webservice, force the backend to use en_us as the language. Makes debugging and error reports easier. and since the end-user won't see log entries or error messages from the backend anyway, we have no need for i18n. 1. QuartzScheduler to delete manifest files on a schedule. Ensures ServerPackCreator always has the latest and greatest Minecraft, Forge and Fabric versions available for validation. 1. Cleanup modpacks generated from CurseForge. 2. Cleanup server pack folders (NOT ZIP-archives). This saves diskspace. Should be able to deactivate this. 3. Vaildate database entries for available server packs? Would improve safety of entries in downloads-section 4. Cleanup temp directory where uploaded ZIP-archives are stored 1. Improve addon-handling. Intensive tests required. Webservice must allow for use of addons as well. Also: Improve the way addons are used by ServerPackCreator, and, subsequently, improve the exampleaddon. Best way would be something like calling the main from any addon inside the addonfolder with the current configurationModel, instead of executing the JAR in a process, with the configurationModel passed as a commandline-argument... This looks promising: https://github.com/pf4j/pf4j 1. Remove tab for modloader-installer.log from GUI. On error during installation, refer users to said log-file, ask whether they want to open it in theri favourite edit. 1. Update README with information regarding pull requests. Pull requests need to be made against a (to be created) special branch (maybe contributions?). From this branch I can pull to local, merge, push to GitLab and GitLab mirrors to GitHub 1. Update README with new screenshots and explanations of ServerPackCreator. Update documentation/how-to/installation guide. ``` Screenshots CLI and GUI | Windows | Linux | Mac | CLI Win | CLI Linux | CLI Mac | GUI Light | GUI Light | GUI Light | GUI Dark | GUI Dark | GUI Dark Web Light Configuration Light Downloads Dark Configuration Dark Downloads Comparisons: Advantages/Disadvantages CLI vs. GUI vs. Webservice: CLI: GUI: Webservice: ``` ## Not likely to happen, but interested in experimenting with. May happen in later version, but no promise: 1. Move resource bundles for language keys outside of JAR-file, to allow people to edit them to their liking. Makes it easier for people to edit/change/add/remove stuff, test it and report back their changes/additions etc. 1. Settings window/menu for editing settings in `serverpackcreator.properties`. Should require the user to toggle some JToggle or JCheckBox like "Enable Advanced Settings" and give the user a warning that changing these settings can cause unexpected behaviour, break things, or cause file corruption etc. etc.. Basically, disclaimer: "I can not be held responsible if you change this stuff. You are on your own:" 1. Allow for configuration of imap server to listen to. If email with subject "Create Server Pack" comes in, parse body for configuration, generate server pack, return download link of server pack to sender. This would require the sender to use CurseForge projectID and fileIDs, so SPC can create the modpack from which to generate a server pack. 1. Allow users to specify an email when queueing up a server pack generation, so they can be notified if said server pack was generated. Could also send the download link along with the e-mail. 1. Upon change in textfields in GUI, check entered configuration. If correct, do nothing. If wrong, let the user know the setting is not correct to tell them to check logs for more details. 1. When a server pack was generated from a CurseForge projectID and fileID, store the configuration, generated from this combination, in the database and offer a download in addition to the server pack itself. 1. Discord integration: Allow configuration of Discord bot, token, channel etc. so ServerPackCreator, when running as a webservice, can post status updates to a specified channel, whenever either a generation has been started, finished of requested, or when an error occurs. https://github.com/Discord4J/Discord4J ## Done: 1. ~~GUI: Check javaPath upon start and if no viable Java installation can be found, open dialog to select correct java installation. Further prevents incorrect setting of javaPath and makes config transfers between users more comfortable. Say user A for Modpack AA shares their config with User B, but User A has a different Java installed than User B, or similar situations come to mind.~~ Implemented some time ago 1. ~Refactor all relevant paths to be based on the directory in which ServerPackCreator resides in. Otherwise we run into the possibility of the user not knowing where what is and SPC producing BS when running as a webservice. We get the full path to the JAR-file/exe from main anyway, so we should make use of that. This would also improve addon handling, so it's pretty much a ***must do*** at this point.~ Was implemented some time ago 1. ~~If the config does not specify any clientside-only mods, prepopulate GUIs with [FALLBACKMODSLIST](https://github.com/Griefed/ServerPackCreator/blob/main/src/main/java/de/griefed/serverpackcreator/Configuration.java#L154). Gives users an example on how this is supposed to be configured as well.~~ See https://github.com/Griefed/ServerPackCreator/commit/ff18c5e56f1416316a20158f66ce9f24c1ff7cd5 1. ~~If possible: Check whether the CurseForge App is currently running and warn the user about the possible side effects of creating a server pack for a modpack whilst the CurseForge app monitors the modpack directory #55~~ **<sup>[1]</sup>** 1. ~~Prepopulate Java Path in GUIs. Since Java is required to run SPC, let it prepopulate this setting if the loaded config does not provide a setting.~~ See https://github.com/Griefed/ServerPackCreator/commit/ff18c5e56f1416316a20158f66ce9f24c1ff7cd5 1. ~~Preselect files/folders specified in clientMods and copyDirs when using GUIs~~ Not possible. `setSelectedFiles` only prefills the textfield in the opened window, but does not visually select files/folders. Haven't found a way to realize this after digging through Google for a couple of days. Will not spend more time on this. 1. ~~Write runTest for Fabric. I seem to only have thought of writing tests for Forge.~~ Derp. https://github.com/Griefed/ServerPackCreator/blob/main/src/test/java/de/griefed/serverpackcreator/CreateServerPackTest.java#L417 1. ~~Documentation: Rework guides on how to use SPC to be more precise / easier to understand~~See https://github.com/Griefed/ServerPackCreator/commit/7d0d2bd5b2823e64a7aa20a2239699533f9dc930 1. ~~Add more debug logging. At the same time, move log4j-xml to outside of jar file to allow users to enable debug logging. Ongoing process.~~ See https://github.com/Griefed/ServerPackCreator/commit/fcbe6cfade911ee429bffd47b82cbe71b7f0d2bc. In order to activate debug logging, set `<Property name="log-level-spc">INFO</Property>` from INFO to DEBUG. 1. ~~Move `CreateGui createGui = new CreateGui[...]` to `else {` in main~~ See https://github.com/Griefed/ServerPackCreator/commit/d39730c86c9e8726716d2f6a4ca15bba3743ad5a 1. ~~`-help` arg to print help regarding running ServerPackCreator~~ See https://github.com/Griefed/ServerPackCreator/commit/4689f543359d7a5850d8cd26f2856ff88b719969 1. ~~When using the "Upload log"-button in the GUI, upload modloader-installer.log if it isn't empty.~~ Not happening. Modloader installer logs are too big when Forge had a go. hastebin returns error 413 if I try to upload a Forge installer log. 1. ~~Make Modloader setting a slider to choose between Fabric and Forge~~ See https://github.com/Griefed/ServerPackCreator/commit/4f9eb79f813d3f127d89d99151163f3186dabcf9 1. ~~Store files for Minecraft/Fabric/Forge version validation and latest version acquisition in `work/filename`. Generate on SPC startup, don't delete after server pack generation. Refresh when SPC starts.~~ See https://github.com/Griefed/ServerPackCreator/commit/1927faa33da1063ba4eea239cabcf9c6a4335b8d and https://github.com/Griefed/ServerPackCreator/commit/ab080a6024138972c0b34524c4c7a728c64b8f74 1. ~~Set whitelist=false in template server.properties~~ See https://github.com/Griefed/ServerPackCreator/commit/bc4018edf2c33a240f4cdf7d9d1ad4378854c8ba 1. ~~Generate server packs in `server-packs`-folder in SPC home dir. Should fix issue mentioned in 9. **<sup>[1]</sup>**~~ See https://github.com/Griefed/ServerPackCreator/commit/539341d68f54965b958d74e11e7e9fcc31da9ada 1. ~~Update CONTRIBUTING.md and let people know about not being able to merge on GitHub because GitHub is a mirror from my GitLab~~ See https://github.com/Griefed/ServerPackCreator/commit/272119fb8103e2322a6fe5c05e3b5b516f50daa3 1. ~~Add missing description for `-lang` argument~~See https://github.com/Griefed/ServerPackCreator/commit/164073fc8b1a461d35f94921fb2f444728672738 1. ~~Autoappend `.exe` to javaPath *if* we are on Windows and *if* the user manually specified the path and *if* the path is correct, else autoset the path and ignore user-specified config for javaPath.~~ See https://github.com/Griefed/ServerPackCreator/commit/fae311ea2e5f0c38c7caec7a06d06ed43957eae5 and https://github.com/Griefed/ServerPackCreator/commit/b6da489e08da8a20074f32ae938658649b982f3e 1. ~~Docker: Check is STARTUP_PARAMETER is set. If not, assume `-cli`.~~ See https://github.com/Griefed/ServerPackCreator/commit/cad6e55e73048003896fdde1f3e2b27ce69fa78a 1. ~~Merge methods for creation of default files and manifest files for version validation.~~ See https://github.com/Griefed/ServerPackCreator/commit/9111e7c58508700b31efeb617f110bae9a8b9f7f 1. ~~"Addon API" as in, have a folder `addons` in which JAR-files can be added to provide additional functionality to ServerPackCreator. Would allow people to write and add more features without having to need to change the src. Idealy, provide examples in separate repositories.~~ See https://github.com/Griefed/ServerPackCreator/commit/2a93e5476d11e84215667460997b694d30e93770 and [ServerPackCreatorExampleAddon](https://github.com/Griefed/ServerPackCreatorExampleAddon) 1. ~~Merge checkJavaPath and getJavaPathFromSystem to one method which returns a string containing the correct path.~~ See https://github.com/Griefed/ServerPackCreator/commit/0c982cb5abd629e21fbc23c08b0a76240a4ea11f 1. ~~Tidy up GUI classes, meaning: Extract things like Dialogs into their own methods. Makes the GUI classes easier to read/understand and way more maintainable.~~ See https://github.com/Griefed/ServerPackCreator/commit/9268245df88d96fbe358b68de488992e102d448c and https://github.com/Griefed/ServerPackCreator/commit/7a335dab87acbd4f136e520fb6c1af012659606d 1. ~~https://github.com/Griefed/ServerPackCreator/issues/62~~ See https://github.com/Griefed/ServerPackCreator/commit/094a217e83f2f27ba1e3746088b459a542411254 and https://github.com/Griefed/ServerPackCreator/commit/e17322ed5db6bd18b4573be4a3562295317dd137 and https://github.com/Griefed/ServerPackCreator/commit/3811190cb401c8993d84f0026618ad6e4958ed27 1. ~~GUI: Refactor Minecraft version into selection from list gathered from manifest~~ See https://github.com/Griefed/ServerPackCreator/commit/5b56f18a90e7d3f1bfda98d5ae509a9cda29e959 1. ~~GUI: Refactor Modloader version into selection from list gathered from manifest and listed versions depending on selection of modloader~~ See https://github.com/Griefed/ServerPackCreator/commit/5b56f18a90e7d3f1bfda98d5ae509a9cda29e959 1. ~~https://github.com/Griefed/ServerPackCreator/issues/73 "Have an option to input custom java args for the servers."~~ See https://github.com/Griefed/ServerPackCreator/commit/929bfa680704846e72952989f9f6f4f71e081ac7 1. ~~Improve clientMods to autoescape [ and ] should a mod have said characters in its name. https://github.com/Griefed/ServerPackCreator/issues/71~~ See https://github.com/Griefed/ServerPackCreator/commit/0e029ec477864ea765e8ad446ac2b9b93186b952 1. ~~Rework GUI, possibly with NetBeans or similar software, to improve UX. Won't interfere with 12. and 13. Possibly make use of https://github.com/vincenzopalazzo/material-ui-swing as it looks sweeeeeeet af.~~ 1. ~~Toggle for Light/Dark mode? (`MaterialLookAndFeel.changeTheme(new CustomMaterialTheme());` see https://github.com/vincenzopalazzo/material-ui-swing/wiki/Material-Component-Supported)~~ See https://github.com/Griefed/ServerPackCreator/commit/949fb6aecd47518e0b91ca3a8be0516a9f2cb540 1. ~~GUI: Menu-bar:~~ 1. "Data": 1. ~~Load configuration from file~~ See https://github.com/Griefed/ServerPackCreator/commit/949fb6aecd47518e0b91ca3a8be0516a9f2cb540 1. ~~Switch between lightmode and darkmode~~ See https://github.com/Griefed/ServerPackCreator/commit/949fb6aecd47518e0b91ca3a8be0516a9f2cb540 1. "Addons": 1. ~~Entry for refreshing installed addons~~ 2. ~~Entry for opening the addon directory~~ 3. ~~Entry for opening the example addon GitHub page in browser~~ 1. "Files": 1. ~~Open ServerPackCreator directory in explorer~~ 2. ~~Open server-packs directory in explorer~~ 3. ~~Open server_files directory in explorer~~ 1. "About": 1. ~~Entry "About" to replace About-tab~~ 1. ~~Entry "Help" to replace the help button in the Create Server Pack-tab~~ 1. ~~Entry "GitHub" which links to GitHub project~~ 1. ~~Entry "Buy me a coffee" which links to GitHub Sponsors~~ 1. ~~Can Mohist be supported as well, somehow? Mayhaps as a checkbox only visible if Forge modloader is selected? For download/installation etc. https://wiki.mohistmc.com/#/. Should be possible.~~ Can already be done via addons. 1. ~~Check possibilities of createserverpack refactoring to run in separate thread. The process of generating a server pack needs to be able to run without problems once started and be independant/self-reliant. Basically: ServerPackCreator must allow for multiple parallel server pack generation tasks at the same time. Otherwise the whole REST API thing is pretty much DOA. ??? Refactor CreateServerPack to ServerPackHandler and extract run(...) into its own class which creates/receives all the objects necessary to successfully run the creation of a server pack.~~ See https://github.com/Griefed/ServerPackCreator/commit/93a666a54a89c74d63993d0c42de833338f93cbe 1. ~~FileWatcher to monitor whether any important files were deleted and if so, generate new ones. Namely `serverpackcreator.properties`, `log4j2.xml` and so on. Watched files would **not** include manifest files, as QuartzScheduler will take care of those.~~ 1. ~~serverpackcreator.properties to enable/disable/set various features/settings/properties in ServerPackCreator:~~ 1. ~~Allow configuration of hastebin server: `String requestURL = "https://haste.zneix.eu/documents";` should be `properties.getProperty("haste.server","https://haste.zneix.eu/documents");`~~ See https://github.com/Griefed/ServerPackCreator/commit/023537882243979fd7f2b66fc69113eb43477902 1. ~~Set language (replace lang.properties)~~ See https://github.com/Griefed/ServerPackCreator/commit/bb119727113ba0cb8e58977348673860bcb47851 1. ~~Change path for server pack generation.~~ See https://github.com/Griefed/ServerPackCreator/commit/4a36e76bfab5a66ce52c51e57bb16af79dddb752 1. ~~Move [FALLBACKMODSLIST](https://github.com/Griefed/ServerPackCreator/blob/webservice/backend/main/java/de/griefed/serverpackcreator/Configuration.java#L156) to serverpackcreator.properties. Allows users to expand it without having to touch the code of SPC.~~ See https://github.com/Griefed/ServerPackCreator/commit/bb119727113ba0cb8e58977348673860bcb47851 1. ??? ## Footnotes: **<sup>[1]</sup>** Overwolf's CurseForge app seems to use some sort of filewatcher. Using ServerPackCreator on any modpack inside the Instances folder can result in random mods being deleted. I advise against using ServerPackCreator on any modpack inside the Instances folder. Note: ServerPackCreator does not delete any mods. It reads a list of mods inside your modpack into memory, removes clientside-only mods from that list and then copies that list to the server pack. I thought I fixed this issue a while back when I rewrote the way ServerPackCreator copies mods from the modpack to the server pack, by not deleting clientside-only mods but instead just not copying them over. It appears the problem still occurs and only happens when CurseForge is opened and a server pack is generated for a modpack inside said folder. To avoid this issue, simply copy your modpack to a directory outside the Instances folder and you are good to go.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Griefed/ServerPackCreator#635
No description provided.