All Classes
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.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.
Deprecated.
legacy code
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.
Pre-1.16.210: used for both survival and creative item frame item removal
1.16.210: only used in creative.
The packet sent for server-authoritative-style inventory transactions.
Used to translate moving pages, or closing the inventory
Sent by the client when moving a horse or boat.
Used to send the forwarded keep alive packet back to the server
Implemented only if a block is a block entity in Bedrock and not Java Edition.
Sent by the client for minecarts and boats.
Replaces the AdventureSettingsPacket completely in 1.19.30.
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.
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.
TODO needed?
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.
Manages updating the current writable book.
Loads collision data from the given resource path.
Used to prevent patterns from being compiled more than needed
Combination of
Inventory and PlayerInventoryManages the sending of a cooldown indicator to the Bedrock player as there is no cooldown indicator in Bedrock.
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.
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
A deferred registry is a registry that is not loaded until it is needed.
Chests have more block entity properties in Bedrock, which is solved by implementing the BedrockOnlyBlockEntity
This stores all values of double chests that are part of the Java block state.
E.G.
An abstract registry loader for loading effects from a resource path.
Enchantments classified by their Java index
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 com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata<T,? extends com.github.steveice10.mc.protocol.data.game.entity.metadata.MetadataType<T>>>
Translates a given Java
EntityMetadata into a similar/same construct for BedrockResponsible for modifying a player's skin when wearing a player head
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 wrapper around MCProtocolLib's
Advancement class so we can control the parent of an advancementActs as a lightweight chunk class that doesn't store biomes, heightmaps or block entities.
Represents helper functions for listening to
/geyser or /geyserext commands.GeyserCommandManager.CommandBuilder<T extends org.geysermc.geyser.api.command.CommandSource>
Implemented on top of any class that can send a command.
Deprecated.
legacy code
A custom block property that can be used to store custom data for a block.
A write-only wrapper for temporarily storing entity metadata that will be sent to Bedrock.
A mutable "wrapper" around
EnchantOptionDataGeyserEventSubscriber<R extends org.geysermc.geyser.api.event.EventRegistrar,E extends org.geysermc.event.Event>
Used to inject Geyser clients directly into the server, bypassing the need to implement a complete TCP connection,
by creating a local channel.
Implements ItemDefinition while also providing a reference to our item mappings.
Ensure that the port deserializes in the config as a number no matter what.
Represents Geyser's own serialized item information before being processed per-version
A more compact version of
Recipe.Deprecated.
legacy code
A wrapper around a normal GsonComponentSerializer to accept null components.
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 mapped registry with an integer as the key.
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.
For the login cycle.
Represents the information we store from the current Java dimension
ClientboundGameProfilePacket triggers protocol change LOGIN -> CONFIGURATION
Used to forward the keep alive packet to the client in order to get back a reliable ping.
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.
Map that takes advantage of its internals for fast operations on block states to determine if they are lecterns.
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.
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
bStats collects some data for plugin authors.
Represents a custom advanced bar chart.
Represents a custom advanced pie.
Represents a custom chart.
Represents a custom drilldown pie.
Represents a custom multi line chart.
Represents a custom simple bar chart.
Represents a custom simple pie.
Represents a custom single line chart.
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.
Pistons are a special case where they are only a block entity on Bedrock.
Generates a collection of
PotionMixData that enables the
Bedrock client to place brewing items into the brewing stand.Registers the provider data from the provider.
Decodes an HAProxy proxy protocol header
Populates the recipe registry.
Holds all the common registries in Geyser.
A wrapper around a value which is loaded based on the output from the provided
RegistryLoader.Represents a registry loader.
Holds common
RegistryLoaders or utility methods surrounding them.Implemented in block entities if their Java block state is required for additional values in Bedrock
In order for scaffolding to work on Bedrock, entity flags need to be sent to the player
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.
Represents a full package of skin, cape, and geometry.
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.
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 - 50 milliseconds.
Internally this is known as TippedArrowEntity but is used with tipped arrows and normal arrows
Potion identifiers and their respective Bedrock IDs used with arrows.
Hardcoded recipe information about armor trims until further improvements can be made.
A versioned, mapped registry.
Class that manages or retrieves various information
from the world.