dmulloy2 / ProtocolLib

Provides read and write access to the Minecraft protocol with Bukkit.
GNU General Public License v2.0
1.03k stars 257 forks source link

Minecraft 1.17 support #1209

Closed dmulloy2 closed 3 years ago

dmulloy2 commented 3 years ago

Hi all!

The initial part of updating to 1.17 is complete. 1.17 contained a lot of changes to NMS, which required a lot of changes in ProtocolLib. Note that, although the unit tests are passing and things seemed to work well in my testing, there still may be bugs. Please report them on GitHub. Make sure to search first and 👍 any issues you also have.

Developers: I tried to keep the public API as consistent as possible, but I would strongly recommend changing any uses of packet.getDimensions() with packet.getDimensionTypes(). The version was also bumped to 4.7.0-SNAPSHOT. Maven will hopefully start downloading source and javadoc jars with this release as well.

Lastly, thank you all for the support and patience. As you're probably aware, new MC updates are tough. Thanks to all my sponsors (there's somehow 8 of y'all which is insane) and all the one-time donors. I really appreciate y'all.

With all that said, here's the download: https://ci.dmulloy2.net/job/ProtocolLib/lastSuccessfulBuild/

AxlRose-RX commented 3 years ago

I will be the first one to download 🗡️

TNTUP commented 3 years ago

I will be the first one to download 🗡️

Are you sure? 😉 Bots might hop on them first :(

SlimeDog commented 3 years ago

My automagical update-checker is pretty fast, but I don't care about first. Same minute is good enough.

AxlRose-RX commented 3 years ago

is it possible to release it today for a good donation? 👯‍♀️

SlimeDog commented 3 years ago

Donate anyway, then wait for the unit tests to pass. Why would you want it at 52/113 ?

AxlRose-RX commented 3 years ago

just so my global chat work on the 1.17 server :D Venture plugin depends on ProtocolLib and is the only server isolated right now :D and not switching chat plugin again lol

SlimeDog commented 3 years ago

We have 10 plugins that depend on ProtocolLib, plus 7 soft depend.

dmulloy2 commented 3 years ago

Sadly I wouldn't expect anything super quickly. Mojang has been at work cleaning up their code, so I'm gonna have to get creative with stuff

SlimeDog commented 3 years ago

Good luck.

retrooper commented 3 years ago

Just wait till you start updating some of the packet-wrappers 💀

retrooper commented 3 years ago

Just a heads up, PacketPlayInUseEntity is painful to support

VanillaChan6571 commented 3 years ago

Oh boy. Here we are at windows update for 95% complete and it's gonna take forever lol. For real tho very nice and good luck!

EuanM199 commented 3 years ago

much love to @dmulloy2 for dealing with the pain of the MC updates. cannot wait for it to be out

TMKCRepo commented 3 years ago

Can't WAIT until 1.17 release. I really wanna make that 1.17 SMP server, but most of the plugins I use requires ProtocolLib.

My automagical update-checker is pretty fast, but I don't care about first. Same minute is good enough.

My automatic update-checker is pretty fast, but I don't care, same minute is good enough. (fixed grammar issues)

SlimeDog commented 3 years ago

Please don't assume that you know what I meant to say; automagical was intended. See (for example) this definition.

Can't WAIT until 1.17 release

You can wait, with bated breath, like the rest of us. Enjoy.

Effendil commented 3 years ago

Do the 1.17-Update of Protocollib as Premium and the Dev can feel like Scrooge McDuck XD.

kennykantisiri commented 3 years ago

Thank you so much for your hard work! ❤️

libraryaddict commented 3 years ago

Is this version supposed to be backwards compatible?

Getting an error with ProtocolLib trying to access the 1.17 mappings on a 1.12 server.

https://gist.github.com/559996aa1a329663b8b88de4c02a4f90

dmulloy2 commented 3 years ago

@libraryaddict Not currently. Going to work on that in the next few days

LOOHP commented 3 years ago

Using boardcastPacket (packet, entity, filter) seems to throw errors related to not being able to find a method or field of the EntityTracker.

sendServerPacket has no problems.

dmulloy2 commented 3 years ago

@LOOHP can you make a separate issue for that? I'll take a look

ErythroCraft commented 3 years ago

[17:25:31] [Server thread/INFO]: [ProtocolLib] Loading ProtocolLib v4.7.0-SNAPSHOT-b507

[17:25:36] [Server thread/INFO]: [ProtocolLib] Enabling ProtocolLib v4.7.0-SNAPSHOT-b507 [17:25:36] [Server thread/INFO]: [ProtocolLib] Started structure compiler thread.

works fine

retrooper commented 3 years ago

Hey dmulloy2, is there anything you need help with while upgrading to 1.17? I don't just wanna start working on a PR and realize you've been working on the same thing.

dmulloy2 commented 3 years ago

@retrooper only things i can think of:

if any of those sound interesting

retrooper commented 3 years ago

Curious, have you managed to find a solution for getting entities by their id asynchronously on 1.17?

LOOHP commented 3 years ago

It seems to be possible by invoking what getEntities() would invoke by yourself, tho not sure if it is safe.

retrooper commented 3 years ago

I deleted my previous message as I saw he updated his entity tracker, I might check it out.

retrooper commented 3 years ago

Didnt expect such a quick response lol

AxlRose-RX commented 3 years ago

wow with latest build tons of my plugins are working now! thank you so much @dmulloy2!