* feat: Add server registered/unregistered events
* Annotate new API with `@Beta`
* Migrate from classes to records
* Add null checks
* Fix code style indent
* Add links in documentation
* Fix docs indent
---------
Co-authored-by: powercas_gamer <cas@mizule.dev>
* Configuring the player (i.e. sending resource packs) should now be done in the new PlayerConfigurationEvent.
* The new PlayerEnteredConfigurationEvent is called when a player acknowledged the switch to configuration state.
* The PlayerEnterConfigurationEvent is no longer called twice. It is now called when the backed wants to reconfigure the player.
* The PlayerFinishConfigurationEvent should no longer be used to configure the player (i.e. sending resource packs). This is because since 1.20.5 the backend server can't send keep alive packets between switching state anymore and the connection will thus time out.
* Document possible blank spaces in the command of the CommandExecuteEvent
* Added Javadocs warning about unimplemented methods in Velocity
* Improved KickedFromServerEvent documentation
* Fixed `apiNote` javadoc generation
* Do not apply a resource pack that has already been applied
* Throw IllegalStateException in case of applying a resource pack already applied from the API
* Updated some dependencies
* Added support for ServerResourcePackSendEvent resource pack modification
* feature: Expose connecting player's UUID in the PreLoginEvent
* Applied suggestions
* Updated the javadocs compatible version to Java 17
---------
Co-authored-by: Adrian <adriangonzalesval@gmail.com>
* Initial ResourcePack refactor
* Implement sendResourcePacks method
* Initializes the ResourcePackHandler at player initialization
* Move adventure to velocity resource pack conversion to the same class
* Added some internal resource pack documentation
* Refactored Modern ResourcePack handling
* Handle RemoveResourcePackPacket from backend server
* Fixed license
* Use removeIf instead of manual iteration
* Improve ModernResourcePackHandler
* fix hash conversion
* bundle resource packs
* keep old constructors of PlayerResourcePackStatusEvent
* add @Nullable to PlayerResourcePackStatusEvent#getPackId
* Use a single instance of BundleDelimiterPacket
* Throw UnSupportedOperationException on operations not supported by LegacyResourcePackHandler
* Use a single instance on empty packets
* Handle active packet bundle sending from backend server in case of sending a packet bundle of resource packs
* Improve packet bundling
* Fixed login for players with version 1.20.2
---------
Co-authored-by: Gero <gecam59@gmail.com>
* Send LoginAcknowledged immediately
* Resend player list header/footer after backend server switched to config state
* Fix clearHeaderAndFooter not clearing fields in ConnectedPlayer
* Clear boss bars, header/footer, tab list when switching client to config state
* Send client settings in config state
This is part of preparatory work for Velocity 5.0.0's revamped event system, but this change is safe to bring into the 3.x.x series. This affects the scheduler for now, but command execution will also be moved into the per-plugin thread pool, along with invocations of `EventTask.async()`.