MCPcopy
hub / github.com/GeyserMC/Geyser

github.com/GeyserMC/Geyser @main sqlite

repository ↗ · DeepWiki ↗
7,944 symbols 27,684 edges 1,302 files 1,828 documented · 23%
README

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.

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!

Supported Versions

Edition Supported Versions
Bedrock 26.0, 26.1, 26.2, 26.3, 26.10, 26.20, 26.21, 26.22, 26.23, 26.30, 26.31, 26.32
Java 26.1 - 26.1.2 (For older versions, see this guide)

Setting Up

Take a look here for how to set up Geyser.

Links:

  • Website: https://geysermc.org
  • Docs: https://geysermc.org/wiki/geyser/
  • Download: https://geysermc.org/download
  • Discord: https://discord.gg/geysermc
  • Donate: https://opencollective.com/geysermc
  • Test Server: test.geysermc.org port 25565 for Java and 19132 for Bedrock

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

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:

Extension points exported contracts — how you extend this code

RegistryLoader (Interface)
Represents a registry loader. I is the input value, which can be anything, but is commonly a file path or someth [24 implementers]
core/src/main/java/org/geysermc/geyser/registry/loader/RegistryLoader.java
JavaItemDataComponents (Interface)
Represents various Java item data components to the extent that these can be translated to custom items for Bedrock edit [27 …
api/src/main/java/org/geysermc/geyser/api/item/custom/v2/component/java/JavaItemDataComponents.java
GeyserModPlatform (Interface)
An interface which holds common methods that have different APIs on their respective mod platforms. [6 implementers]
bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/platform/GeyserModPlatform.java
ItemData (Interface)
(no doc) [4 implementers]
common/src/main/java/org/geysermc/floodgate/news/data/ItemData.java
GeyserCommandSource (Interface)
Implemented on top of any class that can send a command. For example, it wraps around Spigot's CommandSender class. [7 …
core/src/main/java/org/geysermc/geyser/command/GeyserCommandSource.java
CommandExecutor (Interface)
Handles executing a command. @param the command source [20 implementers]
api/src/main/java/org/geysermc/geyser/api/command/CommandExecutor.java
GeyserServerPortGetter (Interface)
Represents a getter to the server port in the dedicated server and in the integrated server. [4 implementers]
bootstrap/mod/src/main/java/org/geysermc/geyser/platform/mod/GeyserServerPortGetter.java
FloodgateCipher (Interface)
Responsible for both encrypting and decrypting data [1 implementers]
common/src/main/java/org/geysermc/floodgate/crypto/FloodgateCipher.java

Core symbols most depended-on inside this repo

builder
called by 2896
api/src/main/java/org/geysermc/geyser/api/util/Holders.java
register
called by 1507
core/src/main/java/org/geysermc/geyser/item/Items.java
register
called by 1168
core/src/main/java/org/geysermc/geyser/level/block/Blocks.java
booleanState
called by 1000
core/src/main/java/org/geysermc/geyser/level/block/type/Block.java
destroyTime
called by 990
core/src/main/java/org/geysermc/geyser/level/block/type/Block.java
enumState
called by 845
core/src/main/java/org/geysermc/geyser/level/block/type/Block.java
put
called by 669
core/src/main/java/org/geysermc/geyser/entity/GeyserDirtyMetadata.java
get
called by 633
core/src/main/java/org/geysermc/geyser/registry/IRegistry.java

Shape

Method 6,455
Class 1,174
Interface 219
Enum 96

Languages

Java100%

Modules by API surface

core/src/main/java/org/geysermc/geyser/session/GeyserSession.java129 symbols
core/src/main/java/org/geysermc/geyser/configuration/GeyserConfig.java77 symbols
core/src/main/java/org/geysermc/geyser/entity/type/Entity.java62 symbols
core/src/main/java/org/geysermc/geyser/entity/vehicle/VehicleComponent.java55 symbols
core/src/main/java/org/geysermc/geyser/entity/type/LivingEntity.java55 symbols
api/src/main/java/org/geysermc/geyser/api/item/custom/NonVanillaCustomItemData.java51 symbols
core/src/main/java/org/geysermc/geyser/item/GeyserNonVanillaCustomItemData.java50 symbols
core/src/main/java/org/geysermc/geyser/entity/type/player/SessionPlayerEntity.java46 symbols
core/src/main/java/org/geysermc/geyser/GeyserImpl.java40 symbols
core/src/main/java/org/geysermc/geyser/skin/SkinProvider.java39 symbols
core/src/main/java/org/geysermc/geyser/network/netty/ChannelWrapper.java36 symbols
core/src/main/java/org/geysermc/geyser/level/block/GeyserCustomBlockComponents.java35 symbols

For agents

$ claude mcp add Geyser \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact