Backwards Compatibility
Pheotis opened this issue ยท 1 comments
Background
We are currently using the 1.17 API.
As 1.17 has not been fully phased in by the community yet, it would be a good idea to support 1.16 as well.
Description
When a user runs the plugin on 1.16, they are met with an IPE.
We should probably add backwards compatibility to avoid this (at least to 1.16).
Trace
[08:50:38] [Server thread/ERROR]: Could not load 'plugins\Stargate-0.10.7.0.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: Unsupported API version 1.17
at org.bukkit.craftbukkit.v1_16_R3.util.CraftMagicNumbers.checkSupported(CraftMagicNumbers.java:361) ~[patched_1.16.5.jar:git-Paper-779]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:149) ~[patched_1.16.5.jar:git-Paper-779]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:414) ~[patched_1.16.5.jar:git-Paper-779]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:322) ~[patched_1.16.5.jar:git-Paper-779]
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.loadPlugins(CraftServer.java:393) ~[patched_1.16.5.jar:git-Paper-779]
at net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:269) ~[patched_1.16.5.jar:git-Paper-779]
at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1069) ~[patched_1.16.5.jar:git-Paper-779]
at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:291) ~[patched_1.16.5.jar:git-Paper-779]
at java.lang.Thread.run(Thread.java:831) [?:?]
Repro Steps
- Start a 1.16 server with a fresh install of the latest stargate release (10.7).
Stargate has now disabled itself due to the IPE.
What I know, this would mean we would have to do another refactor just for this. I could look into doing this for the complete refactor, but some things are best left untouched; Backwards compatibility would be nice, but it would make the project more complex and take up time. I generally think that if you want to use a version which works for 1.16, then there's always old versions that can one could use instead. (are those published?)