Skip to main content

Async ProtocolLib

Experimental Feature Ahead

The feature below is experimental and might not behave as expected. Enable at your own risk!

Up until Triton 3.6.0 almost all packets were intercepted on the main thread.
Starting with Triton 3.7.0 you can enable an option on config to try out intercepting ProtocolLib packets asynchronously. This will significantly improve server performance, but it might present some unwanted side effects (see known issues below).

Enablingโ€‹

To enable this feature you must be using Triton 3.7.0 or above.

Setting the following option to true on Triton's config.yml on a Spigot server will enable the feature:

# EXPERIMENTAL: Intercept and parse ProtocolLib packets asynchronously.
# This might cause incompatibilities with other plugins.
# When stable, this will be enabled by default.
# Changing this REQUIRES a server restart.
experimental-async-protocol-lib: true

After changing the config, restart your server. A simple reload of the plugin won't work.

Known Issuesโ€‹

At the moment, the following issues are present when using this feature.

  • Chat does not get translated when using other plugins interacting with ProtocolLib (i.e. InteractiveChat)
  • If advancement translation is enabled, the player receives the pop-up saying they got all achievents everytime they change language. Sometimes there is even an error on terminal related to this.
  • Some packets are passed through Triton's listener twice for some reason. This breaks caching and might cause text (e.g. on player list header/footer) to not change when the player changes language.
  • Sometimes a one time error shows up on console related to initializing Entity related fields. This is an issue with ProtocolLib that isn't easily solvable on Triton.