All Classes and Interfaces

Class
Description
 
Provided as a base for any inventory that requires a block for opening it
 
 
 
 
 
 
 
An abstract registry holding a map of various registrations as defined by AbstractMappedRegistry.
 
 
 
 
Note that, as of 1.21, a wind charge entity does not actually implement the thrown item.
 
 
 
 
 
 
 
 
A mapped registry loader which takes in a String and returns a transformed Annotation as the value.
Used to determine if rename packets should be sent and stores the expected level cost for AnvilInventoryUpdater
 
 
 
 
 
 
 
 
An array registry that stores mappings as an array defined by ArrayRegistry.
 
 
Implementation note: try to design processes to fail softly if the client jar can't be downloaded, either if Mojang is down or internet access to Mojang is spotty.
 
A process that requires we download the client jar.
 
 
 
 
A class holding some basic information of the connected user.
 
 
 
 
 
 
 
 
 
 
 
 
Represents enums we don't need classes for in Geyser.
 
 
 
 
 
 
 
 
 
 
Implemented only if a block is a block entity in Bedrock and not Java Edition.
 
 
 
 
 
A data structure to represent what Bedrock believes are the height requirements for a specific dimension.
 
 
 
 
Called when the Bedrock user uses the pick block button on an entity
Used to send strings to the server and filter out unwanted words.
 
BedrockInventoryTransactionTranslator handles most interactions between the client and the world, or the client and their inventory.
An intermediary class made to allow easy access to work-in-progress NBT, such as lore and display.
The packet sent for server-authoritative-style inventory transactions.
Used to translate moving pages, or closing the inventory
 
 
 
Used to send the forwarded keep alive packet back to the server
 
 
 
 
Sent when the client updates its desired render distance.
Sent occasionally by a BDS client when opening the client side server settings menu.
 
 
 
 
 
 
In vanilla Bedrock, if you have operator status, this sets the player's gamemode without confirmation from the server.
 
 
 
Packet used in Bedrock to load structure size into the structure block GUI.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Class responsible for block breaking handling.
 
 
Loads block entities from the given classpath.
The class that all block entities (on both Java and Bedrock) should translate with
 
Manages the fake block we implement for each inventory, should we need to.
 
 
 
Holds all the block registries in Geyser.
Populates the block registries.
The stage of population
 
Sound interaction handler for when a block is right-clicked.
 
Used for block entities if the Java block state contains Bedrock block information.
 
Lists vanilla block tags.
 
 
Ordered by Bedrock ordinal
 
 
 
 
Manages updating the current writable book.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Primarily exists to support net IDs within bundles.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Loads collision data from the given resource path.
Used to prevent patterns from being compiled more than needed
 
Holds the result of a collision check.
 
 
Registers all built-in and extension commands to the given Cloud CommandManager.
Converts GeyserCommandSources to the server's command sender type (and back) in a lenient manner.
 
 
This interface contains various MinecraftHashers used to encode properties of Components.
 
 
Moves comments from a different node and puts them on this node
 
 
 
 
Combination of Inventory and PlayerInventory
 
 
Manages the sending of a cooldown indicator to the Bedrock player as there is no cooldown indicator in Bedrock.
 
 
 
 
 
 
 
 
 
Translates the Crafter.
Read CrafterInventoryTranslator for context on the complete custom implementation here
 
 
 
 
 
 
 
This class is used to store a custom block components mapping, which contains custom block components and a potenially null extended collision box
This class is used to store a custom block mappings, which contain all of the data required to register a custom block that overrides a group of java block states.
 
The stage of population
This class is used to store a custom block state builder mapping, which contains custom block state builders and a potenially null extended collision box
This class is used to store a custom block state mapping, which contains custom block states and a potenially null extended collision box
 
This is only a separate class for testing purposes so we don't have to load in GeyserImpl in ItemTranslator.
 
 
 
 
Loads default item components for all Java items.
 
 
This class is used as a base for minecarts with a default block to display like furnaces and spawners
Exists solely to make DefaultChannelPipeline's protected constructor public
 
 
 
 
 
 
 
 
 
 
 
 
Used to manage an open dialog.
 
 
 
Small class to manage the currently open dialog.
 
 
 
 
 
 
 
 
 
 
 
 
Chests have more block entity properties in Bedrock, which is solved by implementing the BedrockChunkWantsBlockEntityTag
 
 
 
 
 
 
E.G.
 
 
 
 
 
 
 
 
 
 
 
An abstract registry loader for loading effects from a resource path.
 
 
 
 
 
 
 
 
Lists vanilla enchantment tags.
 
 
 
 
 
 
 
