A bridge/proxy allowing you to connect to Minecraft: Java Edition servers with Minecraft: Bedrock Edition. https://geysermc.org/
Find a file
Amberichu 811aba3339
Validate written_book tags and fix writable book losing changes (#3894)
* Validate NBT tags of written_book like Java edition

* Update page count and character count limits

The maximum number of characters allowed in Java's book edit screen is
1024 for each page and 16 for the title. However, the packet itself has
a limit of 8192 * 3 bytes for each page and 128 * 3 bytes for the title.

* Fix writable book losing changes when signing

Bedrock sends a 3 action InventoryTransactionPacket after the player
changes a page. This causes Geyser to send a ServerboundEditBookPacket
with an outdated NBT. The Java responses with a
ClientboundContainerSetSlotPacket that overwrites any NBT Changes from
BedrockBookEditTranslator.

* Add a comment for the title length check

* Specify color in Component.translatable
2023-06-18 20:02:27 -04:00
.github Fix condition for using author's api branch (#3893) 2023-06-18 17:45:59 -04:00
.idea/copyright Clean copyright message and update all files (#1053) 2020-07-30 15:10:15 -05:00
ap Yeet NbtItemStackTranslator 2023-04-08 12:45:13 -04:00
api Move PlatformType to API and expose it for extensions (#3798) 2023-06-17 02:56:50 +01:00
bootstrap Bump logj4 (#3888) 2023-06-17 16:47:42 +01:00
build-logic Clean up jar file classes a bit 2023-03-26 13:20:53 -04:00
common Move PlatformType to API and expose it for extensions (#3798) 2023-06-17 02:56:50 +01:00
core Validate written_book tags and fix writable book losing changes (#3894) 2023-06-18 20:02:27 -04:00
gradle Bump logj4 (#3888) 2023-06-17 16:47:42 +01:00
.gitignore Custom item support for extensions (#2822) 2022-07-02 12:50:16 -04:00
.gitmodules The Great Refactor Part 1 - connector -> core 2021-11-20 13:56:40 -06:00
build.gradle.kts Update to use protocol 589 and other 1.20 updates 2023-06-07 09:44:18 -05:00
CONTRIBUTING.md Update PR Build Action for API (#3535) 2023-02-17 20:37:01 +01:00
gradle.properties Update to use protocol 589 and other 1.20 updates 2023-06-07 09:44:18 -05:00
gradlew Update gradlew files 2022-10-29 15:55:11 -05:00
gradlew.bat Update gradlew files 2022-10-29 15:55:11 -05:00
Jenkinsfile Stop jenkins builds trying to trigger GeyserConnect build (#3737) 2023-05-02 18:08:48 +01:00
LICENSE Update LICENSE to cover 2023 2023-05-07 03:16:40 -04:00
licenseheader.txt We're in 2022 now 2022-01-01 20:03:05 +01:00
README.md 1.20 bump in readme (#3818) 2023-06-07 11:19:35 -05:00
settings.gradle.kts Moved the base api to a separate repo 2023-02-09 17:31:00 +01:00

Geyser

License: MIT Discord Crowdin

Geyser is a bridge between Minecraft: Bedrock Edition and Minecraft: Java Edition, closing the gap from those wanting to play true cross-platform.

Geyser is an open collaboration project by CubeCraft Games.

What is Geyser?

Geyser is a proxy, bridging the gap between Minecraft: Bedrock Edition and Minecraft: Java Edition servers. The ultimate goal of this project is to allow Minecraft: Bedrock Edition users to join Minecraft: Java Edition servers as seamlessly as possible. However, due to the nature of Geyser translating packets over the network of two different games, do not expect everything to work perfectly!

Special thanks to the DragonProxy project for being a trailblazer in protocol translation and for all the team members who have joined us here!

Currently supporting Minecraft Bedrock 1.19.80 - 1.20 and Minecraft Java 1.20.

Setting Up

Take a look here for how to set up Geyser.

YouTube Video

What's Left to be Added/Fixed

  • Near-perfect movement (to the point where anticheat on large servers is unlikely to ban you)
  • Some Entity Flags
  • Structure block UI

What can't be fixed

There are a few things Geyser is unable to support due to various differences between Minecraft Bedrock and Java. For a list of these limitations, see the Current Limitations page.

Compiling

  1. Clone the repo to your computer
  2. Navigate to the Geyser root directory and run git submodule update --init --recursive. This command downloads all the needed submodules for Geyser and is a crucial step in this process.
  3. Run gradlew build and locate to bootstrap/build folder.

Contributing

Any contributions are appreciated. Please feel free to reach out to us on Discord if you're interested in helping out with Geyser.

Libraries Used: