Always use void promises for sending transformed packets. Try set
original promise as success only after transforming packets.

Attempting to actually use the promise in sending packets creates
problems in single->multiple packet transformation, for example packet
ordering breaks, because if actual promise had a listener that sends
another packet, such packet will be sent first, and then the rest of
multiple packets will follow, or it breaks in case the actual promise
did fail because the transformer thrown the exception, but the packet
that used that promise did succeed.
2 files changed
tree: 1d2a6bd9d6a1c4865cf4495c851c7dc1c5e874d1
  1. .editorconfig
  2. .gitattributes
  3. .github/
  4. .gitignore
  5. LICENSE
  6. README.md
  7. build.gradle
  8. gradle.properties
  9. gradle/wrapper/
  10. gradlew
  11. gradlew.bat
  12. helper.gradle
  13. processors/
  14. resources/
  15. settings.gradle
  16. src/protocolsupport/
  17. tests/
README.md

ProtocolSupport

Build Status Chat

Support 1.16, 1.15, 1.14, 1.13, 1.12, 1.11, 1.10, 1.9, 1.8, 1.7, 1.6, 1.5, 1.4.7 clients on Spigot 1.16.1

Important notes:

  • Only latest version of this plugin is supported
  • This plugin can't be reloaded or loaded not at server startup

Known issues:

  • [Anything that is not latest] Items in creative mode may not work as expected, or may not work at all
  • [1.8 and earlier] Thrown potion texture is invalid

Known wontfix issues:

  • [Anything that is not latest] Stats are not sent
  • [All] Can't have multiple boats passengers (Intentional to prevent rendering glitches). Disable all versions before 1.9 using API to reenable multiple boat passengers.
  • [1.12 and earlier] Chests are seen as enderchests (Intentional to prevent rendering glitches). Block mappings can be changed using API if you with to see chests as chests again.
  • [1.8 and earlier] Can't control vehicle (Not directly translatable at network level, too much work to implement serverside)
  • [1.4.7 and earlier] Server shows up as “incompatible” in the server list (Impossible to fix due to the lack of an way to verify the client version during server list ping)

Website: https://protocol.support/

Spigot: https://www.spigotmc.org/resources/protocolsupport.7201/

BukkitDev: https://dev.bukkit.org/projects/protocolsupport/

MC Market: http://www.mc-market.org/resources/4607/

Jenkins: https://build.true-games.org/job/ProtocolSupport/


Licensed under the terms of GNU AGPLv3