Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Diagram lanes

Generated from TEMPLATE.md’s lane key by python tools/check_lanes.py --index. Do not edit by hand.

Almost every lane in a sequence diagram is a class, and a lane means the same thing on every page: the key in TEMPLATE.md is the authority, and check_lanes.py fails a deploy on a page that disagrees with it. The last rows are the exceptions — lanes that stand for a thread or a boundary rather than for one class.

333 lanes are classes and 9 are not. A lane is normally the initials of the class’s CamelCase words (ServerGamePacketListenerImpl is SGPL), but three other rules make about a third of them: a short one-word class is its own lane (Player, Sheep), a longer one-word class takes a fixed prefix (Connection is Conn, Enchantment is Ench), and a collision is resolved by lengthening the later claimant, never by reassigning a row — which is why ChestMenu is ChestM and not CM (ChunkMap had it first). Derive nothing from a lane; read it off this table.

laneclass
AAAbstractArrow
ABAbstractBoat
ACMAbstractContainerMenu
AFBEAbstractFurnaceBlockEntity
AMAtlasManager
APAcquirePoi
ARAdvancementRewards
ATSAttributeTrackSampler
AttrIAttributeInstance
AttrMAttributeMap
BCBuildContexts
BDBlendingData
BDRBrainDebugRenderer
BELBlockableEventLoop
BERDBlockEntityRenderDispatcher
BIBucketItem
BIRBuiltInRegistries
BLEBlockLightEngine
BlenderBlender
BlockBlock
BootBootstrap
BowIBowItem
BrainBrain
BSPHBlockStatePredictionHandler
CAChunkAccess
CAdvClientAdvancements
CallFCallFunction
CameraCamera
CBEChestBlockEntity
CCCClientChunkCache
CComPLClientCommonPacketListenerImpl
CCPLClientConfigurationPacketListenerImpl
CDSClientDebugSubscriber
CECommandEncoder
CFConfiguredFeature
CGCollisionGetter
CGTChunkGenerationTask
CHChunkHolder
ChanAChannelAccess
ChannelChannel
ChatCChatComponent
CHelpContainerHelper
ChestMChestMenu
ChestRChestRenderer
CHPLClientHandshakePacketListenerImpl
ChunkGChunkGenerator
CICraftingInput
CLClientLevel
ClimSClimate.Sampler
CLisChatListener
CMChunkMap
CMapContextMap
CmdsCommands
CMTEChunkMap.TrackedEntity
CNUCollectingNeighborUpdater
CompComponent
ConnConnection
ConsConsumable
ContTContinuationTask
CPLClientPacketListener
CPListClimate.ParameterList
CRCombatRules
CraftMCraftingMenu
CRTClimate.RTree
CRUComponentRenderUtils
CSComponentSerialization
CScrChatScreen
CSPClientSuggestionProvider
CSRChestSpecialRenderer
CSTChunkStatusTasks
CSugCommandSuggestions
CSyncContainerSynchronizer
CTCombatTracker
CTDChunkTaskDispatcher
CUComponentUtils
CWSCreateWorldScreen
DataCDataCommands
DBDoorBlock
DCPDataComponentPatch
DLDirectoryLock
DlgCDialogCommand
DlgSDialogScreen
DMDistanceManager
DMRDefaultedMappedRegistry
DRWEDefaultRedstoneWireEvaluator
DSDedicatedServer
DScrDeathScreen
EAPEnvironmentAttributeProbe
EASEnvironmentAttributeSystem
ECExecutionContext
EffCEffectCommands
EHEnchantmentHelper
EMEnchantmentMenu
EnchEnchantment
EntityEntity
ERDEntityRenderDispatcher
ESEntityStorage
EScrEnchantmentScreen
ETEntityType
ETLEntityTickList
EVSEnvironmentAttributeSystem.ValueSampler
ExecCExecuteCommand
FBRFormattedBidiReorder
FDFoodData
FFFlowingFluid
FGBFrameGraphBuilder
FMFurnaceMenu
FolPFoliagePlacer
FontFont
FPFoodProperties
FRFogRenderer
FRDFeatureRenderDispatcher
FSFeatureSorter
FSetFontSet
GBGpuBackend
GCGiveCommand
GDGpuDevice
GEDGameEventDispatcher
GGEGuiGraphicsExtractor
GIGameTestInfo
GlCEGlCommandEncoder
GLXGLX
GpuSGpuSurface
GRGameRenderer
GSGaussianSampler
GStitGlyphStitcher
GTRGameTestRunner
GTTGameTestTicker
GuiGui
GuiRGuiRenderer
HSHashedStack
HudHud
ICTInventoryChangeTrigger
IgniteIgnite
IIHRItemInHandRenderer
IMRItemModelResolver
InvInventory
InvSInventoryScreen
IOWIOWorker
IPItemParser
ISIntegratedServer
IStackItemStack
ItemItem
ItemsItems
JPPJigsawPlacement.Placer
JSJigsawStructure
JWTJoinWorldTask
KHKeyboardHandler
KIKeyboardInput
KMKeyMapping
KTSKeyframeTrackSampler
LanguageLanguage
LBLiquidBlock
LCLevelChunk
LCSLevelChunkSection
LCTLoadingChunkTracker
LCTsLevelChunkTicks
LDSLevelDebugSynchronizers
LELivingEntity
LEHLevelEventHandler
LevBLeverBlock
LevelLevel
LibraryLibrary
LICLootItemCondition
LIFLootItemFunctions
LLELevelLightEngine
LLSSLayerLightSectionStorage
LMLightmap
LOLoadingOverlay
LootCLootContext
LootPLootParams
LPLocalPlayer
LPoolLootPool
LRLevelRenderer
LRALayeredRegistryAccess
LRSELightmapRenderStateExtractor
LSALevelStorageSource.LevelStorageAccess
LTLootTable
LTsLevelTicks
LXLevelExtractor
MBModelBakery
MCMinecraft
MCompMutableComponent
MEMobEffect
MEIMobEffectInstance
MHMouseHandler
MMModelManager
MNBSMultiNoiseBiomeSource
MobMob
MonMMonitorManager
MoveCMoveControl
MPGMMultiPlayerGameMode
MPRMMultiPackResourceManager
MRMappedRegistry
MSMinecraftServer
MTSMoveToTargetSink
NBCNoiseBasedChunkGenerator
NbtIoNbtIo
NCNoiseChunk
NENodeEvaluator
NSNaturalSpawner
PAPlayerAdvancements
ParrotParrot
PBBPistonBaseBlock
PChainPostChain
PCSPlayerChunkSender
PDecPacketDecoder
PDMPatchedDataComponentMap
PDSPlayerDataStorage
PEParticleEngine
PEncPacketEncoder
PESMPersistentEntitySectionManager
PESPPoolElementStructurePiece
PFPathFinder
PLPlayerList
PlacedFPlacedFeature
PlayerPlayer
PMPoiManager
PMBEPistonMovingBlockEntity
PModPlacementModifier
PNPathNavigation
PNRPathNavigationRegion
PPPacketProcessor
PPassPostPass
PRPackRepository
PRLPreparableReloadListener
PSRPistonStructureResolver
PSTPrepareSpawnTask
PTTDistanceManager.PlayerTicketTracker
RBRepeaterBlock
RCReloadCommand
RContRandomizableContainer
RCPLClientPacketListener
RDCRegistryDataCollector
RDLRegistryDataLoader
RemSRemoteSlot
ResultCResultContainer
ResultSResultSlot
RGLReportGameListener
RLTRegistryLoadTask
RMRecipeManager
RMRLTResourceManagerRegistryLoadTask
RootPRootPlacer
RPRenderPass
RRMReloadableResourceManager
RSRenderSystem
RSRReloadableServerResources
RSRegReloadableServerRegistries
RSWBRedStoneWireBlock
RSynRegistrySynchronization
SAScoreAccess
SAISpatialAttributeInterpolator
SBLSoundBufferLibrary
SCStopCommand
SCCServerChunkCache
SCDSerializableChunkData
SCLServerConnectionListener
SCMServerClockManager
SCPLServerConfigurationPacketListenerImpl
ScreenScreen
SCTSimulationChunkTracker
SDSServerDebugSubscribers
SEServerEntity
SectCSectionCompiler
SEDSynchedEntityData
SFLServerFunctionLibrary
SFMServerFunctionManager
SGPLServerGamePacketListenerImpl
ShadMShaderManager
ShapesShapes
SheepSheep
SHPLServerHandshakePacketListenerImpl
SIBSleepInBed
SICFSetItemCountFunction
SLServerLevel
SLPLServerLoginPacketListenerImpl
SndESoundEngine
SndMSoundManager
SNSSubmitNodeStorage
SOGSectionOcclusionGraph
SPServerPlayer
SPBStructurePiecesBuilder
SPGMServerPlayerGameMode
SPieStrongholdPieces
SprLSpriteLoader
SRSkyRenderer
SRBServerRecipeBook
SRDSectionRenderDispatcher
SRISimpleReloadInstance
SRTSynchronizeRegistriesTask
SSServerScoreboard
SSBSculkSensorBlock
SSPLServerStatusPacketListenerImpl
SSplStringSplitter
SStartStructureStart
SStrStrongholdStructure
STempStructureTemplate
STPStructureTemplatePool
SumCSummonCommand
SUTSectionUpdateTracker
SWServerWatchdog
TATextureAtlas
TagPTagParser
TCTestCommand
TCTDThrottlingChunkTaskDispatcher
TDecTreeDecorator
TDSSTrackingDebugSynchronizer.SourceSynchronizer
TFTreeFeature
TIBTestInstanceBlockEntity
TimeTimelines
TLTagLoader
TLEThreadedLevelLightEngine
TPTrunkPlacer
TrCTranslatableContents
TRMServerTickRateManager
TSTicketStorage
TVOTagValueOutput
UAFSUpdateActivityFromSchedule
VNPValidateNearbyPoi
VSelVibrationSelector
VSLVibrationSystem.Listener
VSTVibrationSystem.Ticker
WBWorldBorder
WCUSWorldCreationUiState
WGLWorldGenLevel
WindowWindow
WLWorldLoader
WOFWorldOpenFlows
WRWorldgenRandom
WSWorldStem
ZMZombieModel
ZRZombieRenderer
ZSZombieRenderState
Auththe User Authenticator thread, not a class
Diskthe save on disk, not a class
Gamethe game’s own code above Blaze3D, not a class
Hookthe Server Shutdown Thread JVM hook, not a class
JVMthe process itself, not a class
Mainthe JVM main thread, running whichever program’s Main the diagram is about — the server’s or the client’s, so not one class
Nettythe Netty event loop, not a class
Wirethe network between the two programs, not a class
Workerthe Util.backgroundExecutor pool, not a class