Each session has its own EntityCache in the occasion that an entity packet is sent specifically for that player (e.g.
Represents data for an entity.
 
 
 
Represents a constructor to create an entity.
EntityMetadataTranslator<E extends Entity,T,EM extends org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.EntityMetadata<T,? extends org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.MetadataType<T>>>
Translates a given Java EntityMetadata into a similar/same construct for Bedrock
 
 
EnumProperty<E extends Enum<E>>
 
EnumProperty<T extends Enum<T>>
 
 
 
 
 
 
 
Responsible for modifying a player's skin when wearing a player head
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Fraction is a Number implementation that stores fractions accurately.
 
 
 
 
 
 
Contains information about the supported protocols in Geyser.
This enum stores each gamerule along with the value type and the default.
 
Droppers and dispensers
A "hack" to be able to use existing barrels.
A wrapper around MCProtocolLib's Advancement class so we can control the parent of an advancement
 
 
 
 
 
 
 
 
 
 
 
 
Acts as a lightweight chunk class that doesn't store biomes, heightmaps or block entities.
 
 
Implemented on top of any class that can send a command.
 
 
 
 
 
 
 
 
 
 
 
 
A custom block property that can be used to store custom data for a block.
 
 
 
 
 
 
 
 
 
 
 
A wrapper for temporarily storing entity metadata that will be sent to Bedrock.
A mutable "wrapper" around EnchantOptionData
 
 
 
 
 
 
 
GeyserEventSubscriber<R extends org.geysermc.geyser.api.event.EventRegistrar,E extends org.geysermc.event.Event>
 
 
 
GeyserExtensionCommand.Builder<T extends org.geysermc.geyser.api.command.CommandSource>
 
 
 
 
 
 
 
 
 
 
 
 
Similar to vanilla Minecraft's HolderSets, stores either a tag, a list of IDs (this list can also be represented as a single ID in vanilla HolderSets), or a list of inline elements (only supported by some HolderSets, and can also be represented as a single inline element in vanilla HolderSets).
 
Used to inject Geyser clients directly into the server, bypassing the need to implement a complete TCP connection, by creating a local channel.
 
Each vanilla instrument on Bedrock, ordered in their network IDs.
 
 
 
 
 
 
 
 
 
 
Represents Geyser's own serialized item information before being processed per-version
 
 
 
 
 
 
 
 
More detailed explanation of whether the permission check passed.
The structure of this class and its nested classes are specifically designed for the format received by GeyserLegacyPingPassthrough.
 
 
 
 
 
A more compact version of RecipeDisplay.
Used for any instance where the Java server is detached from Geyser.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Can be used to specify which subpack from a resource pack a player should load.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Implemented on top of any block that does not have special properties implemented
 
 
 
 
Interface that retrieves ping passthrough information from the Java server
 
 
 
 
Used as a mirror of Java Edition's own interaction enum.
All interactive tags in enum form.
 
 
 
 
 
A helper class storing the current inventory, translator, and session.
 
 
 
 
 
 
 
 
 
 
Item frames are an entity in Java but a block entity in Bedrock.
 
 
 
 
Populates the item registries.
A list, in order, of all Java items.
Utility class to parse an item stack, or a data component patch, from NBT data.
Lists vanilla item tags.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
For the login cycle.
 
Represents the information we store from the current Java dimension
 
 
 
 
 
 
 
 
Used to forward the keep alive packet to the client in order to get back a reliable ping.
 
 
 
Triggers protocol change LOGIN -> CONFIGURATION
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Stores JavaRegistryKey for Java registries that are used for loading of data-driven objects, tags, or both.
A wrapper for a list, holding Java registry values.
 
Defines a Java registry, which can be hardcoded or data-driven.
Implementations should look up an element in the given registry by its value, network ID, or registered key.
 
 
 
 
 
 
 
Indicates that the client should open a particular advancement tab
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Called when a leash is attached, removed or updated from an entity
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This packet is called whenever a player picks up an item.
 
 
 
 
 
 
 
 
 
Used to send all valid recipes from Java to Bedrock.
 
 
 
 
I can haz lead (The item, not the mineral)
 
 
 
 
Represents an event capable of translating itself into bedrock
 
 
 
 
 
 
 
 
 
 
Client -> server storing the spoofed remote address.
 
If the incoming channel if an instance of LocalChannelWithRemoteAddress, this server creates a LocalChannelWrapper for the other end and attaches the spoofed remote address
Manages a Minecraft Java session over our LocalChannel implementations.
A temporary cache for lodestone information.
 
Bare bones implementation of BedrockPacketHandler suitable for extension.
 
 
 
 
 
MapBuilders can be used to define map-like structures to encode a MapBuilder using a MapHasher.
 
MapHashers are used to encode a MapHasher to a map-like structure, which is then hashed using a MinecraftHashEncoder.
 
MappedRegistry<K,V,M extends Map<K,V>>
An public registry holding a map of various registrations as defined by MappedRegistry.
 
 
A class responsible for reading custom item and block mappings from a JSON file
 
 
 
 
 
 
Encodes primitive Java objects, lists, and maps into a HashCode, using Hashing.crc32c() as hash function.
Encodes an object into a HashCode using a MinecraftHashEncoder.
 
 
This class is used for mapping a translation key with the already loaded Java locale data Used in MessageTranslator.java as part of the KyoriPowered/Adventure library
 
 
 
 
 
 
 
 
 
A RegistryLoader that loads data from two different locations, yet with the same input type.
 
 
Loads NBT data from the given resource path.
 
The return data of a successful registration of a custom item.
 
 
 
 
 
 
Translator for smithing tables for pre-1.20 servers.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Loads particle types from the given resource path.
Pending Microsoft authentication task cache.
 
Permissions related to Geyser
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Add to a config value to indicate this field is only for plugin versions of Geyser, or vice-versa.
 
 
 
Generates a collection of PotionMixData that enables the Bedrock client to place brewing items into the brewing stand.
 
 
 
 
PropertyType<Type,NetworkRepresentation extends org.cloudburstmc.protocol.bedrock.data.entity.EntityProperty>
 
 
 
 
Registers the provider data from the provider.
 
Decodes an HAProxy proxy protocol header
 
 
 
 
 
 
 
 
 
 
 
Populates the recipe registry with some recipes that Java does not send, to ensure they show up as intended in the recipe book.
Holds all the common registries in Geyser.
A wrapper around a value which is loaded based on the output from the provided RegistryLoader.
Stores any information sent via Java registries.
 
Used to store context around a single registry entry when reading said entry's NBT.
 
RegistryHashers are hashers that hash a network integer ID to a namespaced identifier.
 
Represents a registry loader.
Holds common RegistryLoaders or utility methods surrounding them.
Used with RegistryCache.RegistryReader.UNIT to load registries without loading any data.
 
Implemented in block entities if their Java block state is required for additional values in Bedrock
 
Loads ResourcePacks within a Path directory, firing the GeyserDefineResourcePacksEventImpl.
 
In order for scaffolding to work on Bedrock, entity flags need to be sent to the player
Here follows some information about how scoreboards work in Java Edition, that is related to the workings of this class:
 
 
 
 
A wrapper around the SessionDisconnectEvent that allows Geyser to access the underlying component when replacing disconnect messages.
Geyser's internal listener to modify disconnection messages for user-friendly messages.
 
 
The entity class specifically for a GeyserSession's player.
 
 
 
 
 
 
 
 
 
 
 
 
Provides utilities for interacting with signs.
 
 
 
A variant of AbstractMappedRegistry with Map as the defined type.
A simple registry with no defined mapping or input type.
 
 
 
 
 
 
 
 
 
 
 
Enum order matches Java.
 
 
 
A wrapper to handle skulls more effectively - skulls have to be treated as entities since there are no custom player skulls in Bedrock.
 
 
 
 
 
 
 
 
 
 
Loads sound effects from the given resource path.
Handler for playing sounds when right-clicking various objects.
 
 
Loads sounds from the given input.
Marks if a class should be handled as a SoundInteractionTranslator.
Loads sound handlers from the given classpath.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A class to have easy access to specific item mappings per-version.
 
 
 
 
 
 
A tag in any of the registries that tags are loaded for by Geyser.
Manages information sent from the ClientboundUpdateTagsPacket.
 
 
 
Represents a teleport ID and corresponding coordinates that need to be confirmed.
 
 
 
 
 
 
Used as a class for any object-like entity that moves as a projectile
Used as a class for any projectile entity that looks like an item
 
 
Implemented onto anything that should have code ran every Minecraft tick.
 
 
 
 
 
 
 
 
 
 
Stores information on trim materials and patterns, including smithing armor hacks for pre-1.20.
 
 
 
 
 
 
 
 
 
Used to load and store the mappings/util.json file.
Simply gets a field of the loaded UtilMappings object.
Interface to help set up data-driven entity variants for mobs.
Should be implemented on an enum within the entity class.
Extension to VariantHolder to make it easier to implement on mobs that use bedrock's metadata system to set their variants, which are quite common.
The enum constants should be ordered in the order of their bedrock network ID.
 
 
 
 
 
A versioned, mapped registry.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Class that manages or retrieves various information from the world.