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

[Feature Request] Support Java 17 #556

Closed
GhostIsBeHere opened this issue Aug 6, 2023 · 2 comments
Closed

[Feature Request] Support Java 17 #556

GhostIsBeHere opened this issue Aug 6, 2023 · 2 comments
Labels
wontfix This will not be worked on

Comments

@GhostIsBeHere
Copy link

Java 17 is the usual version to run minecraft severs at, and almost every plugin is built for it. PaperMC's offical guide recommends Java 17. Many server hosting services don't even support Java versions above 17. As much as I would love to use this amazing-looking plugin, I can't because of it's java 19 requirement.

@PimvanderLoos
Copy link
Owner

I'm afraid there are no plans to lower the Java requirements at this time. I use some of the features that have been added in the newer versions. Moreover, I plan on bumping my version requirements to Java 21 the moment it's released (September 19). Getting rid of the code that uses the newer features and lowering the Java version requirement is only going to cause more problems down the line because of it.

I plan on switching to Java 21 because of JEP 444: Virtual Threads and JEP 453: Structured Concurrency. These JEPs will make asynchronous code much easier to use and maintain and also massively reduces its overhead. Because this version will be an "LTS" release (however meaningless that is,) I hope that many hosting services will finally update their JDK offerings.

It's incredibly easy to manage multiple versions of Java these days. For installing new versions of Java, SDKMAN is a very simple solution. Installing OpenJDK 20 is as easy as running sdk install java 20.0.2-open, or 20.0.2-tem if you prefer Temurin. They support a wide range of JDK Distributions.
I use JDK 20 in the example and not 19 because 19 is no longer supported, so I'd actually recommend running 20 instead of 19. However, that has no effect on development, as you can run this plugin on JDK 20, 21-ea, and likely all future versions of Java just fine. The only issue will be the code generation part, which will need to be updated every now and then to use the latest version of ASM, which 'only' supports up to JDK 21 as of 24 March 2023.

Changing the version on the various control panels also seems very easy, so it only requires minimal effort from the hosts once every 6 months (and hopefully update it every now and then.)
From what I can see for Multicraft, you just need to add a new .jar.conf file and add the path to the specific Java version as described here.
For Pufferpanel, it is even easier as of version 2.6, as it uses a "javadl operator" that supports a version parameter that corresponds to a major Java version supported by Eclipse Temurin. As you can see in this PufferPanel template, it's as easy as changing the javaversion.value setting from 17 to 20 to use a more modern version of Java.

Therefore, I would recommend finding another host if yours is too lazy/incompetent to keep an up-to-date version of Java around. I wouldn't trust them to properly manage the environment my server is running in.
A hosting service isn't just a get-rich-quick scheme; it also requires the owner/admins to put in some effort every now and then. If they refuse to put in the minimal effort required for something as simple and quick as this for whatever reason, I would not be confident they would or even can fix any serious issues if any were to arise in the future.

@PimvanderLoos PimvanderLoos added the wontfix This will not be worked on label Aug 7, 2023
@GhostIsBeHere
Copy link
Author

Ah. Thank you anyways

@PimvanderLoos PimvanderLoos pinned this issue Aug 16, 2023
@PimvanderLoos PimvanderLoos unpinned this issue Sep 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

2 participants