garbagemule / MobArena

MobArena plugin for Minecraft
GNU General Public License v3.0
195 stars 151 forks source link

1.20.6 Support #793

Closed frafol closed 3 months ago

frafol commented 5 months ago

Bug report

Short description Plugin does not start in 1.20.6

Reproduction steps

  1. Start a server with Spigot/Paper 1.20.6.
  2. Error appears in console

Details

garbagemule commented 5 months ago

Thanks for the report.

Looks like Spigot removed some of the deprecated API that MobArena still uses. We'll need to at least rework some of the potion-related stuff, but there may be more. I'll try to take a look at it this weekend to see if we can't get a patch out fast.

garbagemule commented 5 months ago

I spent some time trying to figure out how we can go about this, but at least with regards to potions, the Spigot API is a hot mess of types and methods that are wildly incompatible between 1.19 (which MobArena currently targets) and 1.20.6 (but perhaps also older versions of 1.20). At any rate, it doesn't seem like it's feasible to retain the syntax currently used in MobArena and still make it compatible with older Minecraft versions.

I'm considering removing potion support from the MobArena syntax entirely, such that it would be necessary to either use class chests or saved items in order to use potions. It's obviously not ideal, but I don't trust Spigot to keep this part of the API stable or backwards compatible at all. If we can't find a feasible solution, we'll have to drop either backwards compatibility or potion support, and even if we do drop backwards compatibility in favor of potions, I'm not sure we can reuse the current syntax, as the API has changed quite a bit.

garbagemule commented 4 months ago

Had a chat on the Spigot Discord, and it looks like we may need to bump to API version 1.20.2, and I'm pretty sure that's going to break backwards compatibility with all server versions prior to 1.20.2.

That last point is borderline heartbreaking, because we'll be leaving behind even more people than we did when we dropped support for 1.8 and 1.12. But on the other hand, this breaking API change in Spigot isn't going to just fix itself, so we need to move on somehow at some point. A silver lining is that we'd probably be able to fix both #787 and #791 in the same bump.

garbagemule commented 4 months ago

md_5 just restored the PotionData API that MobArena uses, which means MobArena will work on newer builds of 1.20.6, at least according to my brief testing with some of the things that broke in the API. It's temporary, though, and will be removed later down the road, so we still have to make changes in MobArena and bump to 1.20.2 going forward.

@frafol Please give this new Spigot build a try. You should be able to get it from BuildTools now, but if it says it's using a cached version, try with --rev 4156 instead. If you can give it a good, hard whirl to see if we have any other issues in 1.20.6 with MobArena 0.108, that would be very much appreciated 🙏

frafol commented 4 months ago

I'll test soon, I'll let you know

frafol commented 4 months ago

image working correctly in latest spigot version.