[Request] SpongeForge api 8 - Java 11
fireblade1576 opened this issue ยท 37 comments
after a bunch of testing. And this is testing on a multiplayer server re-loading the plugin several times for each tested version.
Of the 4 versions that say they're compatible w/ 1.16.
The aug 22, 2021
Oct 28, 2021
Dec 01, 2021
April 28, 2022
May 08 2022.
Uploads. Only the oldest, the Aug 22, 2021 version seems to load for minecraft 1.16.5.
Full disclosure the server runs using Arclight which is a loader for running both forge mods, and Bukkit plugins. However I did want to note which 1.16 compatible versions worked/and which didn't for 1.16.5. And ask if there's any known reason for the other versions to not be working.
To be more specific, it isn't that the plugin isn't working. It's that the server doesn't read the other versions as a plugin at all. I tried re-starting the server several times for each version to see if it was just a startup bug as some plugins are prone to experience. But that didn't seem to be the case.
So full disclosure, i dont give support to forge-bukkit hybrids (i have a sponge version that i support spongeforge with) but as this is more of a question about the inner workings of ships, ill allow it ;)
So the first thing to understand is Ships 6.0.0.0 has a massive translation layer allowing for one plugin (in this case ships) to be translated into either bukkit (now paper) api or sponge api calls
Prior to Ships beta 14 (released October 28th 2021) this translation layer was tightly integrated with Ships, however Beta 14 seperated the two which allowed other developers to use the translation layer and made ships code more readable.
However it was more of a double edged sword in the fact that Bukkit has a lot of flaws when it comes to how it does things. One of which is that its still using the command code from prior to 1.13's changes while sponge's command system does. Prior to beta 14 i could put in the register for both sponge and bukkit commands, however with it being seperated and with bukkits register needing to be done outside the plugin booting .... I couldnt.
So i used something called SimpleCommandManager
which is part of the Bukkit api .... But the craftbukkit team (prior to spigot and paper) encouraged you not to use it and to this day no one should (i believe paper team have removed it). This bit of code allows me to register a 1.12.2 command in code which allows ships (and other plugins that use the translation layer) to register commands on bukkit and sponge.
My guess is your forge-bukkit hybrid platform doesnt support SimpleCommandManager or at least not in the same hacky way that those old ships versions are using it.
Modern day ships has dropped support for spigot completely and boots as a paper plugin, so while i still need to register the command as a 1.12.2 command, paper exposes a proper way to register commands though code so the translation layer uses that.
I will also say im only guessing at why its gone wrong too. I know 1.16 bukkit was a strange time as MC 1.17 changed the java version from java 8 to java 16 and then MC 1.18 jumped to Java 17 but mc 1.16 couldnt run on java 17 so we developers either couldn't take advantage of 1.17+ features and targetted 1.16. took advantage of 1.17 or 1.18 features and dropped support for 1.16 or we targeted 1.16 and did some reflection hackyness to gain 1.17+ features .... Or just created 2 jar files. Either way not great
So the best way to resolve any issues I'm having with 1.16 from my current standpoint. Would be to either try spongeforge for this version w/your available spongeforge plugins. Or drop bukkit and try running a paper + forge mod setup somehow.
I could also attempt to setup SImpleCommandManager but I assume that'll be an entirely new hassle. Ty for the response I'll do my best with the information given.
Best way would be using sponge yes as even the latest ships version works on 1.16.5 sponge
With those older ships versions, it doesnt matter if its paper or just pure bukkit api, both should still have simplecommandmanager. It all depends on if your hybrid supports SimpleCommandManager or not.
But also like i said, without seeing the issue myself, i cant guarantee its that, im just guessing on why its happening. Could be some other change between those versions that causes it
Thinking about it. Another possibility is that the version string that your hybrid server is reporting isnt what ships expects.
Essentially in pure bukkit, there is no way of getting the minecraft version. So ships grabs the full version (which would be something like spigot-MC1.16.5-git5313
) and then attempts to filter out everything but the mc version.
What caused a lot of issues was paper changing how it displayed it full versioh. But sadly that hacky way of finding the version was the only way for pure bukkit. Both sponge and paper dont have this issue so when ships dropped support for none paper bukkit servers, it was one of the first things i changed
Im still working on it. Currently 1 major bug in it whereby its not including the licence sign in the move which is causing 2 problems.
- it leaves the licence sign behind
- on smaller moves it detects the licence sign as a obstruction
Personally not got a clue whats causing this, but dont worry i will find out. The good news is everything else seems to be in working order
Got a little update:
Fixed up a lot of the issues including the issue where ships now moves with the latest changes.
You do not get teleported with the movement yet, but working on that and it seems like the only issue left
Sorry to drag on, and for a way late response. Figured It'd be better to continue here than it would be to make a new ticket. After trying a few different loaders I decided to try your Spongeforge build for 1.16.5, I've run into a slight problem,
My server says that the ships plugin is "compiled by a more recent version of the java runtime class file version" It says the spongeforge plugin is compiled on class file version 60.00, and that my java can only recognize up to class file version 55.
I tried updating to java 16 to let it read it, but java runtime 16 doesn't work w/ 1.16.5 minecraft. the next earliest version my server provider offers is 11 which is the one I'm using now.
I know its not really a bug but any idea how I could go about solving this? Solutions preferably aside from asking my server providers to add in a JRE. Not because I'm not willing to do that but because I've already been trying to do that
The ships for sponge does require java 17. But if i get some time, i could release a java 11 edition. Shouldn't take too long
Hey, I havent tested it yet, but I got it building with Java 11. Ill send you the auto build list, the top one is the latest, so click the latest and then select standalone-ships-sponge
which downloads a .zip file. Inside that zip file will have the plugin jar file
https://github.com/Minecraft-Ships/CoreGradle/actions?query=branch%3Amaster+event%3Apush
crash-2024-01-20_18.49.18-fml.txt
The first is an odd message from my control panel, the latter is the crash report.
Ah i know the issue:
mods.toml missing metadata for modid translate_core
Should be a easy fix. When i get a sec ill have a fix up
Aight so. It does load, and the server registers it as being loaded properly. Weird bug tho
https://medal.tv/games/minecraft/clips/1QuGSEYYEqUhbl/d1337TBur9UF?invite=cr-MSx5SWssMTEzMzA0NjUyLA
Signs don't seem to be able to show text visually, the clip displays me trying to test to see if the plugin still works despite signs text not appearing. Including trying to view my attempted ship creation w/commands (Tho I'm not familiar w/the commands of ships enough yet so I may have done that wrong)
As well, my console for the server has a weird notif
Which appeared after each time I tried placing a sign.
I should have some time to test it tomorrow (no promises). I should be able to work out the kinks.
I will say the version of ships your getting has the newer boot code, which i had only tested on vanilla. In theory should work fine for forge, but hadnt managed to test it.
The development edition of ships is also very much newer then the Bukkit end of things too with a lot of quality of life changes. While most have been tested on the bukkit and sponge side, there was a kink in bukkits code to prevent me from releasing it. So once im happy with it sponge side, you can class it as a early release
Had a good test with ships on sponge forge. Fixed a few loading issues so its now loading fully on my machine. There are a few other small issues before i push the code.
These issues are general ships issues, not to do with sponge or bukkit
did you want me to test the "Fixed block break", or are you still working on the test one?
want me to try testing it out on my forge server? Or did you want to finish up the player TP first
Fixed the teleport issue. Turns out it was just my ship.
Mind testing it just to make sure your happy with it?
I did see on my forge it does come up with some class read issues, but its a none issue so ignore them
https://medal.tv/games/minecraft/clips/1RJHc2B0_z3P8O/d1337vLnW06u?invite=cr-MSxHbTIsMTEzMzA0NjUyLA
Some slight bugs, Potentially just my lack of knowledge on the plugin itself.
Starting with the amount of wool needed, Idk how it considers that much of the ship being wool as less than 25%. Easily fixable by just me setting the wool requirement to be lower so that's not too big.
The next one is the ships movement. It doesn't seem to want to turn/move in any way, it just says there's blocks in the way when as far as I could tell there isn't. Maybe the ship needs more of a gap between it and any underwater sand than what I had?
When I set the server up fr for me to use I'll be using the Islands seed so 90% of the world would be water. So it wouldn't be too big of an issue then. Can't tell here if that's the case or not though.
Sorry for the rushed testing tho, I need to go make some food I havn't eaten in awhile.
Odd that it said it was in the way. Mind running the command
/ships ship <ship id> track
This will show you what ships sees as your ship. Just making sure its not classing the water or air as your ship (shouldnt do)
https://medal.tv/games/minecraft/clips/1RK7iOLfUUoJId/d13370DrZDoC?invite=cr-MSx2c0EsMTEzMzA0NjUyLA
Looks about like the regular ship, I made a new one tho since the other one got.. Kinda messed up when it was made to move.
Dont need your discord, its just notifications to say a comment occurred.
im on your server BTW
https://medal.tv/games/minecraft/clips/1Sc01mAg3Byjh4/d1337ptzPbtW?invite=cr-MSxWRlIsMTEzMzA0NjUyLA
Mb on how long it took me to respond,
So there's a bug where after teleporting the player it sets their hunger to 0?
Also the sign's don't seem to turn the right way when the ship transfers. Other than that it seems to be working tho o.o
The teleport takes a sponge snapshot of the player before hand and then restores the players snapshot at the new location. There shouldnt be a bug for food, but it is possible that it takes the wrong hunger value or something like that. It maybe out of my reach though. All depends where it goes wrong. I do test in creative so i didnt pick that up, thanks.
As for turning to the right. Can i confirm thats right clicking the wheel sign? But should be a easy fix
Little update, the new update should fix the hunger issue. Rewrote the entity snapshot logic
edit:
Just added a fix for the turning. Signs do not rotate (havent managed to work that one out yet) but it should be good for the most part
Sorry it took me a minute to respond, I put the most recent one up on the server,
https://medal.tv/games/minecraft/clips/1Tk1ynUQ1_MABN/d1337BBsrwxm?invite=cr-MSxEV0IsMTEzMzA0NjUyLA
For the most part it seems to work.. But uhh, the player character starts swirling after they move with the ship? It's kinda funny to watch.
Wow thats strange.
- not being teleport
- i have no idea whats happening with your player. Didnt even know that animation was a thing
xD
The being stuck in blocks should happen if you were teleported. Ill double check the video to see if you are teleporting. But to me it looked like the ship turned fast and you didnt teleport