├── .gitattributes ├── .github └── workflows │ ├── deploy-release.yml │ ├── deploy-snapshot.yml │ └── deploy.yml ├── .gitignore ├── EXAMPLES.md ├── LICENSE ├── README.md ├── VERSIONS.md ├── bedrock-codec ├── build.gradle.kts └── src │ └── main │ └── java │ └── org │ └── cloudburstmc │ └── protocol │ └── bedrock │ ├── annotation │ ├── Incompressible.java │ └── NoEncryption.java │ ├── codec │ ├── BaseBedrockCodecHelper.java │ ├── BedrockCodec.java │ ├── BedrockCodecHelper.java │ ├── BedrockPacketDefinition.java │ ├── BedrockPacketFactory.java │ ├── BedrockPacketSerializer.java │ ├── EntityDataTypeMap.java │ ├── PacketSerializeException.java │ ├── compat │ │ ├── BedrockCompat.java │ │ ├── NoopBedrockCodecHelper.java │ │ └── serializer │ │ │ ├── LoginSerializerCompat.java │ │ │ ├── PlayStatusSerializerCompat.java │ │ │ └── RequestNetworkSettingsSerializerCompat.java │ ├── v291 │ │ ├── BedrockCodecHelper_v291.java │ │ ├── Bedrock_v291.java │ │ └── serializer │ │ │ ├── AddBehaviorTreeSerializer_v291.java │ │ │ ├── AddEntitySerializer_v291.java │ │ │ ├── AddHangingEntitySerializer_v291.java │ │ │ ├── AddItemEntitySerializer_v291.java │ │ │ ├── AddPaintingSerializer_v291.java │ │ │ ├── AddPlayerSerializer_v291.java │ │ │ ├── AdventureSettingsSerializer_v291.java │ │ │ ├── AnimateSerializer_v291.java │ │ │ ├── AutomationClientConnectSerializer_v291.java │ │ │ ├── AvailableCommandsSerializer_v291.java │ │ │ ├── BlockEntityDataSerializer_v291.java │ │ │ ├── BlockEventSerializer_v291.java │ │ │ ├── BlockPickRequestSerializer_v291.java │ │ │ ├── BookEditSerializer_v291.java │ │ │ ├── BossEventSerializer_v291.java │ │ │ ├── CameraSerializer_v291.java │ │ │ ├── ChangeDimensionSerializer_v291.java │ │ │ ├── ChunkRadiusUpdatedSerializer_v291.java │ │ │ ├── ClientToServerHandshakeSerializer_v291.java │ │ │ ├── ClientboundMapItemDataSerializer_v291.java │ │ │ ├── CommandBlockUpdateSerializer_v291.java │ │ │ ├── CommandOutputSerializer_v291.java │ │ │ ├── CommandRequestSerializer_v291.java │ │ │ ├── ContainerCloseSerializer_v291.java │ │ │ ├── ContainerOpenSerializer_v291.java │ │ │ ├── ContainerSetDataSerializer_v291.java │ │ │ ├── CraftingDataSerializer_v291.java │ │ │ ├── CraftingEventSerializer_v291.java │ │ │ ├── DisconnectSerializer_v291.java │ │ │ ├── EntityEventSerializer_v291.java │ │ │ ├── EntityFallSerializer_v291.java │ │ │ ├── EntityPickRequestSerializer_v291.java │ │ │ ├── EventSerializer_v291.java │ │ │ ├── ExplodeSerializer_v291.java │ │ │ ├── FullChunkDataSerializer_v291.java │ │ │ ├── GameRulesChangedSerializer_v291.java │ │ │ ├── GuiDataPickItemSerializer_v291.java │ │ │ ├── HurtArmorSerializer_v291.java │ │ │ ├── InteractSerializer_v291.java │ │ │ ├── InventoryContentSerializer_v291.java │ │ │ ├── InventorySlotSerializer_v291.java │ │ │ ├── InventoryTransactionSerializer_v291.java │ │ │ ├── ItemFrameDropItemSerializer_v291.java │ │ │ ├── LabTableSerializer_v291.java │ │ │ ├── LevelEventSerializer_v291.java │ │ │ ├── LevelSoundEvent1Serializer_v291.java │ │ │ ├── LoginSerializer_v291.java │ │ │ ├── MapInfoRequestSerializer_v291.java │ │ │ ├── MobArmorEquipmentSerializer_v291.java │ │ │ ├── MobEffectSerializer_v291.java │ │ │ ├── MobEquipmentSerializer_v291.java │ │ │ ├── ModalFormRequestSerializer_v291.java │ │ │ ├── ModalFormResponseSerializer_v291.java │ │ │ ├── MoveEntityAbsoluteSerializer_v291.java │ │ │ ├── MoveEntityDeltaSerializer_v291.java │ │ │ ├── MovePlayerSerializer_v291.java │ │ │ ├── NetworkStackLatencySerializer_v291.java │ │ │ ├── NpcRequestSerializer_v291.java │ │ │ ├── PhotoTransferSerializer_v291.java │ │ │ ├── PlaySoundSerializer_v291.java │ │ │ ├── PlayStatusSerializer_v291.java │ │ │ ├── PlayerActionSerializer_v291.java │ │ │ ├── PlayerHotbarSerializer_v291.java │ │ │ ├── PlayerInputSerializer_v291.java │ │ │ ├── PlayerListSerializer_v291.java │ │ │ ├── PlayerSkinSerializer_v291.java │ │ │ ├── PurchaseReceiptSerializer_v291.java │ │ │ ├── RemoveEntitySerializer_v291.java │ │ │ ├── RemoveObjectiveSerializer_v291.java │ │ │ ├── RequestChunkRadiusSerializer_v291.java │ │ │ ├── ResourcePackChunkDataSerializer_v291.java │ │ │ ├── ResourcePackChunkRequestSerializer_v291.java │ │ │ ├── ResourcePackClientResponseSerializer_v291.java │ │ │ ├── ResourcePackDataInfoSerializer_v291.java │ │ │ ├── ResourcePackStackSerializer_v291.java │ │ │ ├── ResourcePacksInfoSerializer_v291.java │ │ │ ├── RespawnSerializer_v291.java │ │ │ ├── RiderJumpSerializer_v291.java │ │ │ ├── ScriptCustomEventSerializer_v291.java │ │ │ ├── ServerSettingsRequestSerializer_v291.java │ │ │ ├── ServerSettingsResponseSerializer_v291.java │ │ │ ├── ServerToClientHandshakeSerializer_v291.java │ │ │ ├── SetCommandsEnabledSerializer_v291.java │ │ │ ├── SetDefaultGameTypeSerializer_v291.java │ │ │ ├── SetDifficultySerializer_v291.java │ │ │ ├── SetDisplayObjectiveSerializer_v291.java │ │ │ ├── SetEntityDataSerializer_v291.java │ │ │ ├── SetEntityLinkSerializer_v291.java │ │ │ ├── SetEntityMotionSerializer_v291.java │ │ │ ├── SetHealthSerializer_v291.java │ │ │ ├── SetLastHurtBySerializer_v291.java │ │ │ ├── SetLocalPlayerAsInitializedSerializer_v291.java │ │ │ ├── SetPlayerGameTypeSerializer_v291.java │ │ │ ├── SetScoreSerializer_v291.java │ │ │ ├── SetScoreboardIdentitySerializer_v291.java │ │ │ ├── SetSpawnPositionSerializer_v291.java │ │ │ ├── SetTimeSerializer_v291.java │ │ │ ├── SetTitleSerializer_v291.java │ │ │ ├── ShowCreditsSerializer_v291.java │ │ │ ├── ShowProfileSerializer_v291.java │ │ │ ├── ShowStoreOfferSerializer_v291.java │ │ │ ├── SimpleEventSerializer_v291.java │ │ │ ├── SpawnExperienceOrbSerializer_v291.java │ │ │ ├── StartGameSerializer_v291.java │ │ │ ├── StopSoundSerializer_v291.java │ │ │ ├── StructureBlockUpdateSerializer_v291.java │ │ │ ├── SubClientLoginSerializer_v291.java │ │ │ ├── TakeItemEntitySerializer_v291.java │ │ │ ├── TextSerializer_v291.java │ │ │ ├── TransferSerializer_v291.java │ │ │ ├── UpdateAttributesSerializer_v291.java │ │ │ ├── UpdateBlockSerializer_v291.java │ │ │ ├── UpdateBlockSyncedSerializer_v291.java │ │ │ ├── UpdateEquipSerializer_v291.java │ │ │ ├── UpdateSoftEnumSerializer_v291.java │ │ │ └── UpdateTradeSerializer_v291.java │ ├── v313 │ │ ├── BedrockCodecHelper_v313.java │ │ ├── Bedrock_v313.java │ │ └── serializer │ │ │ ├── AddEntitySerializer_v313.java │ │ │ ├── AvailableEntityIdentifiersSerializer_v313.java │ │ │ ├── BiomeDefinitionListSerializer_v313.java │ │ │ ├── LevelSoundEvent2Serializer_v313.java │ │ │ ├── NetworkChunkPublisherUpdateSerializer_v313.java │ │ │ ├── ResourcePackStackSerializer_v313.java │ │ │ ├── SpawnParticleEffectSerializer_v313.java │ │ │ ├── StartGameSerializer_v313.java │ │ │ └── UpdateTradeSerializer_v313.java │ ├── v332 │ │ ├── BedrockCodecHelper_v332.java │ │ ├── Bedrock_v332.java │ │ └── serializer │ │ │ ├── AddPaintingSerializer_v332.java │ │ │ ├── EventSerializer_v332.java │ │ │ ├── LevelSoundEventSerializer_v332.java │ │ │ ├── NetworkStackLatencySerializer_v332.java │ │ │ ├── ResourcePacksInfoSerializer_v332.java │ │ │ ├── SpawnParticleEffectSerializer_v332.java │ │ │ ├── StartGameSerializer_v332.java │ │ │ └── TextSerializer_v332.java │ ├── v340 │ │ ├── BedrockCodecHelper_v340.java │ │ ├── Bedrock_v340.java │ │ └── serializer │ │ │ ├── AvailableCommandsSerializer_v340.java │ │ │ ├── EventSerializer_v340.java │ │ │ ├── LecternUpdateSerializer_v340.java │ │ │ ├── StructureBlockUpdateSerializer_v340.java │ │ │ └── VideoStreamConnectSerializer_v340.java │ ├── v354 │ │ ├── Bedrock_v354.java │ │ └── serializer │ │ │ ├── ClientboundMapItemDataSerializer_v354.java │ │ │ ├── CraftingDataSerializer_v354.java │ │ │ ├── EventSerializer_v354.java │ │ │ ├── LecternUpdateSerializer_v354.java │ │ │ ├── MapCreateLockedCopySerializer_v354.java │ │ │ ├── OnScreenTextureAnimationSerializer_v354.java │ │ │ └── UpdateTradeSerializer_v354.java │ ├── v361 │ │ ├── BedrockCodecHelper_v361.java │ │ ├── Bedrock_v361.java │ │ └── serializer │ │ │ ├── AddPaintingSerializer_v361.java │ │ │ ├── ClientCacheBlobStatusSerializer_v361.java │ │ │ ├── ClientCacheMissResponseSerializer_v361.java │ │ │ ├── ClientCacheStatusSerializer_v361.java │ │ │ ├── CommandBlockUpdateSerializer_v361.java │ │ │ ├── CraftingDataSerializer_v361.java │ │ │ ├── LevelChunkSerializer_v361.java │ │ │ ├── LevelEventGenericSerializer_v361.java │ │ │ ├── ResourcePackDataInfoSerializer_v361.java │ │ │ ├── StartGameSerializer_v361.java │ │ │ ├── StructureBlockUpdateSerializer_v361.java │ │ │ ├── StructureTemplateDataRequestSerializer_v361.java │ │ │ ├── StructureTemplateDataResponseSerializer_v361.java │ │ │ ├── UpdateBlockPropertiesSerializer_v361.java │ │ │ └── VideoStreamConnectSerializer_v361.java │ ├── v388 │ │ ├── BedrockCodecHelper_v388.java │ │ ├── Bedrock_v388.java │ │ └── serializer │ │ │ ├── AddPlayerSerializer_v388.java │ │ │ ├── AnvilDamageSerializer_v388.java │ │ │ ├── AvailableCommandsSerializer_v388.java │ │ │ ├── CompletedUsingItemSerializer_v388.java │ │ │ ├── CraftingDataSerializer_v388.java │ │ │ ├── EducationSettingsSerializer_v388.java │ │ │ ├── EmoteSerializer_v388.java │ │ │ ├── EventSerializer_v388.java │ │ │ ├── InteractSerializer_v388.java │ │ │ ├── MoveEntityDeltaSerializer_v388.java │ │ │ ├── MultiplayerSettingsSerializer_v388.java │ │ │ ├── NetworkSettingsSerializer_v388.java │ │ │ ├── PlayerAuthInputSerializer_v388.java │ │ │ ├── PlayerListSerializer_v388.java │ │ │ ├── PlayerSkinSerializer_v388.java │ │ │ ├── ResourcePackChunkDataSerializer_v388.java │ │ │ ├── ResourcePackStackSerializer_v388.java │ │ │ ├── RespawnSerializer_v388.java │ │ │ ├── SettingsCommandSerializer_v388.java │ │ │ ├── StartGameSerializer_v388.java │ │ │ ├── StructureBlockUpdateSerializer_v388.java │ │ │ ├── StructureTemplateDataResponseSerializer_v388.java │ │ │ └── TickSyncSerializer_v388.java │ ├── v389 │ │ ├── Bedrock_v389.java │ │ └── serializer │ │ │ └── EventSerializer_v389.java │ ├── v390 │ │ ├── BedrockCodecHelper_v390.java │ │ ├── Bedrock_v390.java │ │ └── serializer │ │ │ ├── PlayerListSerializer_v390.java │ │ │ └── PlayerSkinSerializer_v390.java │ ├── v407 │ │ ├── BedrockCodecHelper_v407.java │ │ ├── Bedrock_v407.java │ │ └── serializer │ │ │ ├── CodeBuilderSerializer_v407.java │ │ │ ├── CraftingDataSerializer_v407.java │ │ │ ├── CreativeContentSerializer_v407.java │ │ │ ├── DebugInfoSerializer_v407.java │ │ │ ├── EducationSettingsSerializer_v407.java │ │ │ ├── EmoteListSerializer_v407.java │ │ │ ├── HurtArmorSerializer_v407.java │ │ │ ├── InventoryContentSerializer_v407.java │ │ │ ├── InventorySlotSerializer_v407.java │ │ │ ├── InventoryTransactionSerializer_v407.java │ │ │ ├── ItemStackRequestSerializer_v407.java │ │ │ ├── ItemStackResponseSerializer_v407.java │ │ │ ├── PacketViolationWarningSerializer_v407.java │ │ │ ├── PlayerArmorDamageSerializer_v407.java │ │ │ ├── PlayerEnchantOptionsSerializer_v407.java │ │ │ ├── PositionTrackingDBClientRequestSerializer_v407.java │ │ │ ├── PositionTrackingDBServerBroadcastSerializer_v407.java │ │ │ ├── SetSpawnPositionSerializer_v407.java │ │ │ ├── StartGameSerializer_v407.java │ │ │ └── UpdatePlayerGameTypeSerializer_v407.java │ ├── v408 │ │ └── Bedrock_v408.java │ ├── v419 │ │ ├── BedrockCodecHelper_v419.java │ │ ├── Bedrock_v419.java │ │ └── serializer │ │ │ ├── AnimateEntitySerializer_v419.java │ │ │ ├── CameraShakeSerializer_v419.java │ │ │ ├── ContainerCloseSerializer_v419.java │ │ │ ├── CorrectPlayerMovePredictionSerializer_v419.java │ │ │ ├── ItemComponentSerializer_v419.java │ │ │ ├── ItemStackResponseSerializer_v419.java │ │ │ ├── MotionPredictionHintsSerializer_v419.java │ │ │ ├── MoveEntityDeltaSerializer_v419.java │ │ │ ├── MovePlayerSerializer_v419.java │ │ │ ├── PlayerAuthInputSerializer_v419.java │ │ │ ├── PlayerFogSerializer_v419.java │ │ │ ├── ResourcePackStackSerializer_v419.java │ │ │ ├── SetEntityDataSerializer_v419.java │ │ │ ├── StartGameSerializer_v419.java │ │ │ └── UpdateAttributesSerializer_v419.java │ ├── v422 │ │ ├── BedrockCodecHelper_v422.java │ │ ├── Bedrock_v422.java │ │ └── serializer │ │ │ ├── FilterTextSerializer_v422.java │ │ │ └── ResourcePacksInfoSerializer_v422.java │ ├── v428 │ │ ├── BedrockCodecHelper_v428.java │ │ ├── Bedrock_v428.java │ │ └── serializer │ │ │ ├── CameraShakeSerializer_v428.java │ │ │ ├── ClientboundDebugRendererSerializer_v428.java │ │ │ ├── PlayerAuthInputSerializer_v428.java │ │ │ └── StartGameSerializer_v428.java │ ├── v431 │ │ ├── BedrockCodecHelper_v431.java │ │ └── Bedrock_v431.java │ ├── v440 │ │ ├── BedrockCodecHelper_v440.java │ │ ├── Bedrock_v440.java │ │ └── serializer │ │ │ ├── AddVolumeEntitySerializer_v440.java │ │ │ ├── RemoveVolumeEntitySerializer_v440.java │ │ │ ├── StartGameSerializer_v440.java │ │ │ └── SyncEntityPropertySerializer_v440.java │ ├── v448 │ │ ├── BedrockCodecHelper_v448.java │ │ ├── Bedrock_v448.java │ │ └── serializer │ │ │ ├── AvailableCommandsSerializer_v448.java │ │ │ ├── NpcDialogueSerializer_v448.java │ │ │ ├── NpcRequestSerializer_v448.java │ │ │ ├── ResourcePacksInfoSerializer_v448.java │ │ │ ├── SetTitleSerializer_v448.java │ │ │ └── SimulationTypeSerializer_v448.java │ ├── v465 │ │ ├── BedrockCodecHelper_v465.java │ │ ├── Bedrock_v465.java │ │ └── serializer │ │ │ ├── AddVolumeEntitySerializer_v465.java │ │ │ ├── AnimateEntitySerializer_v465.java │ │ │ ├── CraftingDataSerializer_v465.java │ │ │ ├── CreatePhotoSerializer_v465.java │ │ │ ├── EduUriResourceSerializer_v465.java │ │ │ ├── EducationSettingsSerializer_v465.java │ │ │ ├── EntityPickRequestSerializer_v465.java │ │ │ ├── HurtArmorSerializer_v465.java │ │ │ ├── PhotoTransferSerializer_v465.java │ │ │ ├── StartGameSerializer_v465.java │ │ │ └── UpdateSubChunkBlocksSerializer_v465.java │ ├── v471 │ │ ├── BedrockCodecHelper_v471.java │ │ ├── Bedrock_v471.java │ │ └── serializer │ │ │ ├── EventSerializer_v471.java │ │ │ ├── PhotoInfoRequestSerializer_v471.java │ │ │ ├── SubChunkRequestSerializer_v471.java │ │ │ └── SubChunkSerializer_v471.java │ ├── v475 │ │ ├── Bedrock_v475.java │ │ └── serializer │ │ │ ├── StartGameSerializer_v475.java │ │ │ └── SubChunkSerializer_v475.java │ ├── v486 │ │ ├── Bedrock_v486.java │ │ └── serializer │ │ │ ├── AddVolumeEntitySerializer_v486.java │ │ │ ├── BossEventSerializer_v486.java │ │ │ ├── CodeBuilderSourceSerializer_v486.java │ │ │ ├── LevelChunkSerializer_v486.java │ │ │ ├── PlayerStartItemCooldownSerializer_v486.java │ │ │ ├── ScriptMessageSerializer_v486.java │ │ │ ├── SubChunkRequestSerializer_v486.java │ │ │ └── SubChunkSerializer_v486.java │ ├── v503 │ │ ├── BedrockCodecHelper_v503.java │ │ ├── Bedrock_v503.java │ │ └── serializer │ │ │ ├── AddPlayerSerializer_v503.java │ │ │ ├── AddVolumeEntitySerializer_v503.java │ │ │ ├── AgentActionEventSerializer_v503.java │ │ │ ├── ChangeMobPropertySerializer_v503.java │ │ │ ├── DimensionDataSerializer_v503.java │ │ │ ├── RemoveVolumeEntitySerializer_v503.java │ │ │ ├── SpawnParticleEffectSerializer_v503.java │ │ │ ├── StartGameSerializer_v503.java │ │ │ └── TickingAreasLoadStatusSerializer_v503.java │ ├── v527 │ │ ├── Bedrock_v527.java │ │ └── serializer │ │ │ ├── LessonProgressSerializer_v527.java │ │ │ ├── PlayerActionSerializer_v527.java │ │ │ ├── PlayerAuthInputSerializer_v527.java │ │ │ ├── RequestAbilitySerializer_v527.java │ │ │ ├── RequestPermissionsSerializer_v527.java │ │ │ ├── StartGameSerializer_v527.java │ │ │ └── ToastRequestSerializer_v527.java │ ├── v534 │ │ ├── BedrockCodecHelper_v534.java │ │ ├── Bedrock_v534.java │ │ └── serializer │ │ │ ├── AddEntitySerializer_v534.java │ │ │ ├── AddPlayerSerializer_v534.java │ │ │ ├── DeathInfoSerializer_v534.java │ │ │ ├── EditorNetworkSerializer_v534.java │ │ │ ├── StartGameSerializer_v534.java │ │ │ ├── UpdateAbilitiesSerializer_v534.java │ │ │ └── UpdateAdventureSettingsSerializer_v534.java │ ├── v544 │ │ ├── Bedrock_v544.java │ │ └── serializer │ │ │ ├── ClientboundMapItemDataSerializer_v544.java │ │ │ ├── FeatureRegistrySerializer_v544.java │ │ │ ├── MapInfoRequestSerializer_v544.java │ │ │ ├── ModalFormResponseSerializer_v544.java │ │ │ ├── NetworkChunkPublisherUpdateSerializer_v544.java │ │ │ ├── StartGameSerializer_v544.java │ │ │ └── UpdateAttributesSerializer_v544.java │ ├── v545 │ │ └── Bedrock_v545.java │ ├── v554 │ │ ├── BedrockCodecHelper_v554.java │ │ ├── Bedrock_v554.java │ │ └── serializer │ │ │ ├── GameTestRequestSerializer_v554.java │ │ │ ├── GameTestResultsSerializer_v554.java │ │ │ ├── NetworkSettingsSerializer_v554.java │ │ │ ├── RequestNetworkSettingsSerializer_v554.java │ │ │ ├── ServerStatsSerializer_v554.java │ │ │ ├── StructureBlockUpdateSerializer_v554.java │ │ │ └── TextSerializer_v554.java │ ├── v557 │ │ ├── BedrockCodecHelper_v557.java │ │ ├── Bedrock_v557.java │ │ └── serializer │ │ │ ├── AddEntitySerializer_v557.java │ │ │ ├── AddPlayerSerializer_v557.java │ │ │ └── SetEntityDataSerializer_v557.java │ ├── v560 │ │ ├── Bedrock_v560.java │ │ └── serializer │ │ │ └── UpdateClientInputLocksSerializer_v560.java │ ├── v567 │ │ ├── Bedrock_v567.java │ │ └── serializer │ │ │ ├── ClientCheatAbilitySerializer_v567.java │ │ │ ├── CommandRequestSerializer_v567.java │ │ │ ├── CraftingDataSerializer_v567.java │ │ │ └── StartGameSerializer_v567.java │ ├── v568 │ │ ├── BedrockCodecHelper_v568.java │ │ └── Bedrock_v568.java │ ├── v575 │ │ ├── BedrockCodecHelper_v575.java │ │ ├── Bedrock_v575.java │ │ └── serializer │ │ │ ├── CameraInstructionSerializer_v575.java │ │ │ ├── CameraPresetsSerializer_v575.java │ │ │ ├── PlayerAuthInputSerializer_v575.java │ │ │ └── UnlockedRecipesSerializer_v575.java │ ├── v582 │ │ ├── Bedrock_v582.java │ │ └── serializer │ │ │ ├── CompressedBiomeDefinitionListSerializer_v582.java │ │ │ ├── CraftingDataSerializer_v582.java │ │ │ ├── OpenSignSerializer_v582.java │ │ │ ├── RequestChunkRadiusSerializer_v582.java │ │ │ ├── StartGameSerializer_v582.java │ │ │ └── TrimDataSerializer_v582.java │ ├── v589 │ │ ├── Bedrock_v589.java │ │ └── serializer │ │ │ ├── EmoteSerializer_v589.java │ │ │ ├── EventSerializer_v589.java │ │ │ ├── StartGameSerializer_v589.java │ │ │ └── UnlockedRecipesSerializer_v589.java │ ├── v594 │ │ ├── Bedrock_v594.java │ │ └── serializer │ │ │ ├── AgentAnimationSerializer_v594.java │ │ │ └── AvailableCommandsSerializer_v594.java │ ├── v618 │ │ ├── Bedrock_v618.java │ │ └── serializer │ │ │ ├── CameraInstructionSerializer_618.java │ │ │ ├── CameraPresetsSerializer_v618.java │ │ │ ├── RefreshEntitlementsSerializer_v618.java │ │ │ └── ResourcePacksInfoSerializer_v618.java │ ├── v622 │ │ ├── Bedrock_v622.java │ │ └── serializer │ │ │ └── DisconnectSerializer_v622.java │ ├── v630 │ │ ├── Bedrock_v630.java │ │ └── serializer │ │ │ ├── SetPlayerInventoryOptionsSerializer_v630.java │ │ │ ├── ShowStoreOfferSerializer_v630.java │ │ │ └── ToggleCrafterSlotRequestSerializer_v630.java │ ├── v649 │ │ ├── Bedrock_v649.java │ │ └── serializer │ │ │ ├── CorrectPlayerMovePredictionSerializer_v649.java │ │ │ ├── LevelChunkSerializer_v649.java │ │ │ ├── PlayerAuthInputSerializer_v649.java │ │ │ ├── PlayerListSerializer_v649.java │ │ │ └── SetHudSerializer_v649.java │ ├── v662 │ │ ├── Bedrock_v662.java │ │ └── serializer │ │ │ ├── LecternUpdateSerializer_v662.java │ │ │ ├── MobEffectSerializer_v662.java │ │ │ ├── PlayerAuthInputSerializer_v662.java │ │ │ ├── ResourcePacksInfoSerializer_v622.java │ │ │ └── SetEntityMotionSerializer_v662.java │ ├── v671 │ │ ├── Bedrock_v671.java │ │ └── serializer │ │ │ ├── ClientboundDebugRendererSerializer_v671.java │ │ │ ├── CorrectPlayerMovePredictionSerializer_v671.java │ │ │ ├── CraftingDataSerializer_v671.java │ │ │ ├── EventSerializer_v671.java │ │ │ ├── ResourcePackStackSerializer_v671.java │ │ │ ├── StartGameSerializer_v671.java │ │ │ └── UpdatePlayerGameTypeSerializer_v671.java │ ├── v685 │ │ ├── Bedrock_v685.java │ │ └── serializer │ │ │ ├── AwardAchievementSerializer_v685.java │ │ │ ├── CodeBuilderSourceSerializer_v685.java │ │ │ ├── ContainerCloseSerializer_v685.java │ │ │ ├── CraftingDataSerializer_v685.java │ │ │ ├── EventSerializer_v685.java │ │ │ ├── StartGameSerializer_v685.java │ │ │ └── TextSerializer_v685.java │ ├── v686 │ │ ├── Bedrock_v686.java │ │ └── serializer │ │ │ └── ClientboundCloseFormSerializer_v686.java │ ├── v712 │ │ ├── BedrockCodecHelper_v712.java │ │ ├── Bedrock_v712.java │ │ └── serializer │ │ │ ├── CameraInstructionSerializer_v712.java │ │ │ ├── CameraPresetsSerializer_v712.java │ │ │ ├── ChangeDimensionSerializer_v712.java │ │ │ ├── CorrectPlayerMovePredictionSerializer_v712.java │ │ │ ├── CurrentStructureFeatureSerializer_v712.java │ │ │ ├── DisconnectSerializer_v712.java │ │ │ ├── EditorNetworkSerializer_v712.java │ │ │ ├── InventoryContentSerializer_v712.java │ │ │ ├── InventorySlotSerializer_v712.java │ │ │ ├── JigsawStructureDataSerializer_v712.java │ │ │ ├── MobArmorEquipmentSerializer_v712.java │ │ │ ├── PlayerArmorDamageSerializer_v712.java │ │ │ ├── PlayerAuthInputSerializer_v712.java │ │ │ ├── ResourcePacksInfoSerializer_v712.java │ │ │ ├── ServerboundDiagnosticsSerializer_v712.java │ │ │ ├── ServerboundLoadingScreenSerializer_v712.java │ │ │ ├── SetTitleSerializer_v712.java │ │ │ └── StopSoundSerializer_v712.java │ ├── v729 │ │ ├── BedrockCodecHelper_v729.java │ │ ├── Bedrock_v729.java │ │ └── serializer │ │ │ ├── CameraAimAssistSerializer_v729.java │ │ │ ├── CameraPresetsSerializer_v729.java │ │ │ ├── ContainerRegistryCleanupSerializer_v729.java │ │ │ ├── EmoteSerializer_v729.java │ │ │ ├── InventoryContentSerializer_v729.java │ │ │ ├── InventorySlotSerializer_v729.java │ │ │ ├── ResourcePacksInfoSerializer_v729.java │ │ │ ├── TransferSerializer_v729.java │ │ │ └── UpdateAttributesSerializer_v729.java │ ├── v748 │ │ ├── Bedrock_v748.java │ │ └── serializer │ │ │ ├── CameraInstructionSerializer_v748.java │ │ │ ├── CameraPresetsSerializer_v748.java │ │ │ ├── CraftingDataSerializer_v748.java │ │ │ ├── InventoryContentSerializer_v748.java │ │ │ ├── InventorySlotSerializer_v748.java │ │ │ ├── MobEffectSerializer_v748.java │ │ │ ├── MovementEffectSerializer_v748.java │ │ │ ├── PlayerAuthInputSerializer_v748.java │ │ │ ├── ResourcePacksInfoSerializer_v748.java │ │ │ └── SetMovementAuthoritySerializer_v748.java │ ├── v766 │ │ ├── BedrockCodecHelper_v766.java │ │ ├── Bedrock_v766.java │ │ └── serializer │ │ │ ├── CameraAimAssistPresetsSerializer_v766.java │ │ │ ├── CameraAimAssistSerializer_v766.java │ │ │ ├── CameraPresetsSerializer_v766.java │ │ │ ├── PlayerAuthInputSerializer_v766.java │ │ │ └── ResourcePacksInfoSerializer_v766.java │ ├── v776 │ │ ├── BedrockCodecHelper_v776.java │ │ ├── Bedrock_v776.java │ │ └── serializer │ │ │ ├── BossEventSerializer_v776.java │ │ │ ├── CameraAimAssistInstructionSerializer_v776.java │ │ │ ├── CameraAimAssistPresetsSerializer_v776.java │ │ │ ├── CameraPresetsSerializer_v776.java │ │ │ ├── CommandBlockUpdateSerializer_v776.java │ │ │ ├── CreativeContentSerializer_v776.java │ │ │ ├── ItemComponentSerializer_v776.java │ │ │ ├── MovementPredictionSyncSerializer_v776.java │ │ │ ├── StartGameSerializer_v776.java │ │ │ └── StructureBlockUpdateSerializer_v776.java │ ├── v786 │ │ ├── Bedrock_v786.java │ │ └── serializer │ │ │ ├── LevelSoundEventSerializer_v786.java │ │ │ ├── MovementPredictionSyncSerializer_v786.java │ │ │ ├── PlayerUpdateEntityOverridesSerializer_v786.java │ │ │ ├── PlayerVideoCaptureSerializer_v786.java │ │ │ ├── SetHudSerializer_v786.java │ │ │ └── UpdateClientOptionsSerializer_v786.java │ ├── v800 │ │ ├── Bedrock_v800.java │ │ └── serializer │ │ │ ├── BiomeDefinitionListSerializer_v800.java │ │ │ ├── CameraAimAssistPresetsSerializer_v800.java │ │ │ ├── CameraPresetsSerializer_v800.java │ │ │ ├── ClientboundControlSchemeSetSerializer_v800.java │ │ │ ├── PlayerListSerializer_v800.java │ │ │ └── PlayerLocationSerializer_v800.java │ ├── v818 │ │ ├── Bedrock_v818.java │ │ └── serializer │ │ │ ├── CameraInstructionSerializer_v818.java │ │ │ ├── CameraPresetsSerializer_v818.java │ │ │ ├── LoginSerializer_v818.java │ │ │ ├── ResourcePacksInfoSerializer_v818.java │ │ │ ├── ServerScriptDebugDrawerSerializer_v818.java │ │ │ ├── StartGameSerializer_v818.java │ │ │ ├── SubChunkSerializer_v818.java │ │ │ └── SubClientLoginSerializer_v818.java │ └── v819 │ │ └── Bedrock_v819.java │ ├── data │ ├── Ability.java │ ├── AbilityLayer.java │ ├── AdventureSetting.java │ ├── AttributeData.java │ ├── AuthoritativeMovementMode.java │ ├── BlockChangeEntry.java │ ├── BlockInteractionType.java │ ├── BlockPropertyData.java │ ├── BlockSyncType.java │ ├── BookEditType.java │ ├── BuildPlatform.java │ ├── CameraShakeAction.java │ ├── CameraShakeType.java │ ├── ChatRestrictionLevel.java │ ├── ClientPlayMode.java │ ├── ClientboundDebugRendererType.java │ ├── CodeBuilderCategoryType.java │ ├── CodeBuilderCodeStatus.java │ ├── CodeBuilderOperationType.java │ ├── CommandBlockMode.java │ ├── CompressionAlgorithm.java │ ├── ControlScheme.java │ ├── CoordinateEvaluationOrder.java │ ├── DebugShape.java │ ├── DisconnectFailReason.java │ ├── EduSharedUriResource.java │ ├── EducationEditionOffer.java │ ├── EmoteFlag.java │ ├── EncodingSettings.java │ ├── ExperimentData.java │ ├── ExpressionOp.java │ ├── GamePublishSetting.java │ ├── GameRuleData.java │ ├── GameType.java │ ├── GraphicsMode.java │ ├── HeightMapDataType.java │ ├── HudElement.java │ ├── HudVisibility.java │ ├── InputInteractionModel.java │ ├── InputMode.java │ ├── LevelEvent.java │ ├── LevelEventType.java │ ├── MapDecoration.java │ ├── MapTrackedObject.java │ ├── ModalFormCancelReason.java │ ├── MovementEffectType.java │ ├── MultiplayerMode.java │ ├── NetworkPermissions.java │ ├── NpcRequestType.java │ ├── PacketCompressionAlgorithm.java │ ├── PacketRecipient.java │ ├── PacketViolationSeverity.java │ ├── PacketViolationType.java │ ├── ParticleType.java │ ├── PhotoType.java │ ├── PlayerAbilityHolder.java │ ├── PlayerActionType.java │ ├── PlayerArmorDamageFlag.java │ ├── PlayerAuthInputData.java │ ├── PlayerBlockActionData.java │ ├── PlayerPermission.java │ ├── PredictionType.java │ ├── RandomDistributionType.java │ ├── ResourcePackType.java │ ├── ScoreInfo.java │ ├── ServerboundLoadingScreenPacketType.java │ ├── SimpleEventType.java │ ├── SimulationType.java │ ├── SoundEvent.java │ ├── SpawnBiomeType.java │ ├── StoreOfferRedirectType.java │ ├── SubChunkData.java │ ├── SubChunkRequestResult.java │ ├── TrimMaterial.java │ ├── TrimPattern.java │ ├── UserInterfaceProfile.java │ ├── attribute │ │ ├── AttributeModifierData.java │ │ └── AttributeOperation.java │ ├── auth │ │ ├── AuthPayload.java │ │ ├── AuthType.java │ │ ├── CertificateChainPayload.java │ │ └── TokenPayload.java │ ├── biome │ │ ├── BiomeCappedSurfaceData.java │ │ ├── BiomeClimateData.java │ │ ├── BiomeConditionalTransformationData.java │ │ ├── BiomeConsolidatedFeatureData.java │ │ ├── BiomeCoordinateData.java │ │ ├── BiomeDefinitionChunkGenData.java │ │ ├── BiomeDefinitionData.java │ │ ├── BiomeDefinitions.java │ │ ├── BiomeElementData.java │ │ ├── BiomeLegacyWorldGenRulesData.java │ │ ├── BiomeMesaSurfaceData.java │ │ ├── BiomeMountainParamsData.java │ │ ├── BiomeMultinoiseGenRulesData.java │ │ ├── BiomeOverworldGenRulesData.java │ │ ├── BiomeScatterParamData.java │ │ ├── BiomeSurfaceMaterialAdjustmentData.java │ │ ├── BiomeSurfaceMaterialData.java │ │ ├── BiomeTemperatureCategory.java │ │ ├── BiomeWeightedData.java │ │ ├── BiomeWeightedTemperatureData.java │ │ ├── IndexedBiomes.java │ │ └── UnindexedBiomes.java │ ├── camera │ │ ├── AimAssistAction.java │ │ ├── CameraAimAssistCategories.java │ │ ├── CameraAimAssistCategory.java │ │ ├── CameraAimAssistItemSettings.java │ │ ├── CameraAimAssistOperation.java │ │ ├── CameraAimAssistPreset.java │ │ ├── CameraAimAssistPresetDefinition.java │ │ ├── CameraAimAssistPriority.java │ │ ├── CameraAudioListener.java │ │ ├── CameraEase.java │ │ ├── CameraFadeInstruction.java │ │ ├── CameraPreset.java │ │ ├── CameraSetInstruction.java │ │ └── CameraTargetInstruction.java │ ├── command │ │ ├── ChainedSubCommandData.java │ │ ├── CommandData.java │ │ ├── CommandEnumConstraint.java │ │ ├── CommandEnumData.java │ │ ├── CommandOriginData.java │ │ ├── CommandOriginType.java │ │ ├── CommandOutputMessage.java │ │ ├── CommandOutputType.java │ │ ├── CommandOverloadData.java │ │ ├── CommandParam.java │ │ ├── CommandParamData.java │ │ ├── CommandParamOption.java │ │ ├── CommandParamType.java │ │ ├── CommandPermission.java │ │ ├── CommandSymbolData.java │ │ └── SoftEnumUpdateType.java │ ├── definitions │ │ ├── BlockDefinition.java │ │ ├── DimensionDefinition.java │ │ ├── FeatureDefinition.java │ │ ├── ItemDefinition.java │ │ ├── SimpleBlockDefinition.java │ │ ├── SimpleItemDefinition.java │ │ └── SimpleNamedDefinition.java │ ├── ee │ │ ├── AgentActionType.java │ │ └── LessonAction.java │ ├── entity │ │ ├── EntityDamageCause.java │ │ ├── EntityDataFormat.java │ │ ├── EntityDataMap.java │ │ ├── EntityDataType.java │ │ ├── EntityDataTypes.java │ │ ├── EntityEventType.java │ │ ├── EntityFlag.java │ │ ├── EntityLinkData.java │ │ ├── EntityProperties.java │ │ ├── EntityProperty.java │ │ ├── FloatEntityProperty.java │ │ └── IntEntityProperty.java │ ├── event │ │ ├── AchievementAwardedEventData.java │ │ ├── AgentCommandEventData.java │ │ ├── AgentCreatedEventData.java │ │ ├── AgentResult.java │ │ ├── BellUsedEventData.java │ │ ├── BossKilledEventData.java │ │ ├── CarefulRestorationEventData.java │ │ ├── CauldronInteractEventData.java │ │ ├── CauldronUsedEventData.java │ │ ├── CodeBuilderActionEventData.java │ │ ├── CodeBuilderScoreboardEventData.java │ │ ├── ComposterInteractEventData.java │ │ ├── CopperWaxedOrUnwaxedEventData.java │ │ ├── EntityDefinitionTriggerEventData.java │ │ ├── EntityInteractEventData.java │ │ ├── EventData.java │ │ ├── EventDataType.java │ │ ├── ExtractHoneyEventData.java │ │ ├── FishBucketedEventData.java │ │ ├── ItemUsedEventData.java │ │ ├── MobBornEventData.java │ │ ├── MobKilledEventData.java │ │ ├── MovementAnomalyEventData.java │ │ ├── MovementCorrectedEventData.java │ │ ├── PatternRemovedEventData.java │ │ ├── PetDiedEventData.java │ │ ├── PiglinBarterEventData.java │ │ ├── PlayerDiedEventData.java │ │ ├── PortalBuiltEventData.java │ │ ├── PortalUsedEventData.java │ │ ├── RaidUpdateEventData.java │ │ ├── SlashCommandExecutedEventData.java │ │ ├── SneakCloseToSculkSensorEventData.java │ │ ├── StriderRiddenInLavaInOverworldEventData.java │ │ └── TargetBlockHitEventData.java │ ├── inventory │ │ ├── BaseItemData.java │ │ ├── ContainerId.java │ │ ├── ContainerSlotType.java │ │ ├── ContainerType.java │ │ ├── CraftingType.java │ │ ├── CreativeItemCategory.java │ │ ├── CreativeItemData.java │ │ ├── CreativeItemGroup.java │ │ ├── EnchantData.java │ │ ├── EnchantOptionData.java │ │ ├── FullContainerName.java │ │ ├── InventoryLayout.java │ │ ├── InventoryTabLeft.java │ │ ├── InventoryTabRight.java │ │ ├── ItemData.java │ │ ├── ItemUseType.java │ │ ├── ItemVersion.java │ │ ├── LabTableReactionType.java │ │ ├── LabTableType.java │ │ ├── crafting │ │ │ ├── ContainerMixData.java │ │ │ ├── CraftingDataType.java │ │ │ ├── MaterialReducer.java │ │ │ ├── PotionMixData.java │ │ │ ├── RecipeIngredient.java │ │ │ ├── RecipeUnlockingRequirement.java │ │ │ └── recipe │ │ │ │ ├── CraftingRecipeData.java │ │ │ │ ├── FurnaceRecipeData.java │ │ │ │ ├── IdentifiableRecipeData.java │ │ │ │ ├── MultiRecipeData.java │ │ │ │ ├── NetworkRecipeData.java │ │ │ │ ├── RecipeData.java │ │ │ │ ├── ShapedRecipeData.java │ │ │ │ ├── ShapelessRecipeData.java │ │ │ │ ├── SmithingTransformRecipeData.java │ │ │ │ ├── SmithingTrimRecipeData.java │ │ │ │ ├── TaggedCraftingData.java │ │ │ │ └── UniqueCraftingData.java │ │ ├── descriptor │ │ │ ├── ComplexAliasDescriptor.java │ │ │ ├── DefaultDescriptor.java │ │ │ ├── DeferredDescriptor.java │ │ │ ├── InvalidDescriptor.java │ │ │ ├── ItemDescriptor.java │ │ │ ├── ItemDescriptorType.java │ │ │ ├── ItemDescriptorWithCount.java │ │ │ ├── ItemTagDescriptor.java │ │ │ └── MolangDescriptor.java │ │ ├── itemstack │ │ │ ├── request │ │ │ │ ├── ItemStackRequest.java │ │ │ │ ├── ItemStackRequestSlotData.java │ │ │ │ ├── TextProcessingEventOrigin.java │ │ │ │ └── action │ │ │ │ │ ├── AutoCraftRecipeAction.java │ │ │ │ │ ├── BeaconPaymentAction.java │ │ │ │ │ ├── ConsumeAction.java │ │ │ │ │ ├── CraftCreativeAction.java │ │ │ │ │ ├── CraftGrindstoneAction.java │ │ │ │ │ ├── CraftLoomAction.java │ │ │ │ │ ├── CraftNonImplementedAction.java │ │ │ │ │ ├── CraftRecipeAction.java │ │ │ │ │ ├── CraftRecipeOptionalAction.java │ │ │ │ │ ├── CraftResultsDeprecatedAction.java │ │ │ │ │ ├── CreateAction.java │ │ │ │ │ ├── DestroyAction.java │ │ │ │ │ ├── DropAction.java │ │ │ │ │ ├── ItemStackRequestAction.java │ │ │ │ │ ├── ItemStackRequestActionType.java │ │ │ │ │ ├── LabTableCombineAction.java │ │ │ │ │ ├── MineBlockAction.java │ │ │ │ │ ├── PlaceAction.java │ │ │ │ │ ├── RecipeItemStackRequestAction.java │ │ │ │ │ ├── SwapAction.java │ │ │ │ │ ├── TakeAction.java │ │ │ │ │ └── TransferItemStackRequestAction.java │ │ │ └── response │ │ │ │ ├── ItemStackResponse.java │ │ │ │ ├── ItemStackResponseContainer.java │ │ │ │ ├── ItemStackResponseSlot.java │ │ │ │ └── ItemStackResponseStatus.java │ │ └── transaction │ │ │ ├── InventoryActionData.java │ │ │ ├── InventorySource.java │ │ │ ├── InventoryTransactionType.java │ │ │ ├── ItemUseTransaction.java │ │ │ └── LegacySetItemSlotData.java │ ├── map │ │ └── MapPixel.java │ ├── skin │ │ ├── AnimatedTextureType.java │ │ ├── AnimationData.java │ │ ├── AnimationExpressionType.java │ │ ├── ImageData.java │ │ ├── PersonaPieceData.java │ │ ├── PersonaPieceTintData.java │ │ └── SerializedSkin.java │ └── structure │ │ ├── StructureAnimationMode.java │ │ ├── StructureBlockType.java │ │ ├── StructureEditorData.java │ │ ├── StructureMirror.java │ │ ├── StructureRedstoneSaveMode.java │ │ ├── StructureRotation.java │ │ ├── StructureSettings.java │ │ ├── StructureTemplateRequestOperation.java │ │ └── StructureTemplateResponseType.java │ ├── packet │ ├── AddBehaviorTreePacket.java │ ├── AddEntityPacket.java │ ├── AddHangingEntityPacket.java │ ├── AddItemEntityPacket.java │ ├── AddPaintingPacket.java │ ├── AddPlayerPacket.java │ ├── AddVolumeEntityPacket.java │ ├── AdventureSettingsPacket.java │ ├── AgentActionEventPacket.java │ ├── AgentAnimationPacket.java │ ├── AnimateEntityPacket.java │ ├── AnimatePacket.java │ ├── AnvilDamagePacket.java │ ├── AutomationClientConnectPacket.java │ ├── AvailableCommandsPacket.java │ ├── AvailableEntityIdentifiersPacket.java │ ├── AwardAchievementPacket.java │ ├── BedrockPacket.java │ ├── BedrockPacketHandler.java │ ├── BedrockPacketType.java │ ├── BiomeDefinitionListPacket.java │ ├── BlockEntityDataPacket.java │ ├── BlockEventPacket.java │ ├── BlockPickRequestPacket.java │ ├── BookEditPacket.java │ ├── BossEventPacket.java │ ├── CameraAimAssistInstructionPacket.java │ ├── CameraAimAssistPacket.java │ ├── CameraAimAssistPresetsPacket.java │ ├── CameraInstructionPacket.java │ ├── CameraPacket.java │ ├── CameraPresetsPacket.java │ ├── CameraShakePacket.java │ ├── ChangeDimensionPacket.java │ ├── ChangeMobPropertyPacket.java │ ├── ChunkRadiusUpdatedPacket.java │ ├── ClientCacheBlobStatusPacket.java │ ├── ClientCacheMissResponsePacket.java │ ├── ClientCacheStatusPacket.java │ ├── ClientCheatAbilityPacket.java │ ├── ClientToServerHandshakePacket.java │ ├── ClientboundCloseFormPacket.java │ ├── ClientboundControlSchemeSetPacket.java │ ├── ClientboundDebugRendererPacket.java │ ├── ClientboundMapItemDataPacket.java │ ├── CodeBuilderPacket.java │ ├── CodeBuilderSourcePacket.java │ ├── CommandBlockUpdatePacket.java │ ├── CommandOutputPacket.java │ ├── CommandRequestPacket.java │ ├── CompletedUsingItemPacket.java │ ├── CompressedBiomeDefinitionListPacket.java │ ├── ContainerClosePacket.java │ ├── ContainerOpenPacket.java │ ├── ContainerRegistryCleanupPacket.java │ ├── ContainerSetDataPacket.java │ ├── CorrectPlayerMovePredictionPacket.java │ ├── CraftingDataPacket.java │ ├── CraftingEventPacket.java │ ├── CreatePhotoPacket.java │ ├── CreativeContentPacket.java │ ├── CurrentStructureFeaturePacket.java │ ├── DeathInfoPacket.java │ ├── DebugInfoPacket.java │ ├── DimensionDataPacket.java │ ├── DisconnectPacket.java │ ├── EditorNetworkPacket.java │ ├── EduUriResourcePacket.java │ ├── EducationSettingsPacket.java │ ├── EmoteListPacket.java │ ├── EmotePacket.java │ ├── EntityEventPacket.java │ ├── EntityFallPacket.java │ ├── EntityPickRequestPacket.java │ ├── EventPacket.java │ ├── ExplodePacket.java │ ├── FeatureRegistryPacket.java │ ├── FilterTextPacket.java │ ├── GameRulesChangedPacket.java │ ├── GameTestRequestPacket.java │ ├── GameTestResultsPacket.java │ ├── GuiDataPickItemPacket.java │ ├── HurtArmorPacket.java │ ├── InteractPacket.java │ ├── InventoryContentPacket.java │ ├── InventorySlotPacket.java │ ├── InventoryTransactionPacket.java │ ├── ItemComponentPacket.java │ ├── ItemFrameDropItemPacket.java │ ├── ItemStackRequestPacket.java │ ├── ItemStackResponsePacket.java │ ├── JigsawStructureDataPacket.java │ ├── LabTablePacket.java │ ├── LecternUpdatePacket.java │ ├── LessonProgressPacket.java │ ├── LevelChunkPacket.java │ ├── LevelEventGenericPacket.java │ ├── LevelEventPacket.java │ ├── LevelSoundEvent1Packet.java │ ├── LevelSoundEvent2Packet.java │ ├── LevelSoundEventPacket.java │ ├── LoginPacket.java │ ├── MapCreateLockedCopyPacket.java │ ├── MapInfoRequestPacket.java │ ├── MobArmorEquipmentPacket.java │ ├── MobEffectPacket.java │ ├── MobEquipmentPacket.java │ ├── ModalFormRequestPacket.java │ ├── ModalFormResponsePacket.java │ ├── MotionPredictionHintsPacket.java │ ├── MoveEntityAbsolutePacket.java │ ├── MoveEntityDeltaPacket.java │ ├── MovePlayerPacket.java │ ├── MovementEffectPacket.java │ ├── MovementPredictionSyncPacket.java │ ├── MultiplayerSettingsPacket.java │ ├── NetworkChunkPublisherUpdatePacket.java │ ├── NetworkSettingsPacket.java │ ├── NetworkStackLatencyPacket.java │ ├── NpcDialoguePacket.java │ ├── NpcRequestPacket.java │ ├── OnScreenTextureAnimationPacket.java │ ├── OpenSignPacket.java │ ├── PacketViolationWarningPacket.java │ ├── PhotoInfoRequestPacket.java │ ├── PhotoTransferPacket.java │ ├── PlaySoundPacket.java │ ├── PlayStatusPacket.java │ ├── PlayerActionPacket.java │ ├── PlayerArmorDamagePacket.java │ ├── PlayerAuthInputPacket.java │ ├── PlayerEnchantOptionsPacket.java │ ├── PlayerFogPacket.java │ ├── PlayerHotbarPacket.java │ ├── PlayerInputPacket.java │ ├── PlayerListPacket.java │ ├── PlayerLocationPacket.java │ ├── PlayerSkinPacket.java │ ├── PlayerStartItemCooldownPacket.java │ ├── PlayerUpdateEntityOverridesPacket.java │ ├── PlayerVideoCapturePacket.java │ ├── PositionTrackingDBClientRequestPacket.java │ ├── PositionTrackingDBServerBroadcastPacket.java │ ├── PurchaseReceiptPacket.java │ ├── RefreshEntitlementsPacket.java │ ├── RemoveEntityPacket.java │ ├── RemoveObjectivePacket.java │ ├── RemoveVolumeEntityPacket.java │ ├── RequestAbilityPacket.java │ ├── RequestChunkRadiusPacket.java │ ├── RequestNetworkSettingsPacket.java │ ├── RequestPermissionsPacket.java │ ├── ResourcePackChunkDataPacket.java │ ├── ResourcePackChunkRequestPacket.java │ ├── ResourcePackClientResponsePacket.java │ ├── ResourcePackDataInfoPacket.java │ ├── ResourcePackStackPacket.java │ ├── ResourcePacksInfoPacket.java │ ├── RespawnPacket.java │ ├── RiderJumpPacket.java │ ├── ScriptCustomEventPacket.java │ ├── ScriptMessagePacket.java │ ├── ServerScriptDebugDrawerPacket.java │ ├── ServerSettingsRequestPacket.java │ ├── ServerSettingsResponsePacket.java │ ├── ServerStatsPacket.java │ ├── ServerToClientHandshakePacket.java │ ├── ServerboundDiagnosticsPacket.java │ ├── ServerboundLoadingScreenPacket.java │ ├── SetCommandsEnabledPacket.java │ ├── SetDefaultGameTypePacket.java │ ├── SetDifficultyPacket.java │ ├── SetDisplayObjectivePacket.java │ ├── SetEntityDataPacket.java │ ├── SetEntityLinkPacket.java │ ├── SetEntityMotionPacket.java │ ├── SetHealthPacket.java │ ├── SetHudPacket.java │ ├── SetLastHurtByPacket.java │ ├── SetLocalPlayerAsInitializedPacket.java │ ├── SetMovementAuthorityPacket.java │ ├── SetPlayerGameTypePacket.java │ ├── SetPlayerInventoryOptionsPacket.java │ ├── SetScorePacket.java │ ├── SetScoreboardIdentityPacket.java │ ├── SetSpawnPositionPacket.java │ ├── SetTimePacket.java │ ├── SetTitlePacket.java │ ├── SettingsCommandPacket.java │ ├── ShowCreditsPacket.java │ ├── ShowProfilePacket.java │ ├── ShowStoreOfferPacket.java │ ├── SimpleEventPacket.java │ ├── SimulationTypePacket.java │ ├── SpawnExperienceOrbPacket.java │ ├── SpawnParticleEffectPacket.java │ ├── StartGamePacket.java │ ├── StopSoundPacket.java │ ├── StructureBlockUpdatePacket.java │ ├── StructureTemplateDataRequestPacket.java │ ├── StructureTemplateDataResponsePacket.java │ ├── SubChunkPacket.java │ ├── SubChunkRequestPacket.java │ ├── SubClientLoginPacket.java │ ├── SyncEntityPropertyPacket.java │ ├── TakeItemEntityPacket.java │ ├── TextPacket.java │ ├── TickSyncPacket.java │ ├── TickingAreasLoadStatusPacket.java │ ├── ToastRequestPacket.java │ ├── ToggleCrafterSlotRequestPacket.java │ ├── TransferPacket.java │ ├── TrimDataPacket.java │ ├── UnknownPacket.java │ ├── UnlockedRecipesPacket.java │ ├── UpdateAbilitiesPacket.java │ ├── UpdateAdventureSettingsPacket.java │ ├── UpdateAttributesPacket.java │ ├── UpdateBlockPacket.java │ ├── UpdateBlockPropertiesPacket.java │ ├── UpdateBlockSyncedPacket.java │ ├── UpdateClientInputLocksPacket.java │ ├── UpdateClientOptionsPacket.java │ ├── UpdateEquipPacket.java │ ├── UpdatePlayerGameTypePacket.java │ ├── UpdateSoftEnumPacket.java │ ├── UpdateSubChunkBlocksPacket.java │ ├── UpdateTradePacket.java │ └── VideoStreamConnectPacket.java │ └── transformer │ ├── BlockDefinitionTransformer.java │ ├── BooleanTransformer.java │ ├── EntityDataTransformer.java │ ├── FlagTransformer.java │ └── TypeMapTransformer.java ├── bedrock-connection ├── build.gradle.kts └── src │ └── main │ └── java │ └── org │ └── cloudburstmc │ └── protocol │ └── bedrock │ ├── BedrockClientSession.java │ ├── BedrockDisconnectReasons.java │ ├── BedrockPeer.java │ ├── BedrockPong.java │ ├── BedrockServerSession.java │ ├── BedrockSession.java │ ├── BedrockSessionFactory.java │ ├── PacketDirection.java │ ├── netty │ ├── BedrockBatchWrapper.java │ ├── BedrockPacketWrapper.java │ ├── codec │ │ ├── FrameIdCodec.java │ │ ├── batch │ │ │ ├── BedrockBatchDecoder.java │ │ │ └── BedrockBatchEncoder.java │ │ ├── compression │ │ │ ├── BatchCompression.java │ │ │ ├── CompressionCodec.java │ │ │ ├── CompressionStrategy.java │ │ │ ├── NoopCompression.java │ │ │ ├── SimpleCompressionStrategy.java │ │ │ ├── SnappyCompression.java │ │ │ └── ZlibCompression.java │ │ ├── encryption │ │ │ ├── BedrockEncryptionDecoder.java │ │ │ └── BedrockEncryptionEncoder.java │ │ └── packet │ │ │ ├── BedrockPacketCodec.java │ │ │ ├── BedrockPacketCodec_v1.java │ │ │ ├── BedrockPacketCodec_v2.java │ │ │ └── BedrockPacketCodec_v3.java │ └── initializer │ │ ├── BedrockChannelInitializer.java │ │ ├── BedrockClientInitializer.java │ │ └── BedrockServerInitializer.java │ └── util │ ├── ChainValidationResult.java │ ├── EncryptionUtils.java │ ├── JsonUtils.java │ ├── PacketFlag.java │ └── XblUtils.java ├── build.gradle.kts ├── common ├── build.gradle.kts └── src │ └── main │ └── java │ └── org │ └── cloudburstmc │ └── protocol │ └── common │ ├── Definition.java │ ├── DefinitionRegistry.java │ ├── MinecraftInterface.java │ ├── MinecraftPacket.java │ ├── MinecraftServerSession.java │ ├── MinecraftSession.java │ ├── NamedDefinition.java │ ├── PacketHandler.java │ ├── PacketSignal.java │ ├── PlayerSession.java │ ├── SimpleDefinitionRegistry.java │ ├── serializer │ ├── PacketHelper.java │ └── PacketSerializer.java │ └── util │ ├── DefinitionUtils.java │ ├── Int2ObjectBiMap.java │ ├── LongKeys.java │ ├── OptionalBoolean.java │ ├── Preconditions.java │ ├── QuadConsumer.java │ ├── SequencedHashSet.java │ ├── TriConsumer.java │ ├── TriFunction.java │ ├── TypeMap.java │ ├── VarInts.java │ ├── Zlib.java │ ├── index │ ├── Indexable.java │ ├── Indexed.java │ ├── IndexedList.java │ ├── Unindexed.java │ └── UnindexedList.java │ └── stream │ ├── LittleEndianByteBufInputStream.java │ └── LittleEndianByteBufOutputStream.java ├── gradle.properties ├── gradle ├── libs.versions.toml └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle.kts /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | 3 | *.sh text eol=lf 4 | gradlew text eol=lf 5 | *.bat text eol=crlf 6 | 7 | *.jar binary -------------------------------------------------------------------------------- /.github/workflows/deploy-release.yml: -------------------------------------------------------------------------------- 1 | name: Deploy Release 2 | on: 3 | push: 4 | tags: 5 | - '*' 6 | 7 | jobs: 8 | deploy: 9 | uses: CloudburstMC/Protocol/.github/workflows/deploy.yml@3.0 10 | with: 11 | deploy-url: "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/" 12 | secrets: 13 | DEPLOY_USERNAME: ${{ secrets.OSSRH_USERNAME }} 14 | DEPLOY_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} 15 | PGP_SECRET: ${{ secrets.MAVEN_CENTRAL_SECRET }} 16 | PGP_PASSPHRASE: ${{ secrets.MAVEN_CENTRAL_PASSPHRASE }} -------------------------------------------------------------------------------- /.github/workflows/deploy-snapshot.yml: -------------------------------------------------------------------------------- 1 | name: Deploy Snapshot 2 | on: 3 | push: 4 | branches: 5 | - '3.0' 6 | 7 | jobs: 8 | deploy: 9 | uses: CloudburstMC/Protocol/.github/workflows/deploy.yml@3.0 10 | with: 11 | deploy-url: "https://repo.opencollab.dev/maven-snapshots/" 12 | secrets: 13 | DEPLOY_USERNAME: ${{ secrets.OPENCOLLAB_USERNAME }} 14 | DEPLOY_PASSWORD: ${{ secrets.OPENCOLLAB_PASSWORD }} 15 | PGP_SECRET: ${{ secrets.MAVEN_CENTRAL_SECRET }} 16 | PGP_PASSPHRASE: ${{ secrets.MAVEN_CENTRAL_PASSPHRASE }} 17 | -------------------------------------------------------------------------------- /bedrock-codec/build.gradle.kts: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api(projects.common) 3 | api(platform(libs.fastutil.bom)) 4 | api(libs.netty.buffer) 5 | api(libs.fastutil.long.common) 6 | api(libs.fastutil.long.`object`.maps) 7 | api(libs.jose4j) 8 | api(libs.nbt) 9 | implementation(libs.jackson.annotations) 10 | } 11 | 12 | tasks.jar { 13 | manifest { 14 | attributes("Automatic-Module-Name" to "org.cloudburstmc.protocol.bedrock.codec") 15 | } 16 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/annotation/Incompressible.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Packets annotated with this will be sent uncompressed over the network. 10 | */ 11 | @Retention(RetentionPolicy.RUNTIME) 12 | @Target(ElementType.TYPE) 13 | public @interface Incompressible { 14 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/annotation/NoEncryption.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.annotation; 2 | 3 | import java.lang.annotation.ElementType; 4 | import java.lang.annotation.Retention; 5 | import java.lang.annotation.RetentionPolicy; 6 | import java.lang.annotation.Target; 7 | 8 | /** 9 | * Packets with this annotation will be sent in plain text over the network 10 | * 11 | * @see org.cloudburstmc.protocol.bedrock.packet.ServerToClientHandshakePacket 12 | */ 13 | @Retention(RetentionPolicy.RUNTIME) 14 | @Target(ElementType.TYPE) 15 | public @interface NoEncryption { 16 | } 17 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/BedrockPacketDefinition.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.codec; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.protocol.bedrock.data.PacketRecipient; 5 | import org.cloudburstmc.protocol.bedrock.packet.BedrockPacket; 6 | 7 | import java.util.function.Supplier; 8 | 9 | @Value 10 | public class BedrockPacketDefinition { 11 | int id; 12 | Supplier factory; 13 | BedrockPacketSerializer serializer; 14 | PacketRecipient recipient; 15 | } 16 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/BedrockPacketFactory.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.codec; 2 | 3 | import org.cloudburstmc.protocol.bedrock.packet.BedrockPacket; 4 | 5 | @FunctionalInterface 6 | public interface BedrockPacketFactory { 7 | 8 | BedrockPacket newInstance(); 9 | 10 | @SuppressWarnings("unchecked") 11 | default Class getPacketClass() { 12 | return (Class) newInstance().getClass(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/BedrockPacketSerializer.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.codec; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import org.cloudburstmc.protocol.bedrock.packet.BedrockPacket; 5 | 6 | public interface BedrockPacketSerializer { 7 | 8 | void serialize(ByteBuf buffer, BedrockCodecHelper helper, T packet); 9 | 10 | void deserialize(ByteBuf buffer, BedrockCodecHelper helper, T packet); 11 | } 12 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/PacketSerializeException.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.codec; 2 | 3 | public class PacketSerializeException extends RuntimeException { 4 | 5 | public PacketSerializeException(Throwable e) { 6 | super(e); 7 | } 8 | 9 | public PacketSerializeException(String message, Throwable e) { 10 | super(message, e); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/compat/serializer/PlayStatusSerializerCompat.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.codec.compat.serializer; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper; 5 | import org.cloudburstmc.protocol.bedrock.codec.BedrockPacketSerializer; 6 | import org.cloudburstmc.protocol.bedrock.packet.PlayStatusPacket; 7 | 8 | public class PlayStatusSerializerCompat implements BedrockPacketSerializer { 9 | public static final PlayStatusSerializerCompat INSTANCE = new PlayStatusSerializerCompat(); 10 | 11 | @Override 12 | public void serialize(ByteBuf buffer, BedrockCodecHelper helper, PlayStatusPacket packet) { 13 | buffer.writeInt(packet.getStatus().ordinal()); 14 | } 15 | 16 | @Override 17 | public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, PlayStatusPacket packet) { 18 | packet.setStatus(PlayStatusPacket.Status.values()[buffer.readInt()]); 19 | } 20 | } 21 | 22 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v408/Bedrock_v408.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.codec.v408; 2 | 3 | import org.cloudburstmc.protocol.bedrock.codec.BedrockCodec; 4 | import org.cloudburstmc.protocol.bedrock.codec.v407.Bedrock_v407; 5 | 6 | public class Bedrock_v408 extends Bedrock_v407 { 7 | public static BedrockCodec CODEC = Bedrock_v407.CODEC.toBuilder() 8 | .protocolVersion(408) 9 | .minecraftVersion("1.16.20") 10 | .build(); 11 | } 12 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v503/serializer/StartGameSerializer_v503.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.codec.v503.serializer; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import org.cloudburstmc.protocol.bedrock.codec.v475.serializer.StartGameSerializer_v475; 5 | 6 | public class StartGameSerializer_v503 extends StartGameSerializer_v475 { 7 | 8 | @Override 9 | protected long readSeed(ByteBuf buf) { 10 | return buf.readLongLE(); 11 | } 12 | 13 | @Override 14 | protected void writeSeed(ByteBuf buf, long seed) { 15 | buf.writeLongLE(seed); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v503/serializer/TickingAreasLoadStatusSerializer_v503.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.codec.v503.serializer; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper; 5 | import org.cloudburstmc.protocol.bedrock.codec.BedrockPacketSerializer; 6 | import org.cloudburstmc.protocol.bedrock.packet.TickingAreasLoadStatusPacket; 7 | 8 | public class TickingAreasLoadStatusSerializer_v503 implements BedrockPacketSerializer { 9 | 10 | @Override 11 | public void serialize(ByteBuf buffer, BedrockCodecHelper helper, TickingAreasLoadStatusPacket packet) { 12 | buffer.writeBoolean(packet.isWaitingForPreload()); 13 | } 14 | 15 | @Override 16 | public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, TickingAreasLoadStatusPacket packet) { 17 | packet.setWaitingForPreload(buffer.readBoolean()); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v545/Bedrock_v545.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.codec.v545; 2 | 3 | import org.cloudburstmc.protocol.bedrock.codec.BedrockCodec; 4 | import org.cloudburstmc.protocol.bedrock.codec.v544.Bedrock_v544; 5 | 6 | public class Bedrock_v545 extends Bedrock_v544 { 7 | 8 | public static final BedrockCodec CODEC = Bedrock_v544.CODEC.toBuilder() 9 | .protocolVersion(545) 10 | .minecraftVersion("1.19.21") 11 | .build(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v554/serializer/RequestNetworkSettingsSerializer_v554.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.codec.v554.serializer; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper; 5 | import org.cloudburstmc.protocol.bedrock.codec.BedrockPacketSerializer; 6 | import org.cloudburstmc.protocol.bedrock.packet.RequestNetworkSettingsPacket; 7 | 8 | public class RequestNetworkSettingsSerializer_v554 implements BedrockPacketSerializer { 9 | 10 | @Override 11 | public void serialize(ByteBuf buffer, BedrockCodecHelper helper, RequestNetworkSettingsPacket packet) { 12 | buffer.writeInt(packet.getProtocolVersion()); 13 | } 14 | 15 | @Override 16 | public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, RequestNetworkSettingsPacket packet) { 17 | packet.setProtocolVersion(buffer.readInt()); 18 | } 19 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v554/serializer/ServerStatsSerializer_v554.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.codec.v554.serializer; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper; 5 | import org.cloudburstmc.protocol.bedrock.codec.BedrockPacketSerializer; 6 | import org.cloudburstmc.protocol.bedrock.packet.ServerStatsPacket; 7 | 8 | public class ServerStatsSerializer_v554 implements BedrockPacketSerializer { 9 | 10 | @Override 11 | public void serialize(ByteBuf buffer, BedrockCodecHelper helper, ServerStatsPacket packet) { 12 | buffer.writeFloatLE(packet.getServerTime()); 13 | buffer.writeFloatLE(packet.getNetworkTime()); 14 | } 15 | 16 | @Override 17 | public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, ServerStatsPacket packet) { 18 | packet.setServerTime(buffer.readFloatLE()); 19 | packet.setNetworkTime(buffer.readFloatLE()); 20 | } 21 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v567/serializer/ClientCheatAbilitySerializer_v567.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.codec.v567.serializer; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper; 5 | import org.cloudburstmc.protocol.bedrock.codec.BedrockPacketSerializer; 6 | import org.cloudburstmc.protocol.bedrock.codec.v534.serializer.UpdateAbilitiesSerializer_v534; 7 | import org.cloudburstmc.protocol.bedrock.packet.ClientCheatAbilityPacket; 8 | 9 | public class ClientCheatAbilitySerializer_v567 implements BedrockPacketSerializer { 10 | 11 | @Override 12 | public void serialize(ByteBuf buffer, BedrockCodecHelper helper, ClientCheatAbilityPacket packet) { 13 | helper.writePlayerAbilities(buffer, packet); 14 | } 15 | 16 | @Override 17 | public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, ClientCheatAbilityPacket packet) { 18 | helper.readPlayerAbilities(buffer, packet); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v568/Bedrock_v568.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.codec.v568; 2 | 3 | import org.cloudburstmc.protocol.bedrock.codec.BedrockCodec; 4 | import org.cloudburstmc.protocol.bedrock.codec.v567.Bedrock_v567; 5 | 6 | public class Bedrock_v568 extends Bedrock_v567 { 7 | 8 | public static final BedrockCodec CODEC = Bedrock_v567.CODEC.toBuilder() 9 | .raknetProtocolVersion(11) 10 | .protocolVersion(568) 11 | .minecraftVersion("1.19.63") 12 | .helper(() -> new BedrockCodecHelper_v568(ENTITY_DATA, GAME_RULE_TYPES, ITEM_STACK_REQUEST_TYPES, CONTAINER_SLOT_TYPES, PLAYER_ABILITIES, TEXT_PROCESSING_ORIGINS)) 13 | .build(); 14 | } 15 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v589/serializer/EventSerializer_v589.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.codec.v589.serializer; 2 | 3 | import org.cloudburstmc.protocol.bedrock.codec.v471.serializer.EventSerializer_v471; 4 | import org.cloudburstmc.protocol.bedrock.data.event.CarefulRestorationEventData; 5 | import org.cloudburstmc.protocol.bedrock.data.event.EventDataType; 6 | 7 | public class EventSerializer_v589 extends EventSerializer_v471 { 8 | public static final EventSerializer_v589 INSTANCE = new EventSerializer_v589(); 9 | 10 | public EventSerializer_v589() { 11 | super(); 12 | this.readers.put(EventDataType.CAREFUL_RESTORATION, (b, h) -> CarefulRestorationEventData.INSTANCE); 13 | this.writers.put(EventDataType.CAREFUL_RESTORATION, (b, h, e) -> {}); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v618/serializer/RefreshEntitlementsSerializer_v618.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.codec.v618.serializer; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper; 5 | import org.cloudburstmc.protocol.bedrock.codec.BedrockPacketSerializer; 6 | import org.cloudburstmc.protocol.bedrock.packet.RefreshEntitlementsPacket; 7 | 8 | public class RefreshEntitlementsSerializer_v618 implements BedrockPacketSerializer { 9 | 10 | @Override 11 | public void serialize(ByteBuf buffer, BedrockCodecHelper helper, RefreshEntitlementsPacket packet) { 12 | } 13 | 14 | @Override 15 | public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, RefreshEntitlementsPacket packet) { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v685/serializer/TextSerializer_v685.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.codec.v685.serializer; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper; 5 | import org.cloudburstmc.protocol.bedrock.codec.v554.serializer.TextSerializer_v554; 6 | import org.cloudburstmc.protocol.bedrock.packet.TextPacket; 7 | 8 | public class TextSerializer_v685 extends TextSerializer_v554 { 9 | public static final TextSerializer_v685 INSTANCE = new TextSerializer_v685(); 10 | 11 | @Override 12 | public void serialize(ByteBuf buffer, BedrockCodecHelper helper, TextPacket packet) { 13 | super.serialize(buffer, helper, packet); 14 | helper.writeString(buffer, packet.getFilteredMessage()); 15 | } 16 | 17 | @Override 18 | public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, TextPacket packet) { 19 | super.deserialize(buffer, helper, packet); 20 | packet.setFilteredMessage(helper.readString(buffer)); 21 | } 22 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v686/Bedrock_v686.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.codec.v686; 2 | 3 | import org.cloudburstmc.protocol.bedrock.codec.BedrockCodec; 4 | import org.cloudburstmc.protocol.bedrock.codec.v685.Bedrock_v685; 5 | import org.cloudburstmc.protocol.bedrock.codec.v686.serializer.ClientboundCloseFormSerializer_v686; 6 | import org.cloudburstmc.protocol.bedrock.data.PacketRecipient; 7 | import org.cloudburstmc.protocol.bedrock.packet.ClientboundCloseFormPacket; 8 | 9 | public class Bedrock_v686 extends Bedrock_v685 { 10 | 11 | public static final BedrockCodec CODEC = Bedrock_v685.CODEC.toBuilder() 12 | .protocolVersion(686) 13 | .minecraftVersion("1.21.2") 14 | .registerPacket(ClientboundCloseFormPacket::new, ClientboundCloseFormSerializer_v686.INSTANCE, 310, PacketRecipient.CLIENT) 15 | .build(); 16 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v686/serializer/ClientboundCloseFormSerializer_v686.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.codec.v686.serializer; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper; 5 | import org.cloudburstmc.protocol.bedrock.codec.BedrockPacketSerializer; 6 | import org.cloudburstmc.protocol.bedrock.packet.ClientboundCloseFormPacket; 7 | 8 | public class ClientboundCloseFormSerializer_v686 implements BedrockPacketSerializer { 9 | public static final ClientboundCloseFormSerializer_v686 INSTANCE = new ClientboundCloseFormSerializer_v686(); 10 | 11 | @Override 12 | public void serialize(ByteBuf buffer, BedrockCodecHelper helper, ClientboundCloseFormPacket packet) { 13 | 14 | } 15 | 16 | @Override 17 | public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, ClientboundCloseFormPacket packet) { 18 | 19 | } 20 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v712/serializer/PlayerArmorDamageSerializer_v712.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.codec.v712.serializer; 2 | 3 | import org.cloudburstmc.protocol.bedrock.codec.v407.serializer.PlayerArmorDamageSerializer_v407; 4 | 5 | public class PlayerArmorDamageSerializer_v712 extends PlayerArmorDamageSerializer_v407 { 6 | public static final PlayerArmorDamageSerializer_v712 INSTANCE = new PlayerArmorDamageSerializer_v712(); 7 | 8 | @Override 9 | protected int getMaxFlagIndex() { 10 | return 4; 11 | } 12 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/Ability.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum Ability { 4 | BUILD, 5 | MINE, 6 | DOORS_AND_SWITCHES, 7 | OPEN_CONTAINERS, 8 | ATTACK_PLAYERS, 9 | ATTACK_MOBS, 10 | OPERATOR_COMMANDS, 11 | TELEPORT, 12 | INVULNERABLE, 13 | FLYING, 14 | MAY_FLY, 15 | INSTABUILD, 16 | LIGHTNING, 17 | FLY_SPEED, 18 | WALK_SPEED, 19 | MUTED, 20 | WORLD_BUILDER, 21 | NO_CLIP, 22 | /** 23 | * @since v575 24 | */ 25 | PRIVILEGED_BUILDER, 26 | /** 27 | * @since v776 28 | */ 29 | VERTICAL_FLY_SPEED; 30 | 31 | public enum Type { 32 | NONE, 33 | BOOLEAN, 34 | FLOAT 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/AbilityLayer.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.EnumSet; 6 | import java.util.Set; 7 | 8 | @Data 9 | public class AbilityLayer { 10 | private Type layerType; 11 | private final Set abilitiesSet = EnumSet.noneOf(Ability.class); 12 | private final Set abilityValues = EnumSet.noneOf(Ability.class); 13 | private float flySpeed; 14 | private float walkSpeed; 15 | private float verticalFlySpeed; 16 | 17 | public enum Type { 18 | CACHE, 19 | BASE, 20 | SPECTATOR, 21 | COMMANDS, 22 | /** 23 | * @since v557 24 | */ 25 | EDITOR, 26 | /** 27 | * @since v712 28 | */ 29 | LOADING_SCREEN 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/AdventureSetting.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum AdventureSetting { 4 | WORLD_IMMUTABLE, 5 | NO_PVM, 6 | NO_MVP, 7 | SHOW_NAME_TAGS, 8 | AUTO_JUMP, 9 | MAY_FLY, 10 | NO_CLIP, 11 | WORLD_BUILDER, 12 | FLYING, 13 | MUTED, 14 | 15 | // Permission flags 16 | MINE, 17 | DOORS_AND_SWITCHES, 18 | OPEN_CONTAINERS, 19 | ATTACK_PLAYERS, 20 | ATTACK_MOBS, 21 | OPERATOR, 22 | TELEPORT, 23 | BUILD, 24 | DEFAULT_LEVEL_PERMISSIONS 25 | } 26 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/AuthoritativeMovementMode.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | import org.cloudburstmc.protocol.bedrock.packet.PlayerAuthInputPacket; 4 | import org.cloudburstmc.protocol.bedrock.packet.StartGamePacket; 5 | 6 | /** 7 | * The authoritative movement mode chosen by the server in the {@link StartGamePacket} to verify the clients movement is 8 | * valid. 9 | */ 10 | public enum AuthoritativeMovementMode { 11 | /** 12 | * Movement is completely controlled by the client and does not send {@link PlayerAuthInputPacket} 13 | * @deprecated v800 14 | */ 15 | CLIENT, 16 | /** 17 | * Movement is verified by the server using the {@link PlayerAuthInputPacket} 18 | */ 19 | SERVER, 20 | SERVER_WITH_REWIND 21 | } 22 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/BlockChangeEntry.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.math.vector.Vector3i; 5 | import org.cloudburstmc.protocol.bedrock.data.definitions.BlockDefinition; 6 | 7 | @Value 8 | public class BlockChangeEntry { 9 | Vector3i position; 10 | BlockDefinition definition; 11 | int updateFlags; 12 | long messageEntityId; 13 | MessageType messageType; 14 | 15 | public enum MessageType { 16 | NONE, 17 | CREATE, 18 | DESTROY 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/BlockInteractionType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum BlockInteractionType { 4 | NONE, 5 | EXTEND, 6 | CLONE, 7 | LOCK, 8 | CREATE, 9 | CREATE_LOCATOR, 10 | RENAME, 11 | ITEM_PLACED, 12 | ITEM_REMOVED, 13 | COOKING, 14 | DOUSING, 15 | LIGHTING, 16 | HAYSTACK, 17 | FILLED, 18 | EMPTIED, 19 | ADD_DYE, 20 | DYE_ITEM, 21 | CLEAR_ITEM, 22 | ENCHANT_ARROW, 23 | COMPOST_ITEM_PLACE, 24 | RECOVERED_BONEMEAL, 25 | BOOK_PLACED, 26 | BOOK_OPEN, 27 | DISENCHANT, 28 | REPAIR, 29 | DISENCHANT_AND_REPAIR 30 | } 31 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/BlockPropertyData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.nbt.NbtMap; 5 | 6 | @Value 7 | public class BlockPropertyData { 8 | private final String name; 9 | private final NbtMap properties; 10 | } 11 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/BlockSyncType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum BlockSyncType { 4 | NONE, 5 | CREATE, 6 | DESTROY 7 | } 8 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/BookEditType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum BookEditType { 4 | REPLACE_PAGE, 5 | ADD_PAGE, 6 | DELETE_PAGE, 7 | SWAP_PAGES, 8 | SIGN_BOOK 9 | } 10 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/BuildPlatform.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum BuildPlatform { 4 | 5 | UNDEFINED, 6 | /** 7 | * Android 8 | */ 9 | GOOGLE, 10 | IOS, 11 | /** 12 | * Mac OS 13 | */ 14 | OSX, 15 | /** 16 | * Kindle, FireTV 17 | */ 18 | AMAZON, 19 | GEAR_VR, 20 | HOLOLENS, 21 | /** 22 | * Windows Store version 23 | */ 24 | UWP, 25 | /** 26 | * Educational edition 27 | */ 28 | WIN_32, 29 | DEDICATED, 30 | /** 31 | * Apple TV 32 | */ 33 | TV_OS, 34 | /** 35 | * Playstation 36 | */ 37 | SONY, 38 | /** 39 | * Nintendo Switch 40 | */ 41 | NX, 42 | XBOX, 43 | WINDOWS_PHONE, 44 | LINUX; 45 | 46 | private static final BuildPlatform[] VALUES = values(); 47 | 48 | public static BuildPlatform from(int id) { 49 | return id > 0 && id < VALUES.length ? VALUES[id] : VALUES[0]; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/CameraShakeAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum CameraShakeAction { 4 | ADD, 5 | STOP 6 | } 7 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/CameraShakeType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum CameraShakeType { 4 | POSITIONAL, 5 | ROTATIONAL; 6 | } 7 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/ChatRestrictionLevel.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum ChatRestrictionLevel { 4 | /** 5 | * Default behaviour. 6 | */ 7 | NONE, 8 | /** 9 | * The chat window will appear, but all messages will be dropped. 10 | */ 11 | DROPPED, 12 | /** 13 | * The chat window will not show at all, unless you have the 14 | * {@link PlayerPermission#OPERATOR} permission set in your abilities. 15 | */ 16 | DISABLED 17 | } 18 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/ClientPlayMode.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum ClientPlayMode { 4 | NORMAL, 5 | TEASER, 6 | SCREEN, 7 | VIEWER, 8 | REALITY, 9 | PLACEMENT, 10 | LIVING_ROOM, 11 | EXIT_LEVEL, 12 | EXIT_LEVEL_LIVING_ROOM 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/ClientboundDebugRendererType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum ClientboundDebugRendererType { 4 | INVALID, 5 | CLEAR_DEBUG_MARKERS, 6 | ADD_DEBUG_MARKER_CUBE 7 | } 8 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/CodeBuilderCategoryType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum CodeBuilderCategoryType { 4 | NONE, 5 | CODE_STATUS, 6 | INSTANTIATION 7 | } 8 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/CodeBuilderCodeStatus.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum CodeBuilderCodeStatus { 4 | NONE, 5 | NOT_STARTED, 6 | IN_PROGRESS, 7 | PAUSED, 8 | ERROR, 9 | SUCCEEDED 10 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/CodeBuilderOperationType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum CodeBuilderOperationType { 4 | NONE, 5 | GET, 6 | SET, 7 | RESET 8 | } 9 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/CommandBlockMode.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum CommandBlockMode { 4 | NORMAL, 5 | REPEATING, 6 | CHAIN 7 | } 8 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/CompressionAlgorithm.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public interface CompressionAlgorithm { 4 | } 5 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/ControlScheme.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum ControlScheme { 4 | 5 | LOCKED_PLAYER_RELATIVE_STRAFE, 6 | CAMERA_RELATIVE, 7 | CAMERA_RELATIVE_STRAFE, 8 | PLAYER_RELATIVE, 9 | PLAYER_RELATIVE_STRAFE 10 | } 11 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/CoordinateEvaluationOrder.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum CoordinateEvaluationOrder { 4 | XYZ, 5 | XZY, 6 | YXZ, 7 | YZX, 8 | ZXY, 9 | ZYX 10 | } 11 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/DebugShape.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | import lombok.Value; 4 | import org.checkerframework.checker.nullness.qual.Nullable; 5 | import org.cloudburstmc.math.vector.Vector3f; 6 | 7 | import java.awt.*; 8 | 9 | @Value 10 | public class DebugShape { 11 | 12 | long id; 13 | @Nullable 14 | Type type; 15 | @Nullable 16 | Vector3f position; 17 | @Nullable 18 | Float scale; 19 | @Nullable 20 | Vector3f rotation; 21 | @Nullable 22 | Float totalTimeLeft; 23 | @Nullable 24 | Color color; 25 | @Nullable 26 | String text; 27 | @Nullable 28 | Vector3f boxBounds; 29 | @Nullable 30 | Vector3f lineEndPosition; 31 | @Nullable 32 | Float arrowHeadLength; 33 | @Nullable 34 | Float arrowHeadRadius; 35 | @Nullable 36 | Integer segments; 37 | 38 | public enum Type { 39 | LINE, 40 | BOX, 41 | SPHERE, 42 | CIRCLE, 43 | TEXT, 44 | ARROW 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/EduSharedUriResource.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class EduSharedUriResource { 7 | public static final EduSharedUriResource EMPTY = new EduSharedUriResource("", ""); 8 | 9 | String buttonName; 10 | String linkUri; 11 | } 12 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/EducationEditionOffer.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum EducationEditionOffer { 4 | NONE, 5 | REST_OF_WORLD, 6 | CHINA 7 | } 8 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/EmoteFlag.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum EmoteFlag { 4 | SERVER_SIDE, 5 | /** 6 | * @since v567 7 | */ 8 | MUTE_EMOTE_CHAT 9 | } 10 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/ExperimentData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class ExperimentData { 7 | private final String name; 8 | private final boolean enabled; // ??? Always set to true 9 | } 10 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/GamePublishSetting.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum GamePublishSetting { 4 | NO_MULTI_PLAY, 5 | INVITE_ONLY, 6 | FRIENDS_ONLY, 7 | FRIENDS_OF_FRIENDS, 8 | PUBLIC; 9 | 10 | public static GamePublishSetting byId(int id) { 11 | return values()[id]; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/GameRuleData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Value; 5 | 6 | @Value 7 | @AllArgsConstructor 8 | public class GameRuleData { 9 | String name; 10 | boolean editable; 11 | T value; 12 | 13 | public GameRuleData(String name, T value) { 14 | this.name = name; 15 | this.value = value; 16 | this.editable = false; 17 | } 18 | 19 | @Override 20 | public String toString() { 21 | return this.name + '=' + this.value; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/GameType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum GameType { 4 | SURVIVAL, 5 | CREATIVE, 6 | ADVENTURE, 7 | @Deprecated 8 | SURVIVAL_VIEWER, 9 | @Deprecated 10 | CREATIVE_VIEWER, 11 | DEFAULT, 12 | /** 13 | * @since v503 14 | */ 15 | SPECTATOR; 16 | 17 | private static final GameType[] VALUES = values(); 18 | 19 | public static GameType from(int id) { 20 | return VALUES[id]; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/GraphicsMode.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum GraphicsMode { 4 | SIMPLE, 5 | FANCY, 6 | ADVANCED, 7 | RAY_TRACED; 8 | 9 | private static final GraphicsMode[] VALUES = values(); 10 | 11 | public static GraphicsMode from(int id) { 12 | return VALUES[id]; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/HeightMapDataType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum HeightMapDataType { 4 | NO_DATA, 5 | HAS_DATA, 6 | TOO_HIGH, 7 | TOO_LOW, 8 | COPIED 9 | } 10 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/HudElement.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum HudElement { 4 | PAPER_DOLL, 5 | ARMOR, 6 | TOOL_TIPS, // TOOLTIPS 7 | TOUCH_CONTROLS, 8 | CROSSHAIR, 9 | HOTBAR, 10 | HEALTH, 11 | PROGRESS_BAR, 12 | FOOD_BAR, // HUNGER 13 | AIR_BUBBLES_BAR, // AIR_BUBBLES 14 | VEHICLE_HEALTH, // HORSE_HEALTH 15 | /** 16 | * @since v671 17 | */ 18 | EFFECTS_BAR, // STATUS_EFFECTS 19 | /** 20 | * @since v671 21 | */ 22 | ITEM_TEXT_POPUP, // ITEM_TEXT 23 | } 24 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/HudVisibility.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum HudVisibility { 4 | HIDE, 5 | RESET 6 | } 7 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/InputInteractionModel.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum InputInteractionModel { 4 | TOUCH, 5 | CROSSHAIR, 6 | CLASSIC 7 | } 8 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/InputMode.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum InputMode { 4 | UNDEFINED, 5 | MOUSE, 6 | TOUCH, 7 | GAMEPAD, 8 | MOTION_CONTROLLER; 9 | 10 | private static final InputMode[] VALUES = values(); 11 | 12 | public static InputMode from(int id) { 13 | return VALUES[id]; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/LevelEventType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public interface LevelEventType { 4 | } 5 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/MapDecoration.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class MapDecoration { 7 | private final int image; 8 | private final int rotation; 9 | private final int xOffset; 10 | private final int yOffset; 11 | private final String label; 12 | private final int color; 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/MapTrackedObject.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | import lombok.Getter; 4 | import lombok.ToString; 5 | import org.cloudburstmc.math.vector.Vector3i; 6 | 7 | @Getter 8 | @ToString 9 | public class MapTrackedObject { 10 | private final Type type; 11 | private long entityId; 12 | private Vector3i position; 13 | 14 | public MapTrackedObject(long entityId) { 15 | this.type = Type.ENTITY; 16 | this.entityId = entityId; 17 | } 18 | 19 | public MapTrackedObject(Vector3i position) { 20 | this.type = Type.BLOCK; 21 | this.position = position; 22 | } 23 | 24 | public enum Type { 25 | ENTITY, 26 | BLOCK 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/ModalFormCancelReason.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum ModalFormCancelReason { 4 | USER_CLOSED, 5 | USER_BUSY 6 | } 7 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/MovementEffectType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | import lombok.Getter; 4 | import lombok.RequiredArgsConstructor; 5 | 6 | @Getter 7 | @RequiredArgsConstructor 8 | public enum MovementEffectType { 9 | 10 | INVALID(-1), 11 | GLIDE_BOOST(0); 12 | 13 | private final int id; 14 | 15 | private static final MovementEffectType[] VALUES = values(); 16 | 17 | public static MovementEffectType byId(int id) { 18 | for (MovementEffectType type : VALUES) { 19 | if (type.getId() == id) { 20 | return type; 21 | } 22 | } 23 | return null; 24 | } 25 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/MultiplayerMode.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum MultiplayerMode { 4 | ENABLE_MULTIPLAYER, 5 | DISABLE_MULTIPLAYER, 6 | REFRESH_JOIN_CODE 7 | } 8 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/NetworkPermissions.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class NetworkPermissions { 7 | public static final NetworkPermissions DEFAULT = new NetworkPermissions(false); 8 | 9 | boolean serverAuthSounds; 10 | } 11 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/NpcRequestType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum NpcRequestType { 4 | SET_ACTION, 5 | EXECUTE_COMMAND_ACTION, 6 | EXECUTE_CLOSING_COMMANDS, 7 | SET_NAME, 8 | SET_SKIN, 9 | SET_INTERACTION_TEXT, 10 | EXECUTE_OPENING_COMMANDS 11 | } 12 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/PacketCompressionAlgorithm.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum PacketCompressionAlgorithm implements CompressionAlgorithm { 4 | ZLIB, 5 | SNAPPY, 6 | NONE 7 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/PacketRecipient.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | /** 4 | * Describes who receives a packet. 5 | */ 6 | public enum PacketRecipient { 7 | /** 8 | * The packet is sent to the client. 9 | */ 10 | CLIENT, 11 | /** 12 | * The packet is sent to the server. 13 | */ 14 | SERVER, 15 | /** 16 | * The packet is sent to both the client and the server. 17 | */ 18 | BOTH 19 | } 20 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/PacketViolationSeverity.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum PacketViolationSeverity { 4 | UNKNOWN, 5 | WARNING, 6 | FINAL_WARNING, 7 | TERMINATING_CONNECTION 8 | } 9 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/PacketViolationType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum PacketViolationType { 4 | UNKNOWN, 5 | MALFORMED_PACKET 6 | } 7 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/PhotoType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum PhotoType { 4 | PORTFOLIO, 5 | PHOTO_ITEM, 6 | BOOK; 7 | 8 | private static final PhotoType[] VALUES = values(); 9 | 10 | public static PhotoType from(int id) { 11 | return id >= 0 && id < VALUES.length ? VALUES[id] : null; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/PlayerAbilityHolder.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | import org.cloudburstmc.protocol.bedrock.data.command.CommandPermission; 4 | 5 | import java.util.List; 6 | 7 | public interface PlayerAbilityHolder { 8 | 9 | long getUniqueEntityId(); 10 | void setUniqueEntityId(long uniqueEntityId); 11 | 12 | PlayerPermission getPlayerPermission(); 13 | void setPlayerPermission(PlayerPermission playerPermission); 14 | 15 | CommandPermission getCommandPermission(); 16 | void setCommandPermission(CommandPermission commandPermission); 17 | 18 | List getAbilityLayers(); 19 | void setAbilityLayers(List layers); 20 | } 21 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/PlayerArmorDamageFlag.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum PlayerArmorDamageFlag { 4 | HELMET, 5 | CHESTPLATE, 6 | LEGGINGS, 7 | BOOTS, 8 | /** 9 | * @since v712 10 | */ 11 | BODY 12 | } 13 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/PlayerBlockActionData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | import lombok.Data; 4 | import org.cloudburstmc.math.vector.Vector3i; 5 | 6 | @Data 7 | public class PlayerBlockActionData { 8 | PlayerActionType action; 9 | /** 10 | * Only used if {@link #action} is set to {@link PlayerActionType#START_BREAK}, {@link PlayerActionType#ABORT_BREAK}, 11 | * {@link PlayerActionType#CONTINUE_BREAK}, {@link PlayerActionType#BLOCK_PREDICT_DESTROY} or {@link PlayerActionType#BLOCK_CONTINUE_DESTROY} 12 | */ 13 | Vector3i blockPosition; 14 | /** 15 | * Only used if {@link #action} is set to {@link PlayerActionType#START_BREAK}, {@link PlayerActionType#ABORT_BREAK}, 16 | * {@link PlayerActionType#CONTINUE_BREAK}, {@link PlayerActionType#BLOCK_PREDICT_DESTROY} or {@link PlayerActionType#BLOCK_CONTINUE_DESTROY} 17 | */ 18 | int face; 19 | } 20 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/PlayerPermission.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum PlayerPermission { 4 | VISITOR, 5 | MEMBER, 6 | OPERATOR, 7 | CUSTOM 8 | } 9 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/PredictionType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum PredictionType { 4 | PLAYER, 5 | VEHICLE 6 | } 7 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/RandomDistributionType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum RandomDistributionType { 4 | SINGLE_VALUED, 5 | UNIFORM, 6 | GAUSSIAN, 7 | INVERSE_GAUSSIAN, 8 | FIXED_GRID, 9 | JITTERED_GRID, 10 | TRIANGLE 11 | } 12 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/ResourcePackType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum ResourcePackType { 4 | INVALID, 5 | RESOURCES, 6 | DATA_ADD_ON, 7 | WORLD_TEMPLATE, 8 | ADDON, 9 | SKINS, 10 | CACHED, 11 | COPY_PROTECTED, 12 | PERSONA_PIECE 13 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/ServerboundLoadingScreenPacketType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum ServerboundLoadingScreenPacketType { 4 | 5 | UNKNOWN, 6 | START_LOADING_SCREEN, 7 | END_LOADING_SCREEN 8 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/SimpleEventType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum SimpleEventType { 4 | NONE, 5 | ENABLE_COMMANDS, 6 | DISABLE_COMMANDS, 7 | UNLOCK_WORLD_TEMPLATE_SETTINGS 8 | } 9 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/SimulationType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum SimulationType { 4 | GAME, 5 | EDITOR, 6 | TEST 7 | } 8 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/SpawnBiomeType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum SpawnBiomeType { 4 | DEFAULT, 5 | USER_DEFINED; 6 | 7 | private static final SpawnBiomeType[] VALUES = values(); 8 | 9 | public static SpawnBiomeType byId(int id) { 10 | if (id >= 0 && id < VALUES.length) { 11 | return VALUES[id]; 12 | } 13 | throw new UnsupportedOperationException("Unknown SpawnBiomeType ID: " + id); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/StoreOfferRedirectType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum StoreOfferRedirectType { 4 | MARKETPLACE, 5 | DRESSING_ROOM, 6 | THIRD_PARTY_SERVER_PAGE 7 | } 8 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/SubChunkRequestResult.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum SubChunkRequestResult { 4 | UNDEFINED, 5 | SUCCESS, 6 | CHUNK_NOT_FOUND, 7 | INVALID_DIMENSION, 8 | PLAYER_NOT_FOUND, 9 | INDEX_OUT_OF_BOUNDS, 10 | SUCCESS_ALL_AIR 11 | } 12 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/TrimMaterial.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class TrimMaterial { 7 | private final String materialId; 8 | private final String color; 9 | private final String itemName; 10 | } 11 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/TrimPattern.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class TrimPattern { 7 | private final String itemName; 8 | private final String patternId; 9 | } 10 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/UserInterfaceProfile.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data; 2 | 3 | public enum UserInterfaceProfile { 4 | 5 | CLASSIC, 6 | POCKET, 7 | NONE; 8 | 9 | private static final UserInterfaceProfile[] VALUES = values(); 10 | 11 | public static UserInterfaceProfile from(int id) { 12 | return VALUES[id]; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/attribute/AttributeModifierData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.attribute; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class AttributeModifierData { 7 | String id; 8 | String name; 9 | float amount; 10 | AttributeOperation operation; 11 | int operand; 12 | boolean serializable; 13 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/attribute/AttributeOperation.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.attribute; 2 | 3 | public enum AttributeOperation { 4 | ADDITION, 5 | MULTIPLY_BASE, 6 | MULTIPLY_TOTAL, 7 | CAP, 8 | INVALID; 9 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/auth/AuthPayload.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.auth; 2 | 3 | public interface AuthPayload { 4 | 5 | /** 6 | * Returns the authentication type of the player. 7 | * 8 | * @return the authentication type 9 | */ 10 | AuthType getAuthType(); 11 | } 12 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/auth/AuthType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.auth; 2 | 3 | public enum AuthType { 4 | /** 5 | * Player auth status is unknown. This is the default value for legacy clients. 6 | */ 7 | UNKNOWN, 8 | /** 9 | * Player is authenticated directly to Mojang auth servers. 10 | */ 11 | FULL, 12 | /** 13 | * Split screen player using the host's authentication token. 14 | */ 15 | GUEST, 16 | /** 17 | * This player is not authenticated with Mojang auth servers. 18 | */ 19 | SELF_SIGNED 20 | } 21 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/auth/CertificateChainPayload.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.auth; 2 | 3 | import lombok.Getter; 4 | 5 | import java.util.List; 6 | import java.util.Objects; 7 | 8 | public class CertificateChainPayload implements AuthPayload { 9 | 10 | @Getter 11 | private final List chain; 12 | private final AuthType type; 13 | 14 | public CertificateChainPayload(List chain) { 15 | this(chain, AuthType.UNKNOWN); 16 | } 17 | 18 | public CertificateChainPayload(List chain, AuthType type) { 19 | this.chain = chain; 20 | this.type = Objects.requireNonNull(type); 21 | } 22 | 23 | @Override 24 | public AuthType getAuthType() { 25 | return type; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/auth/TokenPayload.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.auth; 2 | 3 | import lombok.Getter; 4 | import org.cloudburstmc.protocol.common.util.Preconditions; 5 | 6 | import java.util.Objects; 7 | 8 | public class TokenPayload implements AuthPayload { 9 | 10 | @Getter 11 | private final String token; 12 | private final AuthType type; 13 | 14 | public TokenPayload(String token, AuthType type) { 15 | Preconditions.checkArgument(type != AuthType.UNKNOWN, "TokenPayload cannot be of type UNKNOWN"); 16 | this.token = token; 17 | this.type = Objects.requireNonNull(type); 18 | } 19 | 20 | @Override 21 | public AuthType getAuthType() { 22 | return type; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/biome/BiomeCappedSurfaceData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.biome; 2 | 3 | import lombok.Value; 4 | import org.checkerframework.checker.nullness.qual.Nullable; 5 | import org.cloudburstmc.protocol.bedrock.data.definitions.BlockDefinition; 6 | 7 | import java.util.List; 8 | import java.util.Optional; 9 | 10 | @Value 11 | public class BiomeCappedSurfaceData { 12 | List floorBlocks; 13 | List ceilingBlocks; 14 | @Nullable 15 | BlockDefinition seaBlock; 16 | @Nullable 17 | BlockDefinition foundationBlock; 18 | @Nullable 19 | BlockDefinition beachBlock; 20 | } 21 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/biome/BiomeClimateData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.biome; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class BiomeClimateData { 7 | float temperature; 8 | float downfall; 9 | float redSporeDensity; 10 | float blueSporeDensity; 11 | float ashDensity; 12 | float whiteAshDensity; 13 | float snowAccumulationMin; 14 | float snowAccumulationMax; 15 | } 16 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/biome/BiomeDefinitions.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.biome; 2 | 3 | import com.fasterxml.jackson.annotation.JsonCreator; 4 | import lombok.AccessLevel; 5 | import lombok.Getter; 6 | import lombok.RequiredArgsConstructor; 7 | import lombok.Value; 8 | import org.cloudburstmc.protocol.common.util.index.Indexable; 9 | 10 | import java.util.Map; 11 | 12 | @Value 13 | @RequiredArgsConstructor(onConstructor_ = { @Deprecated }) 14 | public class BiomeDefinitions { 15 | 16 | @Getter(AccessLevel.NONE) 17 | transient Indexable> definitions; 18 | 19 | @JsonCreator 20 | public BiomeDefinitions(Map definitions) { 21 | this.definitions = new UnindexedBiomes(definitions); 22 | } 23 | 24 | public Map getDefinitions() { 25 | return definitions.get(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/biome/BiomeLegacyWorldGenRulesData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.biome; 2 | 3 | import lombok.Value; 4 | 5 | import java.util.List; 6 | 7 | @Value 8 | public class BiomeLegacyWorldGenRulesData { 9 | List legacyPreHills; 10 | } 11 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/biome/BiomeMesaSurfaceData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.biome; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.protocol.bedrock.data.definitions.BlockDefinition; 5 | 6 | @Value 7 | public class BiomeMesaSurfaceData { 8 | 9 | BlockDefinition clayMaterial; 10 | BlockDefinition hardClayMaterial; 11 | boolean brycePillars; 12 | boolean hasForest; 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/biome/BiomeMountainParamsData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.biome; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.protocol.bedrock.data.definitions.BlockDefinition; 5 | 6 | @Value 7 | public class BiomeMountainParamsData { 8 | 9 | BlockDefinition steepBlock; 10 | boolean northSlopes; 11 | boolean southSlopes; 12 | boolean westSlopes; 13 | boolean eastSlopes; 14 | boolean topSlideEnabled; 15 | } 16 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/biome/BiomeMultinoiseGenRulesData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.biome; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class BiomeMultinoiseGenRulesData { 7 | 8 | float temperature; 9 | float humidity; 10 | float altitude; 11 | float weirdness; 12 | float weight; 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/biome/BiomeOverworldGenRulesData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.biome; 2 | 3 | import lombok.Value; 4 | 5 | import java.util.List; 6 | 7 | @Value 8 | public class BiomeOverworldGenRulesData { 9 | 10 | List hillsTransformations; 11 | List mutateTransformations; 12 | List riverTransformations; 13 | List shoreTransformations; 14 | List preHillsEdgeTransformations; 15 | List postShoreTransformations; 16 | List climateTransformations; 17 | } 18 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/biome/BiomeSurfaceMaterialAdjustmentData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.biome; 2 | 3 | import lombok.Value; 4 | 5 | import java.util.List; 6 | 7 | @Value 8 | public class BiomeSurfaceMaterialAdjustmentData { 9 | List biomeElements; 10 | } 11 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/biome/BiomeSurfaceMaterialData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.biome; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.protocol.bedrock.data.definitions.BlockDefinition; 5 | 6 | @Value 7 | public class BiomeSurfaceMaterialData { 8 | 9 | BlockDefinition topBlock; 10 | BlockDefinition midBlock; 11 | BlockDefinition seaFloorBlock; 12 | BlockDefinition foundationBlock; 13 | BlockDefinition seaBlock; 14 | int seaFloorDepth; 15 | } 16 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/biome/BiomeTemperatureCategory.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.biome; 2 | 3 | public enum BiomeTemperatureCategory { 4 | MEDIUM, 5 | WARM, 6 | LUKEWARM, 7 | COLD, 8 | FROZEN 9 | } 10 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/biome/BiomeWeightedData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.biome; 2 | 3 | import com.fasterxml.jackson.annotation.JsonCreator; 4 | import lombok.AccessLevel; 5 | import lombok.Getter; 6 | import lombok.RequiredArgsConstructor; 7 | import lombok.Value; 8 | import org.cloudburstmc.protocol.common.util.index.Indexable; 9 | import org.cloudburstmc.protocol.common.util.index.Unindexed; 10 | 11 | @Value 12 | @RequiredArgsConstructor(onConstructor_ = { @Deprecated }) 13 | public class BiomeWeightedData { 14 | @Getter(AccessLevel.NONE) 15 | transient Indexable biome; 16 | int weight; 17 | 18 | @JsonCreator 19 | public BiomeWeightedData(String biome, int weight) { 20 | this.biome = new Unindexed<>(biome); 21 | this.weight = weight; 22 | } 23 | 24 | public String getBiome() { 25 | return biome.get(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/biome/BiomeWeightedTemperatureData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.biome; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class BiomeWeightedTemperatureData { 7 | 8 | BiomeTemperatureCategory temperature; 9 | long weight; 10 | } 11 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/biome/UnindexedBiomes.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.biome; 2 | 3 | import org.cloudburstmc.protocol.common.util.index.Indexable; 4 | 5 | import java.util.Map; 6 | 7 | final class UnindexedBiomes implements Indexable> { 8 | private final Map biomes; 9 | 10 | UnindexedBiomes(Map biomes) { 11 | this.biomes = biomes; 12 | } 13 | 14 | @Override 15 | public Map get() { 16 | return this.biomes; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/camera/AimAssistAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.camera; 2 | 3 | public enum AimAssistAction { 4 | SET, 5 | CLEAR 6 | } 7 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/camera/CameraAimAssistCategories.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.camera; 2 | 3 | import it.unimi.dsi.fastutil.objects.ObjectArrayList; 4 | import lombok.Data; 5 | 6 | import java.util.List; 7 | 8 | @Data 9 | public class CameraAimAssistCategories { 10 | private String identifier; 11 | private final List categories = new ObjectArrayList<>(); 12 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/camera/CameraAimAssistCategory.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.camera; 2 | 3 | import it.unimi.dsi.fastutil.objects.ObjectArrayList; 4 | import lombok.Data; 5 | 6 | import java.util.ArrayList; 7 | import java.util.List; 8 | 9 | @Data 10 | public class CameraAimAssistCategory { 11 | private String name; 12 | private List entityPriorities = new ObjectArrayList<>(); 13 | private List blockPriorities = new ArrayList<>(); 14 | private Integer entityDefaultPriorities; 15 | private Integer blockDefaultPriorities; 16 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/camera/CameraAimAssistItemSettings.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.camera; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | 6 | @Data 7 | @AllArgsConstructor 8 | public class CameraAimAssistItemSettings { 9 | private final String itemId; 10 | private final String category; 11 | } 12 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/camera/CameraAimAssistOperation.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.camera; 2 | 3 | public enum CameraAimAssistOperation { 4 | SET, 5 | ADD_TO_EXISTING 6 | } 7 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/camera/CameraAimAssistPreset.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.camera; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import org.cloudburstmc.math.vector.Vector2f; 7 | 8 | @Data 9 | @Builder 10 | @AllArgsConstructor 11 | public class CameraAimAssistPreset { 12 | private String identifier; 13 | private Integer targetMode; 14 | private Vector2f angle; 15 | private Float distance; 16 | } 17 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/camera/CameraAimAssistPresetDefinition.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.camera; 2 | 3 | import it.unimi.dsi.fastutil.objects.ObjectArrayList; 4 | import lombok.Data; 5 | 6 | import java.util.List; 7 | 8 | @Data 9 | public class CameraAimAssistPresetDefinition { 10 | private String identifier; 11 | /** 12 | * @deprecated since v776 13 | */ 14 | private String categories; 15 | private final List exclusionList = new ObjectArrayList<>(); 16 | private final List liquidTargetingList = new ObjectArrayList<>(); 17 | private final List itemSettings = new ObjectArrayList<>(); 18 | private String defaultItemSettings; 19 | private String handSettings; 20 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/camera/CameraAimAssistPriority.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.camera; 2 | 3 | import lombok.Data; 4 | import lombok.RequiredArgsConstructor; 5 | 6 | @Data 7 | @RequiredArgsConstructor 8 | public class CameraAimAssistPriority { 9 | private final String name; 10 | private final int priority; 11 | } 12 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/camera/CameraAudioListener.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.camera; 2 | 3 | public enum CameraAudioListener { 4 | CAMERA, 5 | PLAYER 6 | } 7 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/camera/CameraFadeInstruction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.camera; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | 7 | import java.awt.*; 8 | 9 | @Data 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | public class CameraFadeInstruction { 13 | private TimeData timeData; 14 | private Color color; 15 | 16 | @Data 17 | public static class TimeData { 18 | private final float fadeInTime; 19 | private final float waitTime; 20 | private final float fadeOutTime; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/camera/CameraTargetInstruction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.camera; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import org.cloudburstmc.math.vector.Vector3f; 7 | 8 | @Data 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | public class CameraTargetInstruction { 12 | private Vector3f targetCenterOffset; 13 | private long uniqueEntityId; 14 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/command/ChainedSubCommandData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.command; 2 | 3 | import it.unimi.dsi.fastutil.objects.ObjectArrayList; 4 | import lombok.Data; 5 | 6 | import java.util.List; 7 | 8 | @Data 9 | public class ChainedSubCommandData { 10 | private final String name; 11 | private final List values = new ObjectArrayList<>(); 12 | 13 | @Data 14 | public static class Value { 15 | private final String first; 16 | private final String second; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/command/CommandEnumConstraint.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.command; 2 | 3 | public enum CommandEnumConstraint { 4 | CHEATS_ENABLED, 5 | OPERATOR_PERMISSIONS, 6 | HOST_PERMISSIONS, 7 | ALLOW_ALIASES 8 | } 9 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/command/CommandEnumData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.command; 2 | 3 | import lombok.Value; 4 | 5 | import java.util.Map; 6 | import java.util.Set; 7 | 8 | @Value 9 | public class CommandEnumData { 10 | String name; 11 | Map> values; 12 | boolean isSoft; 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/command/CommandOriginData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.command; 2 | 3 | import lombok.Value; 4 | 5 | import java.util.UUID; 6 | 7 | @Value 8 | public class CommandOriginData { 9 | private final CommandOriginType origin; 10 | private final UUID uuid; 11 | private final String requestId; 12 | private final long event; 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/command/CommandOriginType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.command; 2 | 3 | public enum CommandOriginType { 4 | PLAYER, 5 | BLOCK, 6 | MINECART_BLOCK, 7 | DEV_CONSOLE, 8 | TEST, 9 | AUTOMATION_PLAYER, 10 | CLIENT_AUTOMATION, 11 | DEDICATED_SERVER, 12 | ENTITY, 13 | VIRTUAL, 14 | GAME_ARGUMENT, 15 | ENTITY_SERVER, 16 | PRECOMPILED, 17 | GAME_DIRECTOR_ENTITY_SERVER, 18 | SCRIPT, 19 | EXECUTE_CONTEXT 20 | } 21 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/command/CommandOutputMessage.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.command; 2 | 3 | import lombok.NonNull; 4 | import lombok.Value; 5 | 6 | @Value 7 | public class CommandOutputMessage { 8 | private final boolean internal; 9 | @NonNull 10 | private final String messageId; 11 | @NonNull 12 | private final String[] parameters; 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/command/CommandOutputType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.command; 2 | 3 | public enum CommandOutputType { 4 | NONE, 5 | LAST_OUTPUT, 6 | SILENT, 7 | ALL_OUTPUT, 8 | DATA_SET 9 | } 10 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/command/CommandOverloadData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.command; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class CommandOverloadData { 7 | private final boolean chaining; 8 | private final CommandParamData[] overloads; 9 | } 10 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/command/CommandParamData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.command; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.EnumSet; 6 | import java.util.Set; 7 | 8 | @Data 9 | public class CommandParamData { 10 | private String name; 11 | private boolean optional; 12 | private CommandEnumData enumData; 13 | private CommandParam type; 14 | private String postfix; 15 | private final Set options = EnumSet.noneOf(CommandParamOption.class); 16 | } 17 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/command/CommandParamOption.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.command; 2 | 3 | public enum CommandParamOption { 4 | SUPPRESS_ENUM_AUTOCOMPLETION, 5 | HAS_SEMANTIC_CONSTRAINT, 6 | ENUM_AS_CHAINED_COMMAND 7 | } 8 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/command/CommandPermission.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.command; 2 | 3 | public enum CommandPermission { 4 | ANY, 5 | GAME_DIRECTORS, 6 | ADMIN, 7 | HOST, 8 | OWNER, 9 | INTERNAL 10 | } 11 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/command/SoftEnumUpdateType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.command; 2 | 3 | public enum SoftEnumUpdateType { 4 | ADD, 5 | REMOVE, 6 | REPLACE 7 | } 8 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/definitions/BlockDefinition.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.definitions; 2 | 3 | import org.cloudburstmc.protocol.common.Definition; 4 | 5 | public interface BlockDefinition extends Definition { 6 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/definitions/DimensionDefinition.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.definitions; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class DimensionDefinition { 7 | String id; 8 | int maximumHeight; 9 | int minimumHeight; 10 | int generatorType; 11 | } 12 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/definitions/FeatureDefinition.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.definitions; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class FeatureDefinition { 7 | String name; 8 | String json; 9 | } 10 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/definitions/SimpleItemDefinition.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.definitions; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Value; 5 | import lombok.experimental.NonFinal; 6 | import org.cloudburstmc.nbt.NbtMap; 7 | import org.cloudburstmc.protocol.bedrock.data.inventory.ItemVersion; 8 | 9 | @Value 10 | @NonFinal 11 | @AllArgsConstructor 12 | public class SimpleItemDefinition implements ItemDefinition { 13 | String identifier; 14 | int runtimeId; 15 | ItemVersion version; 16 | boolean componentBased; 17 | NbtMap componentData; 18 | 19 | // Backwards compatibility constructor 20 | public SimpleItemDefinition(String identifier, int runtimeId, boolean componentBased) { 21 | this.identifier = identifier; 22 | this.runtimeId = runtimeId; 23 | this.componentBased = componentBased; 24 | this.version = ItemVersion.LEGACY; 25 | this.componentData = null; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/definitions/SimpleNamedDefinition.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.definitions; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.protocol.common.NamedDefinition; 5 | 6 | @Value 7 | public class SimpleNamedDefinition implements NamedDefinition { 8 | String identifier; 9 | int runtimeId; 10 | } 11 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/ee/LessonAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.ee; 2 | 3 | public enum LessonAction { 4 | START, 5 | COMPLETE, 6 | RESTART 7 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/entity/EntityDataFormat.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.entity; 2 | 3 | import lombok.RequiredArgsConstructor; 4 | 5 | @RequiredArgsConstructor 6 | public enum EntityDataFormat { 7 | BYTE, 8 | SHORT, 9 | INT, 10 | FLOAT, 11 | STRING, 12 | NBT, 13 | VECTOR3I, 14 | LONG, 15 | VECTOR3F; 16 | } 17 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/entity/EntityDataType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.entity; 2 | 3 | public class EntityDataType { 4 | 5 | private final String name; 6 | private final Class type; 7 | 8 | public EntityDataType(Class type, String name) { 9 | this.name = name; 10 | this.type = type; 11 | } 12 | 13 | public boolean isInstance(Object value) { 14 | return type.isInstance(value); 15 | } 16 | 17 | public String getTypeName() { 18 | return this.type.getTypeName(); 19 | } 20 | 21 | @Override 22 | public String toString() { 23 | return name; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/entity/EntityProperties.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.entity; 2 | 3 | import it.unimi.dsi.fastutil.objects.ObjectArrayList; 4 | import lombok.Value; 5 | 6 | import java.util.List; 7 | 8 | @Value 9 | public class EntityProperties { 10 | List intProperties = new ObjectArrayList<>(); 11 | List floatProperties = new ObjectArrayList<>(); 12 | } 13 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/entity/EntityProperty.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.entity; 2 | 3 | public interface EntityProperty { 4 | 5 | int getIndex(); 6 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/entity/FloatEntityProperty.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.entity; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class FloatEntityProperty implements EntityProperty { 7 | int index; 8 | float value; 9 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/entity/IntEntityProperty.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.entity; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class IntEntityProperty implements EntityProperty { 7 | int index; 8 | int value; 9 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/AchievementAwardedEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class AchievementAwardedEventData implements EventData { 7 | private final int achievementId; 8 | 9 | @Override 10 | public EventDataType getType() { 11 | return EventDataType.ACHIEVEMENT_AWARDED; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/AgentCommandEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class AgentCommandEventData implements EventData { 7 | private final AgentResult result; 8 | private final String command; 9 | private final String dataKey; 10 | private final int dataValue; 11 | private final String output; 12 | 13 | @Override 14 | public EventDataType getType() { 15 | return EventDataType.AGENT_COMMAND; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/AgentCreatedEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.AccessLevel; 4 | import lombok.NoArgsConstructor; 5 | 6 | @NoArgsConstructor(access = AccessLevel.PRIVATE) 7 | public class AgentCreatedEventData implements EventData { 8 | public static final AgentCreatedEventData INSTANCE = new AgentCreatedEventData(); 9 | 10 | @Override 11 | public EventDataType getType() { 12 | return EventDataType.AGENT_CREATED; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/AgentResult.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | public enum AgentResult { 4 | ACTION_FAIL, 5 | ACTION_SUCCESS, 6 | QUERY_RESULT_FALSE, 7 | QUERY_RESULT_TRUE 8 | } 9 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/BellUsedEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class BellUsedEventData implements EventData { 7 | private final int itemId; 8 | 9 | @Override 10 | public EventDataType getType() { 11 | return EventDataType.BELL_USED; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/BossKilledEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class BossKilledEventData implements EventData { 7 | private final long bossUniqueEntityId; 8 | private final int playerPartySize; 9 | private final int bossEntityType; 10 | 11 | @Override 12 | public EventDataType getType() { 13 | return EventDataType.BOSS_KILLED; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/CarefulRestorationEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.AccessLevel; 4 | import lombok.NoArgsConstructor; 5 | 6 | @NoArgsConstructor(access = AccessLevel.PRIVATE) 7 | public class CarefulRestorationEventData implements EventData { 8 | public static final CarefulRestorationEventData INSTANCE = new CarefulRestorationEventData(); 9 | 10 | @Override 11 | public EventDataType getType() { 12 | return EventDataType.CAREFUL_RESTORATION; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/CauldronInteractEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.protocol.bedrock.data.BlockInteractionType; 5 | 6 | @Value 7 | public class CauldronInteractEventData implements EventData { 8 | private final BlockInteractionType blockInteractionType; 9 | private final int itemId; 10 | 11 | @Override 12 | public EventDataType getType() { 13 | return EventDataType.CAULDRON_INTERACT; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/CauldronUsedEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class CauldronUsedEventData implements EventData { 7 | private final int potionId; 8 | private final int color; 9 | private final int fillLevel; 10 | 11 | @Override 12 | public EventDataType getType() { 13 | return EventDataType.CAULDRON_USED; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/CodeBuilderActionEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class CodeBuilderActionEventData implements EventData { 7 | private final String action; 8 | 9 | @Override 10 | public EventDataType getType() { 11 | return EventDataType.CODE_BUILDER_ACTION; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/CodeBuilderScoreboardEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class CodeBuilderScoreboardEventData implements EventData { 7 | private final String objectiveName; 8 | private final int score; 9 | 10 | @Override 11 | public EventDataType getType() { 12 | return EventDataType.CODE_BUILDER_SCOREBOARD; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/ComposterInteractEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.protocol.bedrock.data.BlockInteractionType; 5 | 6 | @Value 7 | public class ComposterInteractEventData implements EventData { 8 | private final BlockInteractionType blockInteractionType; 9 | private final int itemId; 10 | 11 | @Override 12 | public EventDataType getType() { 13 | return EventDataType.COMPOSTER_INTERACT; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/CopperWaxedOrUnwaxedEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Data; 4 | import org.cloudburstmc.protocol.bedrock.data.definitions.BlockDefinition; 5 | 6 | @Data 7 | public class CopperWaxedOrUnwaxedEventData implements EventData { 8 | private final BlockDefinition definition; 9 | 10 | @Override 11 | public EventDataType getType() { 12 | return EventDataType.COPPER_WAXED_OR_UNWAXED; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/EntityDefinitionTriggerEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class EntityDefinitionTriggerEventData implements EventData { 7 | private final String eventName; 8 | 9 | @Override 10 | public EventDataType getType() { 11 | return EventDataType.ENTITY_DEFINITION_TRIGGER; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/EntityInteractEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class EntityInteractEventData implements EventData { 7 | /** 8 | * @since v671 9 | */ 10 | private final long interactedEntityID; 11 | private final int interactionType; 12 | private final int legacyEntityTypeId; 13 | private final int variant; 14 | private final int paletteColor; 15 | 16 | @Override 17 | public EventDataType getType() { 18 | return EventDataType.ENTITY_INTERACT; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/EventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | public interface EventData { 4 | 5 | EventDataType getType(); 6 | } 7 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/ExtractHoneyEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.AccessLevel; 4 | import lombok.NoArgsConstructor; 5 | 6 | @NoArgsConstructor(access = AccessLevel.PRIVATE) 7 | public class ExtractHoneyEventData implements EventData { 8 | public static final ExtractHoneyEventData INSTANCE = new ExtractHoneyEventData(); 9 | 10 | @Override 11 | public EventDataType getType() { 12 | return EventDataType.EXTRACT_HONEY; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/FishBucketedEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class FishBucketedEventData implements EventData { 7 | private final int pattern; 8 | private final int preset; 9 | private final int bucketedEntityType; 10 | private final boolean releaseEvent; 11 | 12 | @Override 13 | public EventDataType getType() { 14 | return EventDataType.FISH_BUCKETED; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/ItemUsedEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class ItemUsedEventData implements EventData { 7 | private final short itemId; 8 | private final int itemAux; 9 | private final int useMethod; 10 | private final int useCount; 11 | 12 | @Override 13 | public EventDataType getType() { 14 | return EventDataType.ITEM_USED_EVENT; 15 | } 16 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/MobBornEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class MobBornEventData implements EventData { 7 | private final int entityType; 8 | private final int variant; 9 | private final int color; 10 | 11 | @Override 12 | public EventDataType getType() { 13 | return EventDataType.MOB_BORN; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/MobKilledEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.RequiredArgsConstructor; 5 | import lombok.Value; 6 | import lombok.experimental.NonFinal; 7 | 8 | @Value 9 | @RequiredArgsConstructor 10 | @AllArgsConstructor 11 | public class MobKilledEventData implements EventData { 12 | private final long killerUniqueEntityId; 13 | private final long victimUniqueEntityId; 14 | private final int killerEntityType; 15 | private final int entityDamageCause; 16 | @NonFinal 17 | private int villagerTradeTier = -1; 18 | @NonFinal 19 | private String villagerDisplayName = ""; 20 | 21 | @Override 22 | public EventDataType getType() { 23 | return EventDataType.MOB_KILLED; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/MovementAnomalyEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class MovementAnomalyEventData implements EventData { 7 | private final int eventType; 8 | private final float cheatingScore; 9 | private final float averagePositionDelta; 10 | private final float totalPositionDelta; 11 | private final float minPositionDelta; 12 | private final float maxPositionDelta; 13 | 14 | @Override 15 | public EventDataType getType() { 16 | return EventDataType.MOVEMENT_ANOMALY; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/MovementCorrectedEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class MovementCorrectedEventData implements EventData { 7 | private final float positionDelta; 8 | private final float cheatingScore; 9 | private final float scoreThreshold; 10 | private final float distanceThreshold; 11 | private final int durationThreshold; 12 | 13 | @Override 14 | public EventDataType getType() { 15 | return EventDataType.MOVEMENT_CORRECTED; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/PatternRemovedEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class PatternRemovedEventData implements EventData { 7 | private final int itemId; 8 | private final int auxValue; 9 | private final int patternsSize; 10 | private final int patternIndex; 11 | private final int patternColor; 12 | 13 | @Override 14 | public EventDataType getType() { 15 | return EventDataType.PATTERN_REMOVED; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/PetDiedEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class PetDiedEventData implements EventData { 7 | private final boolean ownerKilled; 8 | private final long killerUniqueEntityId; 9 | private final long petUniqueEntityId; 10 | private final int entityDamageCause; 11 | private final int petEntityType; 12 | 13 | @Override 14 | public EventDataType getType() { 15 | return EventDataType.PET_DIED; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/PiglinBarterEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Data; 4 | import org.cloudburstmc.protocol.bedrock.data.definitions.ItemDefinition; 5 | 6 | @Data 7 | public class PiglinBarterEventData implements EventData { 8 | private final ItemDefinition definition; 9 | private final boolean targetingPlayer; 10 | 11 | @Override 12 | public EventDataType getType() { 13 | return EventDataType.PIGLIN_BARTER; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/PlayerDiedEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class PlayerDiedEventData implements EventData { 7 | private final int attackerEntityId; 8 | private final int attackerVariant; 9 | private final int entityDamageCause; 10 | private final boolean inRaid; 11 | 12 | @Override 13 | public EventDataType getType() { 14 | return EventDataType.PLAYER_DIED; 15 | } 16 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/PortalBuiltEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class PortalBuiltEventData implements EventData { 7 | private int dimensionId; 8 | 9 | @Override 10 | public EventDataType getType() { 11 | return EventDataType.PORTAL_BUILT; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/PortalUsedEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class PortalUsedEventData implements EventData { 7 | private final int fromDimensionId; 8 | private final int toDimensionId; 9 | 10 | @Override 11 | public EventDataType getType() { 12 | return EventDataType.PORTAL_USED; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/RaidUpdateEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class RaidUpdateEventData implements EventData { 7 | private final int currentWave; 8 | private final int totalWaves; 9 | private final boolean winner; 10 | 11 | @Override 12 | public EventDataType getType() { 13 | return EventDataType.RAID_UPDATE; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/SlashCommandExecutedEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Value; 4 | 5 | import java.util.List; 6 | 7 | @Value 8 | public class SlashCommandExecutedEventData implements EventData { 9 | private final String commandName; 10 | private final int successCount; 11 | private final List outputMessages; 12 | 13 | @Override 14 | public EventDataType getType() { 15 | return EventDataType.SLASH_COMMAND_EXECUTED; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/SneakCloseToSculkSensorEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.AccessLevel; 4 | import lombok.NoArgsConstructor; 5 | 6 | @NoArgsConstructor(access = AccessLevel.PRIVATE) 7 | public class SneakCloseToSculkSensorEventData implements EventData { 8 | public static final SneakCloseToSculkSensorEventData INSTANCE = new SneakCloseToSculkSensorEventData(); 9 | 10 | @Override 11 | public EventDataType getType() { 12 | return EventDataType.SNEAK_CLOSE_TO_SCULK_SENSOR; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/StriderRiddenInLavaInOverworldEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.AccessLevel; 4 | import lombok.NoArgsConstructor; 5 | 6 | @NoArgsConstructor(access = AccessLevel.PRIVATE) 7 | public class StriderRiddenInLavaInOverworldEventData implements EventData { 8 | public static final StriderRiddenInLavaInOverworldEventData INSTANCE = new StriderRiddenInLavaInOverworldEventData(); 9 | 10 | @Override 11 | public EventDataType getType() { 12 | return EventDataType.STRIDER_RIDDEN_IN_LAVA_IN_OVERWORLD; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/event/TargetBlockHitEventData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.event; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class TargetBlockHitEventData implements EventData { 7 | private final int redstoneLevel; 8 | 9 | @Override 10 | public EventDataType getType() { 11 | return EventDataType.TARGET_BLOCK_HIT; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/CraftingType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory; 2 | 3 | public enum CraftingType { 4 | INVENTORY, 5 | CRAFTING, 6 | WORKBENCH 7 | } 8 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/CreativeItemCategory.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory; 2 | 3 | public enum CreativeItemCategory { 4 | ALL, 5 | CONSTRUCTION, 6 | NATURE, 7 | EQUIPMENT, 8 | ITEMS, 9 | ITEM_COMMAND_ONLY, 10 | UNDEFINED 11 | } 12 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/CreativeItemData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | @Data 8 | @Builder(toBuilder = true) 9 | @AllArgsConstructor 10 | public class CreativeItemData { 11 | private final ItemData item; 12 | private final int netId; 13 | private final int groupId; 14 | } 15 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/CreativeItemGroup.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | 7 | @Data 8 | @Builder(toBuilder = true) 9 | @AllArgsConstructor 10 | public class CreativeItemGroup { 11 | private final CreativeItemCategory category; 12 | private final String name; 13 | private final ItemData icon; 14 | } 15 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/EnchantData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class EnchantData { 7 | private final int type; 8 | private final int level; 9 | } 10 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/EnchantOptionData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory; 2 | 3 | import lombok.Value; 4 | 5 | import java.util.List; 6 | 7 | @Value 8 | public class EnchantOptionData { 9 | private final int cost; 10 | private final int primarySlot; 11 | private final List enchants0; 12 | private final List enchants1; 13 | private final List enchants2; 14 | private final String enchantName; 15 | private final int enchantNetId; 16 | } 17 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/FullContainerName.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class FullContainerName { 7 | private final ContainerSlotType container; 8 | /** 9 | * May be null if not present since v729 10 | */ 11 | private final Integer dynamicId; 12 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/InventoryLayout.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory; 2 | 3 | public enum InventoryLayout { 4 | NONE, 5 | SURVIVAL, 6 | RECIPE_BOOK, 7 | CREATIVE; 8 | 9 | public static final InventoryLayout[] VALUES = values(); 10 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/InventoryTabLeft.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory; 2 | 3 | public enum InventoryTabLeft { 4 | NONE, 5 | RECIPE_CONSTRUCTION, 6 | RECIPE_EQUIPMENT, 7 | RECIPE_ITEMS, 8 | RECIPE_NATURE, 9 | RECIPE_SEARCH, 10 | SURVIVAL; 11 | 12 | public static final InventoryTabLeft[] VALUES = values(); 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/InventoryTabRight.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory; 2 | 3 | public enum InventoryTabRight { 4 | NONE, 5 | FULL_SCREEN, 6 | CRAFTING, 7 | ARMOR; 8 | 9 | public static final InventoryTabRight[] VALUES = values(); 10 | } 11 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/ItemUseType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory; 2 | 3 | public enum ItemUseType { 4 | UNKNOWN, 5 | EQUIP_ARMOR, 6 | EAT, 7 | ATTACK, 8 | CONSUME, 9 | THROW, 10 | SHOOT, 11 | PLACE, 12 | FILL_BOTTLE, 13 | FILL_BUCKET, 14 | POUR_BUCKET, 15 | USE_TOOL, 16 | INTERACT, 17 | RETRIEVED, 18 | DYED, 19 | TRADED, 20 | /** 21 | * @since 594 22 | */ 23 | BRUSHING_COMPLETED, 24 | /** 25 | * @since v685 26 | */ 27 | OPENED_VAULT 28 | } 29 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/ItemVersion.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory; 2 | 3 | public enum ItemVersion { 4 | LEGACY, 5 | DATA_DRIVEN, 6 | NONE; 7 | 8 | private static final ItemVersion[] VALUES = values(); 9 | 10 | public static ItemVersion from(int ordinal) { 11 | return VALUES[ordinal]; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/LabTableReactionType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory; 2 | 3 | public enum LabTableReactionType { 4 | NONE, 5 | ICE_BOMB, 6 | BLEACH, 7 | ELEPHANT_TOOTHPASTE, 8 | FERTILIZER, 9 | HEAT_BLOCK, 10 | MAGNESIUM_SALTS, 11 | MISC_FIRE, 12 | MISC_EXPLOSION, 13 | MISC_LAVAL, 14 | MISC_MYSTICAL, 15 | MISC_SMOKE, 16 | MISC_LARGE_SMOKE 17 | } 18 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/LabTableType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory; 2 | 3 | public enum LabTableType { 4 | START_COMBINE, 5 | START_REACTION, 6 | RESET 7 | } 8 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/crafting/ContainerMixData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.crafting; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class ContainerMixData { 7 | private final int inputId; 8 | private final int reagentId; 9 | private final int outputId; 10 | } 11 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/crafting/CraftingDataType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.crafting; 2 | 3 | public enum CraftingDataType { 4 | SHAPELESS, 5 | SHAPED, 6 | FURNACE, 7 | FURNACE_DATA, 8 | MULTI, 9 | SHULKER_BOX, // USER_DATA_SHAPELESS 10 | SHAPELESS_CHEMISTRY, 11 | SHAPED_CHEMISTRY, 12 | /** 13 | * @since v567 14 | */ 15 | SMITHING_TRANSFORM, 16 | /** 17 | * @since v582 18 | */ 19 | SMITHING_TRIM; 20 | 21 | private static final CraftingDataType[] VALUES = values(); 22 | 23 | public static CraftingDataType byId(int id) { 24 | if (id >= 0 && id < VALUES.length) { 25 | return VALUES[id]; 26 | } 27 | throw new UnsupportedOperationException("Unknown CraftingDataType ID: " + id); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/crafting/MaterialReducer.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.crafting; 2 | 3 | import it.unimi.dsi.fastutil.objects.Object2IntMap; 4 | import lombok.Value; 5 | import org.cloudburstmc.protocol.bedrock.data.definitions.ItemDefinition; 6 | 7 | @Value 8 | public class MaterialReducer { 9 | int inputId; 10 | Object2IntMap itemCounts; 11 | } 12 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/crafting/PotionMixData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.crafting; 2 | 3 | import lombok.Value; 4 | 5 | /** 6 | * Represents a potion mixing recipe which may be used in a brewing stand. 7 | */ 8 | @Value 9 | public class PotionMixData { 10 | // Potion to be put in 11 | private final int inputId; 12 | private final int inputMeta; 13 | 14 | // Item to be added to the brewing stand to brew the output potion 15 | private final int reagentId; 16 | private final int reagentMeta; 17 | 18 | // Output Potion 19 | private final int outputId; 20 | private final int outputMeta; 21 | } 22 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/crafting/RecipeIngredient.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.crafting; 2 | 3 | import lombok.AccessLevel; 4 | import lombok.RequiredArgsConstructor; 5 | import lombok.Value; 6 | 7 | @Value 8 | @RequiredArgsConstructor(access = AccessLevel.PRIVATE) 9 | public class RecipeIngredient { 10 | public static final RecipeIngredient EMPTY = new RecipeIngredient(0, 0, 0); 11 | 12 | private final int id; 13 | private final int auxValue; 14 | private final int stackSize; 15 | 16 | public static RecipeIngredient of(int id, int auxValue, int stackSize) { 17 | if (id == 0) { 18 | return EMPTY; 19 | } 20 | return new RecipeIngredient(id, auxValue, stackSize); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/crafting/recipe/CraftingRecipeData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.crafting.recipe; 2 | 3 | import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; 4 | import org.cloudburstmc.protocol.bedrock.data.inventory.crafting.RecipeUnlockingRequirement; 5 | import org.cloudburstmc.protocol.bedrock.data.inventory.descriptor.ItemDescriptorWithCount; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * A recipe that can be used on a grid-like table. 11 | */ 12 | public interface CraftingRecipeData extends TaggedCraftingData, UniqueCraftingData, IdentifiableRecipeData { 13 | 14 | List getIngredients(); 15 | 16 | List getResults(); 17 | 18 | int getPriority(); 19 | 20 | RecipeUnlockingRequirement getRequirement(); 21 | } 22 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/crafting/recipe/IdentifiableRecipeData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.crafting.recipe; 2 | 3 | public interface IdentifiableRecipeData { 4 | 5 | String getId(); 6 | } 7 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/crafting/recipe/MultiRecipeData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.crafting.recipe; 2 | 3 | import lombok.*; 4 | import org.cloudburstmc.protocol.bedrock.data.inventory.crafting.CraftingDataType; 5 | 6 | import java.util.UUID; 7 | 8 | @Getter 9 | @ToString 10 | @EqualsAndHashCode 11 | @RequiredArgsConstructor(access = AccessLevel.PRIVATE) 12 | public class MultiRecipeData implements UniqueCraftingData { 13 | 14 | private final UUID uuid; 15 | private final int netId; 16 | 17 | @Override 18 | public CraftingDataType getType() { 19 | return CraftingDataType.MULTI; 20 | } 21 | 22 | public static MultiRecipeData of(UUID uuid, int netId) { 23 | return new MultiRecipeData(uuid, netId); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/crafting/recipe/NetworkRecipeData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.crafting.recipe; 2 | 3 | public interface NetworkRecipeData extends RecipeData { 4 | 5 | int getNetId(); 6 | } 7 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/crafting/recipe/RecipeData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.crafting.recipe; 2 | 3 | import org.cloudburstmc.protocol.bedrock.data.inventory.crafting.CraftingDataType; 4 | 5 | public interface RecipeData { 6 | 7 | CraftingDataType getType(); 8 | } 9 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/crafting/recipe/TaggedCraftingData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.crafting.recipe; 2 | 3 | public interface TaggedCraftingData extends RecipeData { 4 | 5 | String getTag(); 6 | } 7 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/crafting/recipe/UniqueCraftingData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.crafting.recipe; 2 | 3 | import java.util.UUID; 4 | 5 | public interface UniqueCraftingData extends NetworkRecipeData { 6 | 7 | UUID getUuid(); 8 | } 9 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/descriptor/ComplexAliasDescriptor.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.descriptor; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; 5 | 6 | @Value 7 | public class ComplexAliasDescriptor implements ItemDescriptor { 8 | String name; 9 | 10 | @Override 11 | public ItemDescriptorType getType() { 12 | return ItemDescriptorType.COMPLEX_ALIAS; 13 | } 14 | 15 | @Override 16 | public ItemData.Builder toItem() { 17 | throw new UnsupportedOperationException(); 18 | } 19 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/descriptor/DefaultDescriptor.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.descriptor; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.protocol.bedrock.data.definitions.ItemDefinition; 5 | import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; 6 | 7 | @Value 8 | public class DefaultDescriptor implements ItemDescriptor { 9 | ItemDefinition itemId; 10 | int auxValue; 11 | 12 | @Override 13 | public ItemDescriptorType getType() { 14 | return ItemDescriptorType.DEFAULT; 15 | } 16 | 17 | @Override 18 | public ItemData.Builder toItem() { 19 | return ItemData.builder() 20 | .definition(itemId) 21 | .damage(auxValue); 22 | } 23 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/descriptor/DeferredDescriptor.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.descriptor; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; 5 | 6 | @Value 7 | public class DeferredDescriptor implements ItemDescriptor { 8 | String fullName; 9 | int auxValue; 10 | 11 | @Override 12 | public ItemDescriptorType getType() { 13 | return ItemDescriptorType.DEFERRED; 14 | } 15 | 16 | @Override 17 | public ItemData.Builder toItem() { 18 | throw new UnsupportedOperationException(); 19 | } 20 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/descriptor/InvalidDescriptor.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.descriptor; 2 | 3 | import lombok.AccessLevel; 4 | import lombok.NoArgsConstructor; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; 7 | 8 | @ToString 9 | @NoArgsConstructor(access = AccessLevel.PRIVATE) 10 | public class InvalidDescriptor implements ItemDescriptor { 11 | 12 | public static final InvalidDescriptor INSTANCE = new InvalidDescriptor(); 13 | 14 | @Override 15 | public ItemDescriptorType getType() { 16 | return ItemDescriptorType.INVALID; 17 | } 18 | 19 | @Override 20 | public ItemData.Builder toItem() { 21 | throw new UnsupportedOperationException(); 22 | } 23 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/descriptor/ItemDescriptor.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.descriptor; 2 | 3 | import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; 4 | 5 | public interface ItemDescriptor { 6 | 7 | ItemDescriptorType getType(); 8 | 9 | ItemData.Builder toItem(); 10 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/descriptor/ItemDescriptorType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.descriptor; 2 | 3 | public enum ItemDescriptorType { 4 | INVALID, 5 | DEFAULT, 6 | MOLANG, 7 | ITEM_TAG, 8 | DEFERRED, 9 | /** 10 | * @since v575 11 | */ 12 | COMPLEX_ALIAS 13 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/descriptor/ItemTagDescriptor.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.descriptor; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; 5 | 6 | @Value 7 | public class ItemTagDescriptor implements ItemDescriptor { 8 | String itemTag; 9 | 10 | @Override 11 | public ItemDescriptorType getType() { 12 | return ItemDescriptorType.ITEM_TAG; 13 | } 14 | 15 | @Override 16 | public ItemData.Builder toItem() { 17 | throw new UnsupportedOperationException(); 18 | } 19 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/descriptor/MolangDescriptor.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.descriptor; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; 5 | 6 | @Value 7 | public class MolangDescriptor implements ItemDescriptor { 8 | String tagExpression; 9 | int molangVersion; 10 | 11 | @Override 12 | public ItemDescriptorType getType() { 13 | return ItemDescriptorType.MOLANG; 14 | } 15 | 16 | @Override 17 | public ItemData.Builder toItem() { 18 | throw new UnsupportedOperationException(); 19 | } 20 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/BeaconPaymentAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | import lombok.Value; 4 | 5 | /** 6 | * BeaconPaymentStackRequestActionData is sent by the client when it submits an item to enable effects from a 7 | * beacon. These items will have been moved into the beacon item slot in advance. 8 | */ 9 | @Value 10 | public class BeaconPaymentAction implements ItemStackRequestAction { 11 | int primaryEffect; 12 | int secondaryEffect; 13 | 14 | @Override 15 | public ItemStackRequestActionType getType() { 16 | return ItemStackRequestActionType.BEACON_PAYMENT; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/ConsumeAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequestSlotData; 5 | 6 | /** 7 | * ConsumeStackRequestAction is sent by the client when it uses an item to craft another item. The original 8 | * item is 'consumed'. 9 | */ 10 | @Value 11 | public class ConsumeAction implements ItemStackRequestAction { 12 | int count; 13 | ItemStackRequestSlotData source; 14 | 15 | @Override 16 | public ItemStackRequestActionType getType() { 17 | return ItemStackRequestActionType.CONSUME; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/CraftCreativeAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | import lombok.Value; 4 | 5 | /** 6 | * CraftCreativeStackRequestActionData is sent by the client when it takes an item out of the creative inventory. 7 | * The item is thus not really crafted, but instantly created. 8 | */ 9 | @Value 10 | public class CraftCreativeAction implements ItemStackRequestAction { 11 | /** 12 | * creativeItemNetworkId is the network ID of the creative item that is being created. This is one of the 13 | * creative item network IDs sent in the CreativeContent packet. 14 | */ 15 | int creativeItemNetworkId; 16 | /** 17 | * @since v712 18 | */ 19 | int numberOfRequestedCrafts; 20 | 21 | @Override 22 | public ItemStackRequestActionType getType() { 23 | return ItemStackRequestActionType.CRAFT_CREATIVE; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/CraftGrindstoneAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class CraftGrindstoneAction implements ItemStackRequestAction { 7 | int recipeNetworkId; 8 | /** 9 | * @since v712 10 | */ 11 | int numberOfRequestedCrafts; 12 | int repairCost; 13 | 14 | @Override 15 | public ItemStackRequestActionType getType() { 16 | return ItemStackRequestActionType.CRAFT_REPAIR_AND_DISENCHANT; 17 | } 18 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/CraftLoomAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class CraftLoomAction implements ItemStackRequestAction { 7 | String patternId; 8 | /** 9 | * @since v712 10 | */ 11 | int timesCrafted; 12 | 13 | @Override 14 | public ItemStackRequestActionType getType() { 15 | return ItemStackRequestActionType.CRAFT_LOOM; 16 | } 17 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/CraftNonImplementedAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | import lombok.Value; 4 | 5 | /** 6 | * CraftNonImplementedStackRequestActionData is an action sent for inventory actions that aren't yet implemented 7 | * in the new system. These include, for example, anvils 8 | */ 9 | @Value 10 | public class CraftNonImplementedAction implements ItemStackRequestAction { 11 | 12 | @Override 13 | public ItemStackRequestActionType getType() { 14 | return ItemStackRequestActionType.CRAFT_NON_IMPLEMENTED_DEPRECATED; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/CraftRecipeAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | import lombok.Value; 4 | 5 | /** 6 | * CraftRecipeStackRequestActionData is sent by the client the moment it begins crafting an item. This is the 7 | * first action sent, before the Consume and Create item stack request actions. 8 | * This action is also sent when an item is enchanted. Enchanting should be treated mostly the same way as 9 | * crafting, where the old item is consumed. 10 | */ 11 | @Value 12 | public class CraftRecipeAction implements RecipeItemStackRequestAction { 13 | int recipeNetworkId; 14 | /** 15 | * @since v712 16 | */ 17 | int numberOfRequestedCrafts; 18 | 19 | @Override 20 | public ItemStackRequestActionType getType() { 21 | return ItemStackRequestActionType.CRAFT_RECIPE; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/CraftRecipeOptionalAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | import lombok.Value; 4 | 5 | /** 6 | * Called when renaming an item in an anvil or cartography table. Uses the filter strings present in the request. 7 | */ 8 | @Value 9 | public class CraftRecipeOptionalAction implements ItemStackRequestAction { 10 | /** 11 | * For the cartography table, if a certain MULTI recipe is being called, this points to the network ID that was assigned. 12 | */ 13 | int recipeNetworkId; 14 | /** 15 | * Most likely the index in the request's filter strings that this action is using 16 | */ 17 | int filteredStringIndex; 18 | 19 | @Override 20 | public ItemStackRequestActionType getType() { 21 | return ItemStackRequestActionType.CRAFT_RECIPE_OPTIONAL; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/CraftResultsDeprecatedAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; 5 | 6 | /** 7 | * CraftResultsDeprecatedStackRequestAction is an additional, deprecated packet sent by the client after 8 | * crafting. It holds the final results and the amount of times the recipe was crafted. It shouldn't be used. 9 | * This action is also sent when an item is enchanted. Enchanting should be treated mostly the same way as 10 | * crafting, where the old item is consumed. 11 | */ 12 | @Value 13 | public class CraftResultsDeprecatedAction implements ItemStackRequestAction { 14 | ItemData[] resultItems; 15 | int timesCrafted; 16 | 17 | @Override 18 | public ItemStackRequestActionType getType() { 19 | return ItemStackRequestActionType.CRAFT_RESULTS_DEPRECATED; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/CreateAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | import lombok.Value; 4 | 5 | /** 6 | * CreateStackRequestActionData is sent by the client when an item is created through being used as part of a 7 | * recipe. For example, when milk is used to craft a cake, the buckets are leftover. The buckets are moved to 8 | * the slot sent by the client here. 9 | * Note that before this is sent, an action for consuming all items in the crafting table/grid is sent. Items 10 | * that are not fully consumed when used for a recipe should not be destroyed there, but instead, should be 11 | * turned into their respective resulting items. 12 | */ 13 | @Value 14 | public class CreateAction implements ItemStackRequestAction { 15 | int slot; 16 | 17 | @Override 18 | public ItemStackRequestActionType getType() { 19 | return ItemStackRequestActionType.CREATE; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/DestroyAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequestSlotData; 5 | 6 | /** 7 | * DestroyStackRequestActionData is sent by the client when it destroys an item in creative mode by moving it 8 | * back into the creative inventory. 9 | */ 10 | @Value 11 | public class DestroyAction implements ItemStackRequestAction { 12 | int count; 13 | ItemStackRequestSlotData source; 14 | 15 | @Override 16 | public ItemStackRequestActionType getType() { 17 | return ItemStackRequestActionType.DESTROY; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/ItemStackRequestAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | public interface ItemStackRequestAction { 4 | 5 | ItemStackRequestActionType getType(); 6 | } 7 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/ItemStackRequestActionType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | public enum ItemStackRequestActionType { 4 | TAKE, 5 | PLACE, 6 | SWAP, 7 | DROP, 8 | DESTROY, 9 | CONSUME, 10 | CREATE, 11 | LAB_TABLE_COMBINE, 12 | BEACON_PAYMENT, 13 | MINE_BLOCK, 14 | CRAFT_RECIPE, 15 | CRAFT_RECIPE_AUTO, 16 | CRAFT_CREATIVE, 17 | CRAFT_RECIPE_OPTIONAL, 18 | CRAFT_REPAIR_AND_DISENCHANT, 19 | CRAFT_LOOM, 20 | CRAFT_NON_IMPLEMENTED_DEPRECATED, 21 | CRAFT_RESULTS_DEPRECATED, 22 | /** 23 | * @deprecated since 712 24 | */ 25 | PLACE_IN_ITEM_CONTAINER, 26 | /** 27 | * @deprecated since 712 28 | */ 29 | TAKE_FROM_ITEM_CONTAINER 30 | } 31 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/LabTableCombineAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | import lombok.Value; 4 | 5 | /** 6 | * LabTableCombineStackRequestActionData is sent by the client when it uses a lab table to combine item stacks. 7 | */ 8 | @Value 9 | public class LabTableCombineAction implements ItemStackRequestAction { 10 | 11 | @Override 12 | public ItemStackRequestActionType getType() { 13 | return ItemStackRequestActionType.LAB_TABLE_COMBINE; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/MineBlockAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | import lombok.Value; 4 | 5 | /** 6 | * MineBlockStackRequestActionData is sent by the client when it breaks a block. 7 | */ 8 | @Value 9 | public class MineBlockAction implements ItemStackRequestAction { 10 | int hotbarSlot; 11 | int predictedDurability; 12 | int stackNetworkId; 13 | 14 | @Override 15 | public ItemStackRequestActionType getType() { 16 | return ItemStackRequestActionType.MINE_BLOCK; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/PlaceAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequestSlotData; 5 | 6 | /** 7 | * PlaceStackRequestAction is sent by the client to the server to place x amount of items from one slot into 8 | * another slot, such as when shift clicking an item in the inventory to move it around or when moving an item 9 | * in the cursor into a slot. 10 | */ 11 | @Value 12 | public class PlaceAction implements TransferItemStackRequestAction { 13 | int count; 14 | ItemStackRequestSlotData source; 15 | ItemStackRequestSlotData destination; 16 | 17 | @Override 18 | public ItemStackRequestActionType getType() { 19 | return ItemStackRequestActionType.PLACE; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/RecipeItemStackRequestAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | /** 4 | * RecipeStackRequestActionData is the structure shared by StackRequestActions that contain the 5 | * network id of the recipe the client is about to craft 6 | */ 7 | public interface RecipeItemStackRequestAction extends ItemStackRequestAction { 8 | 9 | int getRecipeNetworkId(); 10 | 11 | int getNumberOfRequestedCrafts(); 12 | } 13 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/SwapAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequestSlotData; 5 | 6 | /** 7 | * SwapStackRequestActionData is sent by the client to swap the item in its cursor with an item present in another 8 | * container. The two item stacks swap places. 9 | */ 10 | @Value 11 | public class SwapAction implements ItemStackRequestAction { 12 | ItemStackRequestSlotData source; 13 | ItemStackRequestSlotData destination; 14 | 15 | @Override 16 | public ItemStackRequestActionType getType() { 17 | return ItemStackRequestActionType.SWAP; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/TakeAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequestSlotData; 5 | 6 | /** 7 | * TakeStackRequestActionData is sent by the client to the server to take x amount of items from one slot in a 8 | * container to the cursor. 9 | */ 10 | @Value 11 | public class TakeAction implements TransferItemStackRequestAction { 12 | int count; 13 | ItemStackRequestSlotData source; 14 | ItemStackRequestSlotData destination; 15 | 16 | @Override 17 | public ItemStackRequestActionType getType() { 18 | return ItemStackRequestActionType.TAKE; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/request/action/TransferItemStackRequestAction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.action; 2 | 3 | import org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.request.ItemStackRequestSlotData; 4 | 5 | /** 6 | * TransferStackRequestActionData is the structure shared by StackRequestActions that transfer items from one 7 | * slot into another 8 | */ 9 | public interface TransferItemStackRequestAction extends ItemStackRequestAction { 10 | 11 | int getCount(); 12 | 13 | ItemStackRequestSlotData getSource(); 14 | 15 | ItemStackRequestSlotData getDestination(); 16 | } 17 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/response/ItemStackResponseContainer.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.protocol.bedrock.data.inventory.ContainerSlotType; 5 | import org.cloudburstmc.protocol.bedrock.data.inventory.FullContainerName; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * ContainerEntry holds information on what slots in a container have what item stack in them. 11 | */ 12 | @Value 13 | public class ItemStackResponseContainer { 14 | /** 15 | * container that the slots that follow are in. 16 | * 17 | * @deprecated since v712 18 | */ 19 | ContainerSlotType container; 20 | 21 | /** 22 | * items holds information on what item stack should be present in specific slots in the container. 23 | */ 24 | List items; 25 | 26 | /** 27 | * @since v712 28 | */ 29 | FullContainerName containerName; 30 | } 31 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/response/ItemStackResponseSlot.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response; 2 | 3 | import lombok.*; 4 | 5 | /** 6 | * ItemEntry holds information on what item stack should be present in a specific slot. 7 | */ 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | public class ItemStackResponseSlot { 12 | private int slot; 13 | private int hotbarSlot; 14 | private int count; 15 | 16 | /** 17 | * stackNetworkID is the network ID of the new stack at a specific slot. 18 | */ 19 | private int stackNetworkId; 20 | 21 | /** 22 | * Holds the final custom name of a renamed item, if relevant. 23 | * 24 | * @since v422 25 | */ 26 | private @NonNull String customName; 27 | 28 | /** 29 | * @since v428 30 | */ 31 | private int durabilityCorrection; 32 | /** 33 | * @since v766 34 | */ 35 | private String filteredCustomName = ""; 36 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/itemstack/response/ItemStackResponseStatus.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.itemstack.response; 2 | 3 | /** 4 | * Represents the status of a {@link ItemStackResponse}. 5 | */ 6 | public enum ItemStackResponseStatus { 7 | /** 8 | * The transaction request was valid. 9 | */ 10 | OK, 11 | 12 | /** 13 | * The transaction request was invalid. 14 | */ 15 | ERROR 16 | } 17 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/transaction/InventoryActionData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.transaction; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Value; 5 | import org.cloudburstmc.protocol.bedrock.data.inventory.ItemData; 6 | 7 | @Value 8 | @AllArgsConstructor 9 | public class InventoryActionData { 10 | private final InventorySource source; 11 | private final int slot; 12 | private final ItemData fromItem; 13 | private final ItemData toItem; 14 | private final int stackNetworkId; 15 | 16 | public InventoryActionData(InventorySource source, int slot, ItemData fromItem, ItemData toItem) { 17 | this(source, slot, fromItem, toItem, 0); 18 | } 19 | 20 | public InventoryActionData reverse() { 21 | return new InventoryActionData(source, slot, toItem, fromItem, stackNetworkId); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/transaction/InventoryTransactionType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.transaction; 2 | 3 | public enum InventoryTransactionType { 4 | NORMAL, 5 | INVENTORY_MISMATCH, 6 | ITEM_USE, 7 | ITEM_USE_ON_ENTITY, 8 | ITEM_RELEASE 9 | } 10 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/inventory/transaction/LegacySetItemSlotData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.inventory.transaction; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class LegacySetItemSlotData { 7 | private final int containerId; 8 | private final byte[] slots; 9 | } 10 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/map/MapPixel.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.map; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class MapPixel { 7 | /** 8 | * Colour value of pixel 9 | */ 10 | int pixel; 11 | /** 12 | * Pixel index in map. 13 | */ 14 | int index; 15 | } 16 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/skin/AnimatedTextureType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.skin; 2 | 3 | public enum AnimatedTextureType { 4 | NONE, 5 | FACE, 6 | BODY_32X32, 7 | BODY_128X128; 8 | 9 | private static final AnimatedTextureType[] VALUES = values(); 10 | 11 | public static AnimatedTextureType from(int id) { 12 | return VALUES[id]; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/skin/AnimationData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.skin; 2 | 3 | import lombok.RequiredArgsConstructor; 4 | import lombok.Value; 5 | 6 | @Value 7 | @RequiredArgsConstructor 8 | public class AnimationData { 9 | private final ImageData image; 10 | private final AnimatedTextureType textureType; 11 | private final float frames; 12 | private final AnimationExpressionType expressionType; 13 | 14 | public AnimationData(ImageData image, AnimatedTextureType textureType, float frames) { 15 | this.image = image; 16 | this.textureType = textureType; 17 | this.frames = frames; 18 | this.expressionType = AnimationExpressionType.LINEAR; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/skin/AnimationExpressionType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.skin; 2 | 3 | public enum AnimationExpressionType { 4 | LINEAR, 5 | BLINKING; 6 | 7 | private static final AnimationExpressionType[] VALUES = values(); 8 | 9 | public static AnimationExpressionType from(int id) { 10 | return VALUES[id]; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/skin/PersonaPieceData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.skin; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class PersonaPieceData { 7 | private final String id; 8 | private final String type; 9 | private final String packId; 10 | private final boolean isDefault; 11 | private final String productId; 12 | } 13 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/skin/PersonaPieceTintData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.skin; 2 | 3 | import lombok.Value; 4 | 5 | import java.util.List; 6 | 7 | @Value 8 | public class PersonaPieceTintData { 9 | private final String type; 10 | private final List colors; 11 | } 12 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/structure/StructureAnimationMode.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.structure; 2 | 3 | public enum StructureAnimationMode { 4 | NONE, 5 | LAYER, 6 | BLOCKS; 7 | 8 | private static final StructureAnimationMode[] VALUES = StructureAnimationMode.values(); 9 | 10 | public static StructureAnimationMode from(int id) { 11 | return VALUES[id]; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/structure/StructureBlockType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.structure; 2 | 3 | public enum StructureBlockType { 4 | DATA, 5 | SAVE, 6 | LOAD, 7 | CORNER, 8 | INVALID, 9 | EXPORT; 10 | 11 | private static final StructureBlockType[] VALUES = StructureBlockType.values(); 12 | 13 | public static StructureBlockType from(int id) { 14 | return VALUES[id]; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/structure/StructureEditorData.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.structure; 2 | 3 | import lombok.Value; 4 | 5 | @Value 6 | public class StructureEditorData { 7 | private final String name; 8 | private final String filteredName; 9 | private final String dataField; 10 | private final boolean includingPlayers; 11 | private final boolean boundingBoxVisible; 12 | private final StructureBlockType type; 13 | private final StructureSettings settings; 14 | private final StructureRedstoneSaveMode redstoneSaveMode; 15 | } 16 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/structure/StructureMirror.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.structure; 2 | 3 | public enum StructureMirror { 4 | NONE, 5 | X, 6 | Z, 7 | XZ; 8 | 9 | private static final StructureMirror[] VALUES = StructureMirror.values(); 10 | 11 | public static StructureMirror from(int id) { 12 | return VALUES[id]; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/structure/StructureRedstoneSaveMode.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.structure; 2 | 3 | public enum StructureRedstoneSaveMode { 4 | SAVES_TO_MEMORY, 5 | SAVES_TO_DISK; 6 | 7 | private static final StructureRedstoneSaveMode[] VALUES = StructureRedstoneSaveMode.values(); 8 | 9 | public static StructureRedstoneSaveMode from(int id) { 10 | return VALUES[id]; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/structure/StructureRotation.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.structure; 2 | 3 | public enum StructureRotation { 4 | NONE, 5 | ROTATE_90, 6 | ROTATE_180, 7 | ROTATE_270; 8 | 9 | private static final StructureRotation[] VALUES = StructureRotation.values(); 10 | 11 | public static StructureRotation from(int id) { 12 | return VALUES[id]; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/structure/StructureSettings.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.structure; 2 | 3 | import lombok.Value; 4 | import org.cloudburstmc.math.vector.Vector3f; 5 | import org.cloudburstmc.math.vector.Vector3i; 6 | 7 | @Value 8 | public class StructureSettings { 9 | private final String paletteName; 10 | private final boolean ignoringEntities; 11 | private final boolean ignoringBlocks; 12 | private final boolean nonTickingPlayersAndTickingAreasEnabled; 13 | private final Vector3i size; 14 | private final Vector3i offset; 15 | private final long lastEditedByEntityId; 16 | private final StructureRotation rotation; 17 | private final StructureMirror mirror; 18 | private final StructureAnimationMode animationMode; 19 | private final float animationSeconds; 20 | private final float integrityValue; 21 | private final int integritySeed; 22 | private final Vector3f pivot; 23 | } 24 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/structure/StructureTemplateRequestOperation.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.structure; 2 | 3 | public enum StructureTemplateRequestOperation { 4 | NONE, 5 | EXPORT_FROM_SAVED_MODE, 6 | EXPORT_FROM_LOAD_MODE, 7 | QUERY_SAVED_STRUCTURE, 8 | /** 9 | * @since v560 10 | * @deprecated since v712 11 | */ 12 | IMPORT; 13 | 14 | private static final StructureTemplateRequestOperation[] VALUES = StructureTemplateRequestOperation.values(); 15 | 16 | public static StructureTemplateRequestOperation from(int id) { 17 | return VALUES[id]; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/structure/StructureTemplateResponseType.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.data.structure; 2 | 3 | public enum StructureTemplateResponseType { 4 | NONE, 5 | EXPORT, 6 | QUERY, 7 | /** 8 | * @since v560 9 | * @deprecated since v712 10 | */ 11 | IMPORT; 12 | 13 | private static final StructureTemplateResponseType[] VALUES = StructureTemplateResponseType.values(); 14 | 15 | public static StructureTemplateResponseType from(int id) { 16 | return VALUES[id]; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/AddBehaviorTreePacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class AddBehaviorTreePacket implements BedrockPacket { 12 | private String behaviorTreeJson; 13 | 14 | @Override 15 | public final PacketSignal handle(BedrockPacketHandler handler) { 16 | return handler.handle(this); 17 | } 18 | 19 | public BedrockPacketType getPacketType() { 20 | return BedrockPacketType.ADD_BEHAVIOR_TREE; 21 | } 22 | 23 | @Override 24 | public AddBehaviorTreePacket clone() { 25 | try { 26 | return (AddBehaviorTreePacket) super.clone(); 27 | } catch (CloneNotSupportedException e) { 28 | throw new AssertionError(e); 29 | } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/AddPaintingPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true, callSuper = true) 10 | @ToString(doNotUseGetters = true) 11 | public class AddPaintingPacket extends AddHangingEntityPacket { 12 | private String motive; 13 | 14 | @Override 15 | public final PacketSignal handle(BedrockPacketHandler handler) { 16 | return handler.handle(this); 17 | } 18 | 19 | public BedrockPacketType getPacketType() { 20 | return BedrockPacketType.ADD_PAINTING; 21 | } 22 | 23 | @Override 24 | public AddPaintingPacket clone() { 25 | return (AddPaintingPacket) super.clone(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/AgentAnimationPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class AgentAnimationPacket implements BedrockPacket { 12 | private byte animation; 13 | private long runtimeEntityId; 14 | 15 | @Override 16 | public final PacketSignal handle(BedrockPacketHandler handler) { 17 | return handler.handle(this); 18 | } 19 | 20 | public BedrockPacketType getPacketType() { 21 | return BedrockPacketType.AGENT_ANIMATION; 22 | } 23 | 24 | @Override 25 | public AgentAnimationPacket clone() { 26 | try { 27 | return (AgentAnimationPacket) super.clone(); 28 | } catch (CloneNotSupportedException e) { 29 | throw new AssertionError(e); 30 | } 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/AwardAchievementPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class AwardAchievementPacket implements BedrockPacket { 12 | private int achievementId; 13 | 14 | @Override 15 | public PacketSignal handle(BedrockPacketHandler handler) { 16 | return handler.handle(this); 17 | } 18 | 19 | @Override 20 | public BedrockPacketType getPacketType() { 21 | return BedrockPacketType.AWARD_ACHIEVEMENT; 22 | } 23 | 24 | @Override 25 | public AwardAchievementPacket clone() { 26 | try { 27 | return (AwardAchievementPacket) super.clone(); 28 | } catch (CloneNotSupportedException e) { 29 | throw new AssertionError(e); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/BedrockPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import org.cloudburstmc.protocol.common.MinecraftPacket; 4 | import org.cloudburstmc.protocol.common.PacketSignal; 5 | 6 | public interface BedrockPacket extends MinecraftPacket, Cloneable { 7 | 8 | PacketSignal handle(BedrockPacketHandler handler); 9 | 10 | BedrockPacketType getPacketType(); 11 | 12 | /** 13 | * Creates a new instance of this packet using Object.clone() 14 | * Will throw a {@link UnsupportedOperationException} if the packet implements {@link io.netty.util.ReferenceCounted} 15 | * @return a new instance of this packet 16 | */ 17 | BedrockPacket clone(); 18 | } -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/CameraPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class CameraPacket implements BedrockPacket { 12 | private long cameraUniqueEntityId; 13 | private long playerUniqueEntityId; 14 | 15 | @Override 16 | public final PacketSignal handle(BedrockPacketHandler handler) { 17 | return handler.handle(this); 18 | } 19 | 20 | public BedrockPacketType getPacketType() { 21 | return BedrockPacketType.CAMERA; 22 | } 23 | 24 | @Override 25 | public CameraPacket clone() { 26 | try { 27 | return (CameraPacket) super.clone(); 28 | } catch (CloneNotSupportedException e) { 29 | throw new AssertionError(e); 30 | } 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/ChunkRadiusUpdatedPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class ChunkRadiusUpdatedPacket implements BedrockPacket { 12 | private int radius; 13 | 14 | @Override 15 | public final PacketSignal handle(BedrockPacketHandler handler) { 16 | return handler.handle(this); 17 | } 18 | 19 | public BedrockPacketType getPacketType() { 20 | return BedrockPacketType.CHUNK_RADIUS_UPDATED; 21 | } 22 | 23 | @Override 24 | public ChunkRadiusUpdatedPacket clone() { 25 | try { 26 | return (ChunkRadiusUpdatedPacket) super.clone(); 27 | } catch (CloneNotSupportedException e) { 28 | throw new AssertionError(e); 29 | } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/ClientCacheStatusPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class ClientCacheStatusPacket implements BedrockPacket { 12 | private boolean supported; 13 | 14 | @Override 15 | public PacketSignal handle(BedrockPacketHandler handler) { 16 | return handler.handle(this); 17 | } 18 | 19 | public BedrockPacketType getPacketType() { 20 | return BedrockPacketType.CLIENT_CACHE_STATUS; 21 | } 22 | 23 | @Override 24 | public ClientCacheStatusPacket clone() { 25 | try { 26 | return (ClientCacheStatusPacket) super.clone(); 27 | } catch (CloneNotSupportedException e) { 28 | throw new AssertionError(e); 29 | } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/ClientToServerHandshakePacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class ClientToServerHandshakePacket implements BedrockPacket { 12 | 13 | @Override 14 | public final PacketSignal handle(BedrockPacketHandler handler) { 15 | return handler.handle(this); 16 | } 17 | 18 | public BedrockPacketType getPacketType() { 19 | return BedrockPacketType.CLIENT_TO_SERVER_HANDSHAKE; 20 | } 21 | 22 | @Override 23 | public ClientToServerHandshakePacket clone() { 24 | try { 25 | return (ClientToServerHandshakePacket) super.clone(); 26 | } catch (CloneNotSupportedException e) { 27 | throw new AssertionError(e); 28 | } 29 | } 30 | } 31 | 32 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/ClientboundCloseFormPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class ClientboundCloseFormPacket implements BedrockPacket { 12 | 13 | @Override 14 | public PacketSignal handle(BedrockPacketHandler handler) { 15 | return handler.handle(this); 16 | } 17 | 18 | @Override 19 | public BedrockPacketType getPacketType() { 20 | return BedrockPacketType.CLIENTBOUND_CLOSE_FORM; 21 | } 22 | 23 | @Override 24 | public ClientboundCloseFormPacket clone() { 25 | try { 26 | return (ClientboundCloseFormPacket) super.clone(); 27 | } catch (CloneNotSupportedException e) { 28 | throw new AssertionError(e); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/CodeBuilderPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class CodeBuilderPacket implements BedrockPacket { 12 | private String url; 13 | private boolean opening; 14 | 15 | @Override 16 | public PacketSignal handle(BedrockPacketHandler handler) { 17 | return handler.handle(this); 18 | } 19 | 20 | @Override 21 | public BedrockPacketType getPacketType() { 22 | return BedrockPacketType.CODE_BUILDER; 23 | } 24 | 25 | @Override 26 | public CodeBuilderPacket clone() { 27 | try { 28 | return (CodeBuilderPacket) super.clone(); 29 | } catch (CloneNotSupportedException e) { 30 | throw new AssertionError(e); 31 | } 32 | } 33 | } 34 | 35 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/DebugInfoPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class DebugInfoPacket implements BedrockPacket { 12 | private long uniqueEntityId; 13 | private String data; 14 | 15 | @Override 16 | public PacketSignal handle(BedrockPacketHandler handler) { 17 | return handler.handle(this); 18 | } 19 | 20 | @Override 21 | public BedrockPacketType getPacketType() { 22 | return BedrockPacketType.DEBUG_INFO; 23 | } 24 | 25 | @Override 26 | public DebugInfoPacket clone() { 27 | try { 28 | return (DebugInfoPacket) super.clone(); 29 | } catch (CloneNotSupportedException e) { 30 | throw new AssertionError(e); 31 | } 32 | } 33 | } 34 | 35 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/FilterTextPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class FilterTextPacket implements BedrockPacket { 12 | private String text; 13 | private boolean fromServer; 14 | 15 | @Override 16 | public PacketSignal handle(BedrockPacketHandler handler) { 17 | return handler.handle(this); 18 | } 19 | 20 | public BedrockPacketType getPacketType() { 21 | return BedrockPacketType.FILTER_TEXT; 22 | } 23 | 24 | @Override 25 | public FilterTextPacket clone() { 26 | try { 27 | return (FilterTextPacket) super.clone(); 28 | } catch (CloneNotSupportedException e) { 29 | throw new AssertionError(e); 30 | } 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/ModalFormRequestPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class ModalFormRequestPacket implements BedrockPacket { 12 | private int formId; 13 | private String formData; 14 | 15 | @Override 16 | public final PacketSignal handle(BedrockPacketHandler handler) { 17 | return handler.handle(this); 18 | } 19 | 20 | public BedrockPacketType getPacketType() { 21 | return BedrockPacketType.MODAL_FORM_REQUEST; 22 | } 23 | 24 | @Override 25 | public ModalFormRequestPacket clone() { 26 | try { 27 | return (ModalFormRequestPacket) super.clone(); 28 | } catch (CloneNotSupportedException e) { 29 | throw new AssertionError(e); 30 | } 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/OnScreenTextureAnimationPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class OnScreenTextureAnimationPacket implements BedrockPacket { 12 | private long effectId; 13 | 14 | @Override 15 | public PacketSignal handle(BedrockPacketHandler handler) { 16 | return handler.handle(this); 17 | } 18 | 19 | public BedrockPacketType getPacketType() { 20 | return BedrockPacketType.ON_SCREEN_TEXTURE_ANIMATION; 21 | } 22 | 23 | @Override 24 | public OnScreenTextureAnimationPacket clone() { 25 | try { 26 | return (OnScreenTextureAnimationPacket) super.clone(); 27 | } catch (CloneNotSupportedException e) { 28 | throw new AssertionError(e); 29 | } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/PhotoInfoRequestPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class PhotoInfoRequestPacket implements BedrockPacket { 12 | private long photoId; 13 | 14 | @Override 15 | public PacketSignal handle(BedrockPacketHandler handler) { 16 | return handler.handle(this); 17 | } 18 | 19 | @Override 20 | public BedrockPacketType getPacketType() { 21 | return BedrockPacketType.PHOTO_INFO_REQUEST; 22 | } 23 | 24 | @Override 25 | public PhotoInfoRequestPacket clone() { 26 | try { 27 | return (PhotoInfoRequestPacket) super.clone(); 28 | } catch (CloneNotSupportedException e) { 29 | throw new AssertionError(e); 30 | } 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/RefreshEntitlementsPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | import lombok.Data; 3 | import org.cloudburstmc.protocol.common.PacketSignal; 4 | 5 | @Data 6 | public class RefreshEntitlementsPacket implements BedrockPacket { 7 | 8 | @Override 9 | public PacketSignal handle(BedrockPacketHandler handler) { 10 | return handler.handle(this); 11 | } 12 | 13 | @Override 14 | public BedrockPacketType getPacketType() { 15 | return BedrockPacketType.REFRESH_ENTITLEMENTS; 16 | } 17 | 18 | @Override 19 | public RefreshEntitlementsPacket clone() { 20 | try { 21 | return (RefreshEntitlementsPacket) super.clone(); 22 | } catch (CloneNotSupportedException e) { 23 | throw new AssertionError(e); 24 | } 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/RemoveEntityPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class RemoveEntityPacket implements BedrockPacket { 12 | private long uniqueEntityId; 13 | 14 | @Override 15 | public final PacketSignal handle(BedrockPacketHandler handler) { 16 | return handler.handle(this); 17 | } 18 | 19 | public BedrockPacketType getPacketType() { 20 | return BedrockPacketType.REMOVE_ENTITY; 21 | } 22 | 23 | @Override 24 | public RemoveEntityPacket clone() { 25 | try { 26 | return (RemoveEntityPacket) super.clone(); 27 | } catch (CloneNotSupportedException e) { 28 | throw new AssertionError(e); 29 | } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/RemoveObjectivePacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class RemoveObjectivePacket implements BedrockPacket { 12 | private String objectiveId; 13 | 14 | @Override 15 | public final PacketSignal handle(BedrockPacketHandler handler) { 16 | return handler.handle(this); 17 | } 18 | 19 | public BedrockPacketType getPacketType() { 20 | return BedrockPacketType.REMOVE_OBJECTIVE; 21 | } 22 | 23 | @Override 24 | public RemoveObjectivePacket clone() { 25 | try { 26 | return (RemoveObjectivePacket) super.clone(); 27 | } catch (CloneNotSupportedException e) { 28 | throw new AssertionError(e); 29 | } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/ServerSettingsRequestPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class ServerSettingsRequestPacket implements BedrockPacket { 12 | 13 | @Override 14 | public final PacketSignal handle(BedrockPacketHandler handler) { 15 | return handler.handle(this); 16 | } 17 | 18 | public BedrockPacketType getPacketType() { 19 | return BedrockPacketType.SERVER_SETTINGS_REQUEST; 20 | } 21 | 22 | @Override 23 | public ServerSettingsRequestPacket clone() { 24 | try { 25 | return (ServerSettingsRequestPacket) super.clone(); 26 | } catch (CloneNotSupportedException e) { 27 | throw new AssertionError(e); 28 | } 29 | } 30 | } 31 | 32 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/SetCommandsEnabledPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class SetCommandsEnabledPacket implements BedrockPacket { 12 | private boolean commandsEnabled; 13 | 14 | @Override 15 | public final PacketSignal handle(BedrockPacketHandler handler) { 16 | return handler.handle(this); 17 | } 18 | 19 | public BedrockPacketType getPacketType() { 20 | return BedrockPacketType.SET_COMMANDS_ENABLED; 21 | } 22 | 23 | @Override 24 | public SetCommandsEnabledPacket clone() { 25 | try { 26 | return (SetCommandsEnabledPacket) super.clone(); 27 | } catch (CloneNotSupportedException e) { 28 | throw new AssertionError(e); 29 | } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/SetDefaultGameTypePacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class SetDefaultGameTypePacket implements BedrockPacket { 12 | private int gamemode; 13 | 14 | @Override 15 | public final PacketSignal handle(BedrockPacketHandler handler) { 16 | return handler.handle(this); 17 | } 18 | 19 | public BedrockPacketType getPacketType() { 20 | return BedrockPacketType.SET_DEFAULT_GAME_TYPE; 21 | } 22 | 23 | @Override 24 | public SetDefaultGameTypePacket clone() { 25 | try { 26 | return (SetDefaultGameTypePacket) super.clone(); 27 | } catch (CloneNotSupportedException e) { 28 | throw new AssertionError(e); 29 | } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/SetDifficultyPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class SetDifficultyPacket implements BedrockPacket { 12 | private int difficulty; 13 | 14 | @Override 15 | public final PacketSignal handle(BedrockPacketHandler handler) { 16 | return handler.handle(this); 17 | } 18 | 19 | public BedrockPacketType getPacketType() { 20 | return BedrockPacketType.SET_DIFFICULTY; 21 | } 22 | 23 | @Override 24 | public SetDifficultyPacket clone() { 25 | try { 26 | return (SetDifficultyPacket) super.clone(); 27 | } catch (CloneNotSupportedException e) { 28 | throw new AssertionError(e); 29 | } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/SetHealthPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class SetHealthPacket implements BedrockPacket { 12 | private int health; 13 | 14 | @Override 15 | public final PacketSignal handle(BedrockPacketHandler handler) { 16 | return handler.handle(this); 17 | } 18 | 19 | public BedrockPacketType getPacketType() { 20 | return BedrockPacketType.SET_HEALTH; 21 | } 22 | 23 | @Override 24 | public SetHealthPacket clone() { 25 | try { 26 | return (SetHealthPacket) super.clone(); 27 | } catch (CloneNotSupportedException e) { 28 | throw new AssertionError(e); 29 | } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/SetLastHurtByPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class SetLastHurtByPacket implements BedrockPacket { 12 | private int entityTypeId; 13 | 14 | @Override 15 | public final PacketSignal handle(BedrockPacketHandler handler) { 16 | return handler.handle(this); 17 | } 18 | 19 | public BedrockPacketType getPacketType() { 20 | return BedrockPacketType.SET_LAST_HURT_BY; 21 | } 22 | 23 | @Override 24 | public SetLastHurtByPacket clone() { 25 | try { 26 | return (SetLastHurtByPacket) super.clone(); 27 | } catch (CloneNotSupportedException e) { 28 | throw new AssertionError(e); 29 | } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/SetPlayerGameTypePacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class SetPlayerGameTypePacket implements BedrockPacket { 12 | private int gamemode; 13 | 14 | @Override 15 | public final PacketSignal handle(BedrockPacketHandler handler) { 16 | return handler.handle(this); 17 | } 18 | 19 | public BedrockPacketType getPacketType() { 20 | return BedrockPacketType.SET_PLAYER_GAME_TYPE; 21 | } 22 | 23 | @Override 24 | public SetPlayerGameTypePacket clone() { 25 | try { 26 | return (SetPlayerGameTypePacket) super.clone(); 27 | } catch (CloneNotSupportedException e) { 28 | throw new AssertionError(e); 29 | } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/SetTimePacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class SetTimePacket implements BedrockPacket { 12 | private int time; 13 | 14 | @Override 15 | public final PacketSignal handle(BedrockPacketHandler handler) { 16 | return handler.handle(this); 17 | } 18 | 19 | public BedrockPacketType getPacketType() { 20 | return BedrockPacketType.SET_TIME; 21 | } 22 | 23 | @Override 24 | public SetTimePacket clone() { 25 | try { 26 | return (SetTimePacket) super.clone(); 27 | } catch (CloneNotSupportedException e) { 28 | throw new AssertionError(e); 29 | } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/ShowProfilePacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class ShowProfilePacket implements BedrockPacket { 12 | private String xuid; 13 | 14 | @Override 15 | public final PacketSignal handle(BedrockPacketHandler handler) { 16 | return handler.handle(this); 17 | } 18 | 19 | public BedrockPacketType getPacketType() { 20 | return BedrockPacketType.SHOW_PROFILE; 21 | } 22 | 23 | @Override 24 | public ShowProfilePacket clone() { 25 | try { 26 | return (ShowProfilePacket) super.clone(); 27 | } catch (CloneNotSupportedException e) { 28 | throw new AssertionError(e); 29 | } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/SimulationTypePacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import org.cloudburstmc.protocol.bedrock.data.SimulationType; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true, callSuper = false) 10 | public class SimulationTypePacket implements BedrockPacket { 11 | 12 | private SimulationType type; 13 | 14 | @Override 15 | public PacketSignal handle(BedrockPacketHandler handler) { 16 | return handler.handle(this); 17 | } 18 | 19 | @Override 20 | public BedrockPacketType getPacketType() { 21 | return BedrockPacketType.SIMULATION_TYPE; 22 | } 23 | 24 | @Override 25 | public SimulationTypePacket clone() { 26 | try { 27 | return (SimulationTypePacket) super.clone(); 28 | } catch (CloneNotSupportedException e) { 29 | throw new AssertionError(e); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/SyncEntityPropertyPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import org.cloudburstmc.nbt.NbtMap; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true, callSuper = false) 10 | public class SyncEntityPropertyPacket implements BedrockPacket { 11 | private NbtMap data; 12 | 13 | @Override 14 | public PacketSignal handle(BedrockPacketHandler handler) { 15 | return handler.handle(this); 16 | } 17 | 18 | @Override 19 | public BedrockPacketType getPacketType() { 20 | return BedrockPacketType.SYNC_ENTITY_PROPERTY; 21 | } 22 | 23 | @Override 24 | public SyncEntityPropertyPacket clone() { 25 | try { 26 | return (SyncEntityPropertyPacket) super.clone(); 27 | } catch (CloneNotSupportedException e) { 28 | throw new AssertionError(e); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/ToastRequestPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.packet; 2 | 3 | import lombok.Data; 4 | import lombok.EqualsAndHashCode; 5 | import lombok.ToString; 6 | import org.cloudburstmc.protocol.common.PacketSignal; 7 | 8 | @Data 9 | @EqualsAndHashCode(doNotUseGetters = true) 10 | @ToString(doNotUseGetters = true) 11 | public class ToastRequestPacket implements BedrockPacket { 12 | 13 | private String title; 14 | private String content; 15 | 16 | @Override 17 | public PacketSignal handle(BedrockPacketHandler handler) { 18 | return handler.handle(this); 19 | } 20 | 21 | @Override 22 | public BedrockPacketType getPacketType() { 23 | return BedrockPacketType.TOAST_REQUEST; 24 | } 25 | 26 | @Override 27 | public ToastRequestPacket clone() { 28 | try { 29 | return (ToastRequestPacket) super.clone(); 30 | } catch (CloneNotSupportedException e) { 31 | throw new AssertionError(e); 32 | } 33 | } 34 | } 35 | 36 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/transformer/BooleanTransformer.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.transformer; 2 | 3 | import lombok.AccessLevel; 4 | import lombok.NoArgsConstructor; 5 | import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper; 6 | import org.cloudburstmc.protocol.bedrock.data.entity.EntityDataMap; 7 | 8 | @NoArgsConstructor(access = AccessLevel.PRIVATE) 9 | public final class BooleanTransformer implements EntityDataTransformer { 10 | 11 | public static final BooleanTransformer INSTANCE = new BooleanTransformer(); 12 | 13 | @Override 14 | public Byte serialize(BedrockCodecHelper helper, EntityDataMap map, Boolean value) { 15 | return (byte) (value == Boolean.TRUE ? 1 : 0); 16 | } 17 | 18 | @Override 19 | public Boolean deserialize(BedrockCodecHelper helper, EntityDataMap map, Byte value) { 20 | return value == 1 ? Boolean.TRUE : Boolean.FALSE; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/transformer/TypeMapTransformer.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.transformer; 2 | 3 | import lombok.RequiredArgsConstructor; 4 | import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper; 5 | import org.cloudburstmc.protocol.bedrock.data.entity.EntityDataMap; 6 | import org.cloudburstmc.protocol.common.util.TypeMap; 7 | 8 | @RequiredArgsConstructor 9 | public final class TypeMapTransformer implements EntityDataTransformer { 10 | private final TypeMap typeMap; 11 | 12 | @Override 13 | public Integer serialize(BedrockCodecHelper helper, EntityDataMap map, T value) { 14 | return typeMap.getId(value); 15 | } 16 | 17 | @Override 18 | public T deserialize(BedrockCodecHelper helper, EntityDataMap map, Integer value) { 19 | return typeMap.getType(value); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /bedrock-connection/build.gradle.kts: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api(projects.bedrockCodec) 3 | api(libs.netty.transport.raknet) 4 | api(libs.snappy) 5 | } 6 | 7 | tasks.jar { 8 | manifest { 9 | attributes("Automatic-Module-Name" to "org.cloudburstmc.protocol.bedrock.connection") 10 | } 11 | } -------------------------------------------------------------------------------- /bedrock-connection/src/main/java/org/cloudburstmc/protocol/bedrock/BedrockClientSession.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock; 2 | 3 | public class BedrockClientSession extends BedrockSession { 4 | 5 | public BedrockClientSession(BedrockPeer peer, int subClientId) { 6 | super(peer, subClientId); 7 | } 8 | 9 | @Override 10 | public void disconnect(String reason, boolean hideReason) { 11 | this.close(reason); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-connection/src/main/java/org/cloudburstmc/protocol/bedrock/BedrockServerSession.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock; 2 | 3 | import org.checkerframework.checker.nullness.qual.Nullable; 4 | import org.cloudburstmc.protocol.bedrock.packet.DisconnectPacket; 5 | 6 | public class BedrockServerSession extends BedrockSession { 7 | 8 | public BedrockServerSession(BedrockPeer peer, int subClientId) { 9 | super(peer, subClientId); 10 | } 11 | 12 | public void disconnect(@Nullable String reason, boolean hideReason) { 13 | this.checkForClosed(); 14 | 15 | DisconnectPacket packet = new DisconnectPacket(); 16 | if (reason == null || hideReason) { 17 | packet.setMessageSkipped(true); 18 | reason = BedrockDisconnectReasons.DISCONNECTED; 19 | } 20 | packet.setKickMessage(reason); 21 | this.sendPacketImmediately(packet); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /bedrock-connection/src/main/java/org/cloudburstmc/protocol/bedrock/BedrockSessionFactory.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock; 2 | 3 | @FunctionalInterface 4 | public interface BedrockSessionFactory { 5 | 6 | BedrockSession createSession(BedrockPeer peer, int subClientId); 7 | } 8 | -------------------------------------------------------------------------------- /bedrock-connection/src/main/java/org/cloudburstmc/protocol/bedrock/PacketDirection.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock; 2 | 3 | import io.netty.util.AttributeKey; 4 | import lombok.Getter; 5 | import org.cloudburstmc.protocol.bedrock.data.PacketRecipient; 6 | 7 | @Getter 8 | public enum PacketDirection { 9 | /** 10 | * All packets sent by this channel are going to client. 11 | */ 12 | CLIENT_BOUND(PacketRecipient.SERVER, PacketRecipient.CLIENT), 13 | /** 14 | * All packets sent by this channel are going to server. 15 | */ 16 | SERVER_BOUND(PacketRecipient.CLIENT, PacketRecipient.SERVER); 17 | 18 | public static final AttributeKey ATTRIBUTE = AttributeKey.valueOf("packet_direction"); 19 | 20 | private final PacketRecipient inbound; 21 | private final PacketRecipient outbound; 22 | 23 | PacketDirection(PacketRecipient inbound, PacketRecipient outbound) { 24 | this.inbound = inbound; 25 | this.outbound = outbound; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /bedrock-connection/src/main/java/org/cloudburstmc/protocol/bedrock/netty/codec/compression/BatchCompression.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.netty.codec.compression; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import io.netty.channel.ChannelHandlerContext; 5 | import org.cloudburstmc.protocol.bedrock.data.CompressionAlgorithm; 6 | 7 | public interface BatchCompression { 8 | 9 | ByteBuf encode(ChannelHandlerContext ctx, ByteBuf msg) throws Exception; 10 | ByteBuf decode(ChannelHandlerContext ctx, ByteBuf msg) throws Exception; 11 | 12 | CompressionAlgorithm getAlgorithm(); 13 | 14 | void setLevel(int level); 15 | 16 | int getLevel(); 17 | } 18 | -------------------------------------------------------------------------------- /bedrock-connection/src/main/java/org/cloudburstmc/protocol/bedrock/netty/codec/compression/CompressionStrategy.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.netty.codec.compression; 2 | 3 | import org.cloudburstmc.protocol.bedrock.data.CompressionAlgorithm; 4 | import org.cloudburstmc.protocol.bedrock.netty.BedrockBatchWrapper; 5 | 6 | public interface CompressionStrategy { 7 | 8 | BatchCompression getCompression(BedrockBatchWrapper wrapper); 9 | 10 | BatchCompression getCompression(CompressionAlgorithm algorithm); 11 | 12 | BatchCompression getDefaultCompression(); 13 | } 14 | -------------------------------------------------------------------------------- /bedrock-connection/src/main/java/org/cloudburstmc/protocol/bedrock/netty/codec/packet/BedrockPacketCodec_v1.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.netty.codec.packet; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import org.cloudburstmc.protocol.bedrock.netty.BedrockPacketWrapper; 5 | 6 | public class BedrockPacketCodec_v1 extends BedrockPacketCodec { 7 | 8 | @Override 9 | public void encodeHeader(ByteBuf buf, BedrockPacketWrapper msg) { 10 | buf.writeByte(msg.getPacketId()); 11 | } 12 | 13 | @Override 14 | public void decodeHeader(ByteBuf buf, BedrockPacketWrapper msg) { 15 | msg.setPacketId(buf.readUnsignedByte()); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /bedrock-connection/src/main/java/org/cloudburstmc/protocol/bedrock/netty/codec/packet/BedrockPacketCodec_v2.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.netty.codec.packet; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import org.cloudburstmc.protocol.bedrock.netty.BedrockPacketWrapper; 5 | 6 | public class BedrockPacketCodec_v2 extends BedrockPacketCodec { 7 | 8 | @Override 9 | public void encodeHeader(ByteBuf buf, BedrockPacketWrapper msg) { 10 | buf.writeByte(msg.getPacketId()); 11 | buf.writeByte(msg.getSenderSubClientId()); 12 | buf.writeByte(msg.getTargetSubClientId()); 13 | } 14 | 15 | @Override 16 | public void decodeHeader(ByteBuf buf, BedrockPacketWrapper msg) { 17 | msg.setPacketId(buf.readUnsignedByte()); 18 | msg.setSenderSubClientId(buf.readUnsignedByte()); 19 | msg.setTargetSubClientId(buf.readUnsignedByte()); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /bedrock-connection/src/main/java/org/cloudburstmc/protocol/bedrock/netty/initializer/BedrockClientInitializer.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.netty.initializer; 2 | 3 | import io.netty.channel.Channel; 4 | import org.cloudburstmc.protocol.bedrock.BedrockClientSession; 5 | import org.cloudburstmc.protocol.bedrock.BedrockPeer; 6 | import org.cloudburstmc.protocol.bedrock.PacketDirection; 7 | 8 | public abstract class BedrockClientInitializer extends BedrockChannelInitializer { 9 | 10 | @Override 11 | protected void preInitChannel(Channel channel) throws Exception { 12 | channel.attr(PacketDirection.ATTRIBUTE).set(PacketDirection.SERVER_BOUND); 13 | super.preInitChannel(channel); 14 | } 15 | 16 | @Override 17 | public BedrockClientSession createSession0(BedrockPeer peer, int subClientId) { 18 | return new BedrockClientSession(peer, subClientId); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /bedrock-connection/src/main/java/org/cloudburstmc/protocol/bedrock/netty/initializer/BedrockServerInitializer.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.netty.initializer; 2 | 3 | import io.netty.channel.Channel; 4 | import org.cloudburstmc.protocol.bedrock.BedrockPeer; 5 | import org.cloudburstmc.protocol.bedrock.BedrockServerSession; 6 | import org.cloudburstmc.protocol.bedrock.PacketDirection; 7 | 8 | public abstract class BedrockServerInitializer extends BedrockChannelInitializer { 9 | 10 | @Override 11 | protected void preInitChannel(Channel channel) throws Exception { 12 | channel.attr(PacketDirection.ATTRIBUTE).set(PacketDirection.CLIENT_BOUND); 13 | super.preInitChannel(channel); 14 | } 15 | 16 | @Override 17 | public BedrockServerSession createSession0(BedrockPeer peer, int subClientId) { 18 | return new BedrockServerSession(peer, subClientId); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /bedrock-connection/src/main/java/org/cloudburstmc/protocol/bedrock/util/JsonUtils.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.util; 2 | 3 | import java.util.Map; 4 | 5 | public class JsonUtils { 6 | @SuppressWarnings("unchecked") 7 | public static T childAsType(Map data, String key, Class asType) { 8 | Object value = data.get(key); 9 | if (!(asType.isInstance(value))) { 10 | throw new IllegalStateException(key + " node is missing"); 11 | } 12 | return (T) value; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /bedrock-connection/src/main/java/org/cloudburstmc/protocol/bedrock/util/PacketFlag.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.bedrock.util; 2 | 3 | public interface PacketFlag { 4 | 5 | /** 6 | * Whether this flag can be passed from packet wrapper to batch wrapper. 7 | * @return true if the flag can be passed 8 | */ 9 | default boolean canInherit() { 10 | return true; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /common/build.gradle.kts: -------------------------------------------------------------------------------- 1 | dependencies { 2 | api(libs.netty.buffer) 3 | api(platform(libs.fastutil.bom)) 4 | api(libs.fastutil.int.`object`.maps) 5 | api(libs.fastutil.`object`.int.maps) 6 | api(libs.math) 7 | api(libs.natives) 8 | } 9 | 10 | tasks.jar { 11 | manifest { 12 | attributes("Automatic-Module-Name" to "org.cloudburstmc.protocol.common") 13 | } 14 | } -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/Definition.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common; 2 | 3 | /** 4 | * A mapping for a protocol feature that uses runtime IDs to transmit data more efficiently. 5 | */ 6 | public interface Definition { 7 | 8 | /** 9 | * The runtime ID of this definition to be sent over the network. 10 | * 11 | * @return runtime id 12 | */ 13 | int getRuntimeId(); 14 | } 15 | -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/DefinitionRegistry.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common; 2 | 3 | /** 4 | * A basic registry for protocol definitions that can be expanded upon. 5 | * 6 | * @param 7 | */ 8 | public interface DefinitionRegistry { 9 | 10 | D getDefinition(int runtimeId); 11 | 12 | boolean isRegistered(D definition); 13 | } 14 | -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/MinecraftInterface.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common; 2 | 3 | import java.net.InetSocketAddress; 4 | import java.util.concurrent.Future; 5 | 6 | public interface MinecraftInterface { 7 | 8 | Future bind(InetSocketAddress address); 9 | 10 | void close(); 11 | 12 | InetSocketAddress getBindAddress(); 13 | } 14 | -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/MinecraftPacket.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common; 2 | 3 | public interface MinecraftPacket { 4 | } 5 | -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/MinecraftServerSession.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common; 2 | 3 | import org.checkerframework.checker.nullness.qual.Nullable; 4 | 5 | public interface MinecraftServerSession extends MinecraftSession { 6 | 7 | void disconnect(@Nullable String reason); 8 | } 9 | -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/MinecraftSession.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common; 2 | 3 | import org.checkerframework.checker.nullness.qual.NonNull; 4 | 5 | import java.net.InetSocketAddress; 6 | 7 | public interface MinecraftSession { 8 | 9 | boolean isClosed(); 10 | 11 | void disconnect(); 12 | 13 | InetSocketAddress getAddress(); 14 | 15 | default InetSocketAddress getRealAddress() { 16 | return getAddress(); 17 | } 18 | 19 | void sendPacket(@NonNull T packet); 20 | 21 | void sendPacketImmediately(@NonNull T packet); 22 | 23 | long getLatency(); 24 | } 25 | -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/NamedDefinition.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common; 2 | 3 | public interface NamedDefinition extends Definition { 4 | /** 5 | * The identifier of this definition. 6 | * 7 | * @return identifier 8 | */ 9 | String getIdentifier(); 10 | } 11 | -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/PacketHandler.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common; 2 | 3 | public interface PacketHandler { 4 | } 5 | -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/PacketSignal.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common; 2 | 3 | @SuppressWarnings("InstantiationOfUtilityClass") 4 | public class PacketSignal { 5 | 6 | public static final PacketSignal HANDLED = new PacketSignal(); 7 | public static final PacketSignal UNHANDLED = new PacketSignal(); 8 | 9 | public PacketSignal() { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/PlayerSession.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common; 2 | 3 | import org.checkerframework.checker.nullness.qual.NonNull; 4 | 5 | public interface PlayerSession { 6 | 7 | boolean isClosed(); 8 | 9 | void close(); 10 | 11 | void onDisconnect(@NonNull String reason); 12 | } 13 | -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/serializer/PacketHelper.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common.serializer; 2 | 3 | public interface PacketHelper { 4 | } 5 | -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/serializer/PacketSerializer.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common.serializer; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | 5 | public interface PacketSerializer { 6 | 7 | void serialize(ByteBuf buffer, H helper, P packet); 8 | 9 | void deserialize(ByteBuf buffer, H helper, P packet); 10 | } 11 | -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/util/DefinitionUtils.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common.util; 2 | 3 | import org.cloudburstmc.protocol.common.Definition; 4 | import org.cloudburstmc.protocol.common.DefinitionRegistry; 5 | 6 | public class DefinitionUtils { 7 | 8 | /** 9 | * Precondition to ensure a definition being sent is known to the registry. 10 | * 11 | * @param registry registry to check 12 | * @param definition definition to check 13 | * @param definition type 14 | * @return definition 15 | * @throws IllegalArgumentException if the definition is not registered 16 | */ 17 | public static D checkDefinition(DefinitionRegistry registry, D definition) { 18 | if (!registry.isRegistered(definition)) { 19 | throw new IllegalArgumentException("Definition is not registered: " + definition); 20 | } 21 | return definition; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/util/LongKeys.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common.util; 2 | 3 | import lombok.experimental.UtilityClass; 4 | 5 | @UtilityClass 6 | public class LongKeys { 7 | 8 | public static int high(long key) { 9 | return (int) (key >> 32); 10 | } 11 | 12 | public static int low(long key) { 13 | return (int) key; 14 | } 15 | 16 | public static long key(int high, int low) { 17 | return ((long) high << 32) | (low & 0xFFFFFFFFL); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/util/QuadConsumer.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common.util; 2 | 3 | @FunctionalInterface 4 | public interface QuadConsumer { 5 | 6 | void accept(T t, U u, V v, R r); 7 | } 8 | -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/util/TriFunction.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common.util; 2 | 3 | @FunctionalInterface 4 | public interface TriFunction { 5 | 6 | R apply(T t, U u, V v); 7 | } 8 | -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/util/index/Indexable.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common.util.index; 2 | 3 | public interface Indexable { 4 | 5 | T get(); 6 | } 7 | -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/util/index/Indexed.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common.util.index; 2 | 3 | import org.cloudburstmc.protocol.common.util.SequencedHashSet; 4 | 5 | import java.util.List; 6 | 7 | public final class Indexed implements Indexable { 8 | 9 | private final List values; 10 | private final int index; 11 | 12 | public Indexed(List values, int index) { 13 | this.values = values; 14 | this.index = index; 15 | } 16 | 17 | @Override 18 | public T get() { 19 | return values.get(index); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/util/index/Unindexed.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common.util.index; 2 | 3 | import java.util.Objects; 4 | 5 | public class Unindexed implements Indexable { 6 | 7 | private final T value; 8 | 9 | public Unindexed(T value) { 10 | this.value = Objects.requireNonNull(value, "value cannot be null"); 11 | } 12 | 13 | @Override 14 | public T get() { 15 | return value; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /common/src/main/java/org/cloudburstmc/protocol/common/util/index/UnindexedList.java: -------------------------------------------------------------------------------- 1 | package org.cloudburstmc.protocol.common.util.index; 2 | 3 | import java.util.List; 4 | 5 | public class UnindexedList implements Indexable> { 6 | private final List values; 7 | 8 | public UnindexedList(List values) { 9 | this.values = values; 10 | } 11 | 12 | @Override 13 | public List get() { 14 | return values; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | version=3.0.0.Beta7-SNAPSHOT 2 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CloudburstMC/Protocol/656d49c323753d66d2ffa790f16ba4dc3e57afed/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | @file:Suppress("UnstableApiUsage") 2 | 3 | pluginManagement { 4 | repositories { 5 | mavenCentral() 6 | gradlePluginPortal() 7 | } 8 | } 9 | dependencyResolutionManagement { 10 | repositories { 11 | mavenLocal() 12 | mavenCentral() 13 | maven("https://repo.opencollab.dev/maven-releases") 14 | maven("https://repo.opencollab.dev/maven-snapshots") 15 | } 16 | } 17 | 18 | plugins { 19 | id("org.gradle.toolchains.foojay-resolver-convention") version ("0.8.0") 20 | } 21 | 22 | enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") 23 | 24 | rootProject.name = "protocol" 25 | 26 | include("bedrock-codec", "bedrock-connection", "common") --------------------------------------------------------------------------------