Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

can't create 1.18.1 forge server #42

Closed
GitEz-code opened this issue Jan 23, 2022 · 6 comments · Fixed by #50
Closed

can't create 1.18.1 forge server #42

GitEz-code opened this issue Jan 23, 2022 · 6 comments · Fixed by #50

Comments

@GitEz-code
Copy link

when i use the command npm run start -- generate server Test4 1.18.1 --forge 39.0.59
it can't find a structure for mods:
here the error message:
Error: No forge mod structure found for Minecraft 1.18.1! at Function.getForgeModStruct (/home/gitez/Development/Nebula/dist/util/VersionSegmentedRegistry.js:23:15) at ServerStructure.createServer (/home/gitez/Development/Nebula/dist/structure/spec_model/Server.struct.js:43:77)

@dscalzi
Copy link
Owner

dscalzi commented Jan 23, 2022

1.18.1 is not yet supported

@TheoPierne
Copy link

Hey any news on the support of the 1.18 ? @dscalzi

@dscalzi
Copy link
Owner

dscalzi commented Apr 3, 2022

I've been expending most of my energy trying to hit an aggressive deadline at work. I'll see if I can whip something up to run these versions without redoing any of the settings management.

@dscalzi
Copy link
Owner

dscalzi commented Apr 3, 2022

Okay so here's the basic status of everything. Forge 1.17.1 and 1.18.2 work with the changes I've made to the feature/1.17 branch (on both Nebula and Helios). The changes on Nebula's end are pretty much done. I haven't merged them to master because Helios is not 100% ready to handle these two new versions. Before I go into the setbacks, let me explain how you can test out 1.17/1.18 on these branches.

Nebula

  1. Fetch from this repository (git fetch)
  2. Checkout the feature branch. (git checkout feature/1.17)
  3. Ensure dependencies are up to date (npm i)
  4. Compile the typescript (npm run build)
  5. Generate a new server (npm run fs -- g server Test VERSION --forge latest)
    • VERSION is either 1.17.1 or 1.18.2 depending on which version you're interested in.
  6. Generate a dev distribution and install it to the local helios folder (npm run fs -- g distro dev_distribution --installLocal)

Helios Launcher

  1. Fetch from this repository (git fetch)
  2. Checkout the feature branch. (git checkout feature/1.17)
  3. Ensure dependencies are up to date (npm i)
  4. Enable dev mode.
    • Open the console.
    • Run DistroManager.setDevMode(true) to enable dev mode.
    • Pull the local dev_distribution DistroManager.pullLocal().then(() => console.log('OK'))
  5. Change the server and fix the java settings manually.
    • Change the selected server to the one you want to test.
    • Launch it ONCE so that settings fixes itself. The launch will fail but that's ok.
    • Go to the settings and set the java executable to an installation of JDK 17.
    • The existing Additional JVM Options are for JDK 8 and they must be either removed or replaced.
      • Vanilla uses the following args, you can use them too: -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
      • You can also just leave the textbox blank, the vanilla arguments are not required.
    • Go back to the home screen. If the launch area is stuck just type toggleLaunchArea() in the console. That will bring back the Play button.
  6. The version should now launch.

Setbacks.

  1. From the setup instructions, you can tell that the JVM options between JDK 8 and JDK 17 are incompatible. Could do a number of things, the best option really is just to store the settings per server instance and default them based on the MC version. A quicker and dirtier solution is to disable that Additional JVM Options box and have the launcher manage them internally.

  2. Java handling will flip/flop back and forth from the "best" JDK 8 to the "best" JDK 17 if you have a multiple server network (with a mix of versions below 1.17 and 1.17 or above). This isnt too much of a concern if you only have a single server, or all of your servers are 1.17+. The optimal solution is to change the settings to store per server instance.

I'm going to have to dedicate a couple of full days to make the necessary changes to the settings view. Feel free to play around with the new versions on the branches in the meantime.

@TheoPierne
Copy link

Thanks for your great work we appreciate that. By the way take time for yourself, you deserve it !

@christophe-merlen
Copy link

Hi,
I have a probleme. i dont know if you can help me but when i try to generate the distro i have Error: ENOENT: no such file or directory, open 'D:\root\cache\forge\1.18.2-40.1.74\versions\1.18.2-forge-40.1.74\1.18.2-forge-40.1.74.json'

@dscalzi dscalzi linked a pull request Nov 27, 2022 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants