An implementation of the Minecraft: Bedrock Edition protocol in PHP
LGPL-3.0 License
Bot releases are hidden (Show)
Published by dktapps almost 3 years ago
PlayerAuthInputPacket
.ActorEvent
constants.LevelSoundEvent
constants.EntityMetadataFlags
constants.Published by dktapps almost 3 years ago
EntityMetadataProperty::id()
(use EntityMetadataProperty->getTypeId()
or WhateverClassMetadataProperty::ID
instead).GameRule->getType()
has been renamed to GameRule->getTypeId()
.ItemStackRequestAction::getTypeId()
is no longer static.GameRule
subclass now declares an ID
constant.TransactionData
subclass now declares an ID
constant.ItemStackRequestAction
subclass now declares an ID
constant.EntityMetadataProperty
subclass now declares an ID
constant.Published by dktapps almost 3 years ago
responseType
field to StructureTemplateDataResponsePacket
.StructureTemplateDataRequestPacket
.StructureSettings
: animationMode
, animationSeconds
.StructureSettings
(incorrectly used big-endian instead of little-endian).#include
directives have been removed.tools/generate-create-static-methods.php
, used to generate ::create()
methods in packet classes.Published by dktapps almost 3 years ago
PlayerAuthInputPacket
.Published by dktapps almost 3 years ago
DisconnectPacket
not showing disconnection screen messages.Published by dktapps almost 3 years ago
PlayerAuthInputPacket
.Published by dktapps almost 3 years ago
ClientboundMapItemDataPacket::BITFLAG_MAP_CREATION
.::create()
static method. This should be preferred over the old way of new WhateverPacket
and then assigning fields, since it ensures you can't accidentally forget to assign a field.UnknownPacket
is removed. Unknown packets are now signified by null
returned from PacketBatch->getPackets()
.x
/y
/z
block position fields with BlockPosition
structure.CacheableNbt
is now used everywhere CompoundTag
s were used (except ItemStack
, because those use a different encoding ...)ActorEventPacket
action constants have been moved to types\ActorEvent
.LevelEventPacket::EVENT_*
constants have been moved to types\LevelEvent
.LevelSoundEventPacket::SOUND_*
constants have been moved to types\LevelSoundEvent
.PlayerActionPacket::ACTION_*
constants have been moved to types\PlayerAction
.actorUniqueId
fields in AddActorPacket
, AddPlayerPacket
, AddItemActorPacket
and AddPaintingPacket
are now mandatory and non-nullable.actor
is now consistently used instead of entity
. This affects the following things:
PacketSerializer->getEntityUniqueId()
PacketSerializer->getEntityRuntimeId()
PacketSerializer->putEntityUniqueId()
PacketSerializer->putEntityRuntimeId()
PacketSerializer->putByteRotation()
has been renamed to putRotationByte()
.PacketSerializer->getByteRotation()
has been renamed to getRotationByte()
.DisconnectPacket
now uses a nullable message
field. null
value indicates that the disconnection screen should not be shown.LevelChunkPacket::withoutCache()
and LevelChunkPacket::withCache()
have been removed. LevelChunkPacket
now has a standard ::create()
.LevelChunkPacket->cacheEnabled
has been removed. This is now represented by usedBlobHashes
being null instead.LevelSettings
has been extracted from StartGamePacket
.LevelSoundEventPacket::create()
now has a standardised signature. Unfortunately, this means it requires all fields to be specified, which may not be ideal for some use cases. So...LevelSoundEventPacket::nonActorSound()
static method has been added.LevelSoundEvent->position
is no longer nullable.AddPlayerPacket->headYaw
is no longer nullable, but is still optional (defaults to 0).actor
is now consistently used instead of entity
. This affects the following things:
entityUniqueId
and/or entityRuntimeId
fields in AddActorPacket
, AddPlayerPacket
, AddPaintingPacket
, AddItemActorPacket
, AdventureSettingsPacket
, AnimatePacket
, ContainerOpenPacket
, CreatePhotoPacket
, DebugInfoPacket
, EmotePacket
, MobArmorEquipmentPacket
, MobEffectPacket
, MobEquipmentPacket
, MotionPredictionHintsPacket
, MoveActorAbsolutePacket
, MoveActorDeltaPacket
, MovePlayerPacket
, NpcRequestPacket
, PlayerActionPacket
, PlayerListEntry
, RemoveActorPacket
, RespawnPacket
, SetActorDataPacket
, SetActorMotionPacket
, SetLocalPlayerAsInitializedPacket
, ScorePacketEntry
, ScoreboardIdentityPacketEntry
, SpawnParticleEffectPacket
, StartGamePacket
, UpdateAttributesPacket
, UpdateBlockSyncedPacket
, UpdateEquipPacket
, MapTrackedObject
, UseItemOnEntityTransactionData
bossEid
and playerEid
fields in BossEventPacket
(now bossActorUniqueId
and playerActorUniqueId
respectively)minecartEid
field in CommandBlockUpdatePacket
(now minecartActorRuntimeId
)playerEntityRuntimeId
field in EmoteListPacket
playerEntityUniqueId
field in UpdatePlayerGameTypePacket
ridingEid
field in MovePlayerPacket
(now ridingActorRuntimeId
)ownerEntityUniqueId
field in PhotoTransferPacket
playerEid
field in ShowCreditsPacket
(now playerActorRuntimeId
)target
field in TakeItemActorPacket
(now itemActorRuntimeId
)eid
field in TakeItemActorPacket
(now takerActorRuntimeId
)traderEid
field in UpdateTradePacket
(now traderActorUniqueId
)playerEid
field in UpdateTradePacket
(now playerActorUniqueId
)fromEntityUniqueId
and toEntityUniqueId
fields in EntityLink
(yes, some things weren't noticed until release was tagged)playerEntityUniqueId
field in CommandOriginData
syncedUpdateEntityUniqueId
field in UpdateSubChunkBlocksPacketEntry
position
is now consistently used instead of pos
for naming.ClientboundMapItemDataPacket
eids
-> parentMapIds
.UpdateTradePacket
isWilling
->isEconomyTrade
.ActorEventPacket
event
-> eventId
data
-> eventData
AdventureSettingsPacket
entityUniqueId
-> targetActorUniqueId
BiomeDefinitionListPacket
defs
-> definitions
BlockActorDataPacket
namedtag
-> nbt
CameraPacket
playerUniqueId
-> playerActorUniqueId
cameraUniqueId
-> cameraActorUniqueId
ContainerOpenPacket
type
-> windowType
CraftingDataPacket
entries
-> recipesWithTypeIds
CraftingEventPacket
type
-> windowType
id
-> recipeUUID
InteractPacket
target
-> targetActorRuntimeId
LabTablePacket
type
-> actionType
LevelEventPacket
evid
-> eventId
data
-> eventData
NpcRequestPacket
actionType
-> actionIndex
ResourcePackChunkDataPacket
progress
-> offset
StructureTemplateDataRequestPacket
structureTemplateResponseType
-> requestType
(no, this is not a typo)StructureTemplateDataResponsePacket
namedtag
-> nbt
SyncActorPropertyPacket
data
-> nbt
UpdateEquipPacket
namedtag
-> nbt
Published by dktapps almost 3 years ago
Published by dktapps almost 3 years ago
MineBlockStackRequestAction
has been renamed to hotbarSlot
.