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

1.20.6 update checklist #755

Open
2 of 18 tasks
libraryaddict opened this issue May 28, 2024 · 11 comments
Open
2 of 18 tasks

1.20.6 update checklist #755

libraryaddict opened this issue May 28, 2024 · 11 comments
Assignees

Comments

@libraryaddict
Copy link
Owner

libraryaddict commented May 28, 2024

The reason behind this update taking so long is that ProtocolLib hasn't been working as well as it had in the past (Not just for this update), and although it is an option to create PRs and whatnot, I've decided to instead switch to PacketEvents as per #752.
You can check that issue to read some discussion that has happened there.

This is a checklist of tasks needing doing before this is complete.
This checklist does not promise a timeline of when things will be complete, as some tasks in this may be missing.
I would expect perhaps, 15th of June?

The earliest builds are probably going to be ones you have to go out of the way for, I have little intention to roll out this update until I'm sastified with it. It promises to break plugins and if there's a bad enough bug, it'd break servers for no reason. After all, this is a massive switch to PacketEvents, and requires internals rewritten.

https://github.com/retrooper/packetevents

Issues

  • Split the API into a different module so the shaded libraries are not in maven repo
    • Stop putting the modules into the maven repo
  • Sounds may not be caught (location wise) properly
  • Modded client support (custom entities) is probably not working
  • Paintings turn invisible when moving Painting now wants a direction set when it's spawned in, need to check how it worked in earlier versions and handle appropiately. Either by automatically rotating (respawning), or by making it a rotation in the FlagWatcher. Probs the former Rotating would involve a lot of respawning the painting/frame, not really worth it
  • Update README.md, SpigotMC and potentially discord to replace ProtocolLib references with PacketEvents (With references for old version of plugin)
  • Properly support Bukkit Particle parsing and conversion between PacketEvents
  • Instead of removing outdated translations, shift them into a file in the LibsDisguises folder, something like "removed_translations.txt" with a note for each? Could also log what it was
  • Implement better async support, may require a larger change of internals
  • Possibly support folia's threading thing
  • Depend more on Components instead of simple strings. This is mostly in reference to entity custom name
  • Add method descriptions, although some of them need to be tested ingame to verify if they have a visible effect or not. And better adventure text support will be needed which could break translation strings
  • Fix entity look/body rotation being sent incorrectly, spawning in with the wrong direction for example May not be an issue anymore
  • Add skin changing functionality, not an actual disguise! Or maybe it is? But self disguise shouldn't be a thing
  • Look into some way to play an animation, such as watchers having "playAttackAnimation" or "playSnifferAnimation" or something. With a parameter to loop said animation? Same for playing a sound, such as creeper hiss
  • Switch over other enums > interfaces that need to be supported. Eg, Cat.Type
  • Add ability to play a noise the disguise makes, when they disguise? Visible to the self disguise only?
  • Add ability to change move speed to be equal to the disguise
@andrewkm
Copy link

Goodluck on the packetevents switch!

@libraryaddict
Copy link
Owner Author

Small update for anyone who doesn't pay attention to the discord.
I have been putting some builds in there, currently it's just in a state of needing some testing done before I'll push it to jenkins as dev builds, which will start breaking plugins/putting it out there as a whole.

@libraryaddict
Copy link
Owner Author

Oh and the 1.21 new mobs, which I forgot to add and forgot to mention here. It has a basic level of support, so hopefully it's just a case of adding the accessors to the flagwatchers

@andrewkm
Copy link

@libraryaddict I seem to be getting an unstable issue with tests while compiling the latest:
https://gist.githubusercontent.com/andrewkm/c2f7e2d2ec045e79f0ec945936780d91/raw/9955a83d303a2dce843d5b24e477fbec97734c96/gistfile1.txt

Any idea what could be going on here, it is not an issue on md-5's jenkins however. Am confused...
I do have packetevents compiled from both their master & 2.0 branch.

@libraryaddict
Copy link
Owner Author

Best guess atm on mobile, is outdated code or dependencies

@andrewkm
Copy link

Best guess atm on mobile, is outdated code or dependencies

Hm, I'm compiling master for LibsDisguises, and 2.0 for PacketEvents.
File size seems to come out exactly the same as md-5's jenkins as well, just the tests are failing. Hm.

@libraryaddict
Copy link
Owner Author

Alright, fixed. Glad it's an issue I had seen before or this would've stumped me.

@andrewkm
Copy link

Confirmed fixed, thanks!

@libraryaddict
Copy link
Owner Author

Added a few TODO's and removed older TODO's that were cluttering & obsolete.

@libraryaddict
Copy link
Owner Author

The other feature that we will be waiting for is retrooper/packetevents#866
Without it, servers using datapacks will break in the update. But it's likely to be ready long before I am.

@libraryaddict
Copy link
Owner Author

libraryaddict commented Oct 5, 2024

WIP list of things to do before release

  • Migrate configs to a better structure
  • Have hitbox setting scale with the scale attribute, both disguise and non-disguise
  • Maybe need to have nametags follow vehicles, not sure if fixed or not
  • Check that the color codes are properly handled, had formatting tags shown in action bar "now disguised as" on a valid colored name
  • Check we're throwing around color formatting properly, maybe not handle it all as a string
  • Bedrock / Geyser has a desync with player movement & names
    • Fix it so we try to use normal mob names, only to fall back on armorstands if multiline? So this will always work perfectly for a casual user. Might not work properly for non-players hmm.
  • Enderdragon is apparently shown backwards on 1.21 self disguises, need to verify if this is a recent change and if I might've broken this

Optional

  • Add particle effect controlling on living entities, "addParticle" "getParticles" "setParticles(Particles[])" which requires some special handling for the "addParticle"
  • Handle "" name copying the same way, PlayerDisguise is handling it 2 different ways for example
  • Add a way to invoke animations, such as swing arms
  • A bug where "for some reason disguising as a player on 1.21.1 just scales the player model down to like 0.75. If I add SetScale 2, it shrink and if I set it to 0.5 it shrinks as well. no matter what value I try, it shrinks instead of scaling up. it seems to just be scaled down for the player disguised as it"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants