- Faster loading times and improved latency; Geyser no longer creates a physical TCP connection to join the server
- Less configuration: remote address and port are now irrelevant
- Accurate IP addresses without needing Floodgate.
Co-authored-by: Redned <redned235@gmail.com>
Mostly checked with IntelliJ, but manually performed. The only issue I possibly anticipate is item name/lore issues, but the new method should be technically better.
By updating these dependencies, we bring in a couple fixes that should improve network performance:
Use TCP_NODELAY for the Java connection
Use Epoll/KQueue if possible for the Java connection
Only use one event loop for the Java connection
Fix Netty dependencies so Spigot and BungeeCord can use native network types
Currently, Geyser-Spigot pre-1.12 breaks with these changes. It is unlikely that this will be fixed.
* Send message to Java if command is Bedrock-only
If a Java player attempts to use a Bedrock-only command, such as `geyser statistics`, they will get an error message stating that this command is only for Bedrock players.
This commit also cleans up Velocity Adventure dependency usage. Issues were caused because of the way relocation works and because Velocity also uses Adventure.
* Only look for a session if we have to
* Update languages submodule
* Initial work on 1.16.100 - currently crashes the client
* Update runtime item states
* Use new Bedrock runtime IDs
Bedrock now hardcodes block runtime IDs in alphabetical order of the identifiers. This commit updates Geyser to accomodate.
- Remove runtime_block_states.dat and replace it with blockpalette.nbt
- Calculate the block runtime ID based on the order of the block palette
- Separate BlockTranslator.AIR into Bedrock and Java values
- Update the second layer of chunks to use air when not waterlogged
- Don't send item palette for now, as that's what crashes the game (will look into for v415)
- Other misc. changes
* Improve second layer chunk translation
* v415 support
- Add a message warning people they are on a beta version of Geyser
* Update to protocol v417
There are still some mappings changes that need to be gone through.
* Update runtime item states and clean up item frames
* Future-proof enchanment table
* Update for v418
* Update to v419
* Apply proper air ID to waterlogged chunk layer
* Fix missing import
* Remove beta warning
* Update mappings
* Manually patch runtime_item_states and send the ITEMS registry
* Update README
* Disable grindstone and smithing inventories (since they're broken)
* Use artifactory jenkins plugin (#1548)
* Use artifactory jenkins plugin
* Bump version to 1.2.0-SNAPSHOT
Co-authored-by: SupremeMortal <6178101+SupremeMortal@users.noreply.github.com>
* 1.16.4-pre1 support
* Update to support ViaVersion 3.2.0 (#1358)
* Update to support ViaVersion 3.2.0
This commit updates ViaVersion integration to support their recent mappings changes.
Co-authored-by: Nassim <jahnke.nassim@gmail.com>
* Send adventure settings on gamemode change after gamemode swap
* Update Velocity to 1.1.0 proper
* Update to 1.16.4
Co-authored-by: Nassim <jahnke.nassim@gmail.com>
* Introduce CommandSender.getLocale()
This allows Geyser-specific commands (e.g. `/geyser help`) to be displayed in the (Java or Bedrock) player's default language, which stops those commands from simply being displayed in the default locale.
* Tweak Javadoc
* Set CommandManager's GeyserConnector to final
* Clean up
* Remove 'geyser' from parameters when executing a command under Spigot, Bungeecode, Sponge, Velocity
Fixes https://github.com/bundabrg/GeyserReversion/issues/8
* Fix case when there are no sub commands
Co-authored-by: bundabrg <bundabrg@grieve.com.au>
- Relocate all of our dependencies. This does not include MCProtocolLib and Nukkit dependencies at this time as there are no other known plugins that use these dependencies.
- Switch to a static commit for Adventure dependencies.
Tested working on all versions.
* Added a way to check if debug logging is enabled
* Improved scoreboard performance
* Include Teams in pps and return pending pps instead when higher then pps
Some servers have a huge amount of score packets when the player logs in, but before this commit, only after the first high pps (packets per second) the ScoreboardUpdater will be used (after pending packets per second have been moved to packets per second). But this commit fixes that the ScoreboardUpdater can be used on the second that the pps is getting high.
* Fixed team pre + suffix "null" issue and added threshold config option
Fixed team pre + suffix "null" issue.
When the prefix and/or suffix of a Team is null, "null" will be returned instead of null (Due to the way that MCProtocolLib is made and designed). This is fixed by simply checking if the prefix and/or suffix equal "null" and if that is the case, replace it with "".
Added threshold option.
Gave the person who is running Geyser an option to specify the first Scoreboard packets per second threshold to further improve performance by lowering the setting or decrease performance by relaxing the setting a bit. The value can't be higher then 250 (the second threshold), because it'll always choose the lowest threshold.
* Forgot to bump config version
* Small changes
* Reverted version bump, changed Sponge config, changed FloodgateKeyLoader
Reverted version bump
Camotoy said that you only need to bump the config version if the change is breaking, the config version bump has been reverted.
Changed Sponge config
The Sponge config has been modified to look like the other platform configurations.
Changed FloodgateKeyLoader
* Changed default-locale and (remote) address as requested by Camotoy
* Reduce bandwidth and a few final tweaks
* Made the scoreboard-packet-threshold a bit higher due to improvements
* Auto-configure more if setting is enabled
- Geyser dumps now show if the config was automatic
- Floodgate is now automatically detected if the address is also automatically found
- If the plugin versions' servers have the listening address set to something different, set our remote address to that
* Fix Sponge config
* Remove redundant Getter
* Added clone remote port option for bukkit, bungee and velocity
* Added clone remote port option for sponge
* Changed clone-remote-port description in config.yml
* Update config.yml
Updated config.yml to include a better description of the clone-remote-port option
* Updated GeyserSpongePlugin
An incorrect port was being edited before (remote instead of bedrock)
* Update config.yml
Co-authored-by: TeaNoDonuts <blackalegator@gmail.com>
* Change versioning to match supported Bedrock version
Line up Geyser's versioning to match with the highest/currently supported Bedrock version for future tracking of older Geyser versions.
* Add version command
* Fix DEV check for version command
* Remove SNAPSHOT
* Update languages submodule
Co-authored-by: rtm516 <ryantmilner@hotmail.co.uk>
* Add dump command
Adds a command to collect and dump infomation about the Geyser install and bootstrap and submit it to a dumps site.
* Finalize URL; misc. fixes; add 'architecture' param
Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
* Provide a platform independent method of retrieving the datafolder
* LocaleUtils now uses datafolder
* Make use of Path instead of File
Changes:
* Rename getDataFolder() to getConfigFile() and update to return a Path in each bootstrap
* Rename filePath to tmpFilePath
* Update Velocity configFile to configFile Path
* Configuration updates
The main feature of this commit is switching Bukkit and BungeeCord to using Jackson configuration. This allows comments to load. Along with this, the Jackson configs have been consolidated into one abstract class, and a check is made to ensure auth-type cannot be set to Floodgate if Floodgate is not installed.
* Add deleted file; remove imports
* Re-add changing of Bukkit port
* Alphabetize import
* Alphabetize Bungee import
* Updates
* Swap values in GeyserJacksonConfiguration
* Add a null check for GeyserConnector in Bukkit's onDisable
* Fix ping passthrough on BungeeCord
* Initial implementation of direct ping passthrough
* Finished implementation of direct ping passthrough
* Remove test for something else entirely
* Fix standalone
* Add config option for ping passthrough interval
* Use GeyserPingInfo to reduce methods
* Add querying; modify ping passthrough
* Add separate config options for passthrough MOTD and player counts
* Convert all plugin bootstraps to use internal ping events to that other plugins can handle ping modifications
* Small changes
* Fix invalid packet spawm
* Add legacy ping passthrough option
* Fix BungeeCord
* Proper UUID for BungeeCord, thanks @theminecoder
* Update config version and messages
* Merge master... again
* Add missing javadocs and minor changes
Co-authored-by: James Harrison <james@fasttortoise.co.uk>
Co-authored-by: theminecoder <theminecoder.dev@gmail.com>
Co-authored-by: Redned <redned235@gmail.com>
* Added ears geometry support
* Added ear fetching from mc capes
* Added support for deadmau5
* Commented, documented and cleaned code
* Allow bedrock players to see their java skin/cape/ears when joining
* Optimised Imports
* Fix missing else statement
* Moved ears and fixed elytra skins
* Added ears config option
* Fixed cape/elytra transparency
* Fixed slim skin geometry
* Fixed async ears request and added alex skin
* Fixed default elytra not showing with no cape
* Moved to normal Base64 functions
Co-authored-by: James Harrison <james@fasttortoise.co.uk>