Documentation
¶
Index ¶
- Constants
- func ClientReadPacket(reader io.Reader, handler IClientPacketHandler) (err error)
- func ClientReadPacketExpect(reader io.Reader, handler IClientPacketHandler, expectedIds []byte) (err error)
- func ClientWriteLogin(writer io.Writer, username, password string) (err error)
- func ClientWritePlayerPositionLook(writer io.Writer, position *AbsXyz, stance AbsCoord, look *LookDegrees, ...) (err error)
- func ServerReadPacket(reader io.Reader, handler IServerPacketHandler) (err error)
- func ServerReadPacketExpect(reader io.Reader, handler IServerPacketHandler, expectedIds []byte) (err error)
- func ServerWriteHandshake(writer io.Writer, reply string) (err error)
- func ServerWriteLogin(writer io.Writer, entityId EntityId, mapSeed RandomSeed, serverMode int32, ...) (err error)
- func ServerWritePlayerPositionLook(writer io.Writer, position *AbsXyz, stance AbsCoord, look *LookDegrees, ...) (err error)
- func ServerWriteTimeUpdate(writer io.Writer, time Ticks) error
- func WriteBedUse(writer io.Writer, flag bool, bedLoc *BlockXyz) (err error)
- func WriteBlockChange(writer io.Writer, blockLoc *BlockXyz, blockType BlockId, blockMetaData byte) (err error)
- func WriteBlockChangeMulti(writer io.Writer, chunkLoc *ChunkXz, blockCoords []SubChunkXyz, ...) (err error)
- func WriteChatMessage(writer io.Writer, message string) (err error)
- func WriteDisconnect(writer io.Writer, reason string) (err error)
- func WriteEntity(writer io.Writer, entityId EntityId) (err error)
- func WriteEntityAction(writer io.Writer, entityId EntityId, action EntityAction) (err error)
- func WriteEntityAnimation(writer io.Writer, entityId EntityId, animation EntityAnimation) (err error)
- func WriteEntityDestroy(writer io.Writer, entityId EntityId) error
- func WriteEntityEffect(writer io.Writer, entityId EntityId, effect EntityEffect, value int8, ...) (err error)
- func WriteEntityEquipment(writer io.Writer, entityId EntityId, slot SlotId, itemTypeId ItemTypeId, ...) (err error)
- func WriteEntityLook(writer io.Writer, entityId EntityId, look *LookBytes) error
- func WriteEntityLookAndRelMove(writer io.Writer, entityId EntityId, movement *RelMove, look *LookBytes) (err error)
- func WriteEntityMetadata(writer io.Writer, entityId EntityId, data []EntityMetadata) (err error)
- func WriteEntityRelMove(writer io.Writer, entityId EntityId, movement *RelMove) (err error)
- func WriteEntityRemoveEffect(writer io.Writer, entityId EntityId, effect EntityEffect) (err error)
- func WriteEntitySpawn(writer io.Writer, entityId EntityId, mobType EntityMobType, ...) (err error)
- func WriteEntityStatus(writer io.Writer, entityId EntityId, status EntityStatus) (err error)
- func WriteEntityTeleport(writer io.Writer, entityId EntityId, position *AbsIntXyz, look *LookBytes) error
- func WriteEntityVelocity(writer io.Writer, entityId EntityId, velocity *Velocity) (err error)
- func WriteExperienceOrb(writer io.Writer, entityId EntityId, position AbsIntXyz, count int16) (err error)
- func WriteExplosion(writer io.Writer, position *AbsXyz, power float32, ...) (err error)
- func WriteHoldingChange(writer io.Writer, slotId SlotId) (err error)
- func WriteIncrementStatistic(writer io.Writer, statisticId StatisticId, delta int8) (err error)
- func WriteItemCollect(writer io.Writer, collectedItem EntityId, collector EntityId) (err error)
- func WriteItemData(writer io.Writer, itemTypeId ItemTypeId, itemDataId ItemData, data []byte) (err error)
- func WriteItemSpawn(writer io.Writer, entityId EntityId, itemTypeId ItemTypeId, amount ItemCount, ...) error
- func WriteKeepAlive(writer io.Writer, id int32) error
- func WriteMapChunk(writer io.Writer, chunkLoc *ChunkXz, ...) (err error)
- func WriteNamedEntitySpawn(writer io.Writer, entityId EntityId, name string, position *AbsIntXyz, ...) (err error)
- func WriteNoteBlockPlay(writer io.Writer, position *BlockXyz, instrument InstrumentId, pitch NotePitch) (err error)
- func WriteObjectSpawn(writer io.Writer, entityId EntityId, objType ObjTypeId, position *AbsIntXyz, ...) (err error)
- func WritePaintingSpawn(writer io.Writer, entityId EntityId, title string, position *BlockXyz, ...) (err error)
- func WritePlayer(writer io.Writer, onGround bool) (err error)
- func WritePlayerBlockHit(writer io.Writer, status DigStatus, blockLoc *BlockXyz, face Face) (err error)
- func WritePlayerBlockInteract(writer io.Writer, itemTypeId ItemTypeId, blockLoc *BlockXyz, face Face, ...) (err error)
- func WritePlayerExperience(writer io.Writer, experience, level int8, totalExperience int16) (err error)
- func WritePlayerLook(writer io.Writer, look *LookDegrees, onGround bool) (err error)
- func WritePlayerPosition(writer io.Writer, position *AbsXyz, stance AbsCoord, onGround bool) error
- func WritePreChunk(writer io.Writer, chunkLoc *ChunkXz, mode ChunkLoadMode) error
- func WriteQuickbarSlotUpdate(writer io.Writer, slot SlotId, itemId ItemTypeId, count ItemCount, ...) (err error)
- func WriteRespawn(writer io.Writer, dimension DimensionId, unknown int8, gameType GameType, ...) error
- func WriteServerListPing(writer io.Writer) (err error)
- func WriteSignUpdate(writer io.Writer, position *BlockXyz, lines [4]string) (err error)
- func WriteSoundEffect(writer io.Writer, sound SoundEffect, position BlockXyz, data int32) (err error)
- func WriteSpawnPosition(writer io.Writer, position *BlockXyz) error
- func WriteState(writer io.Writer, reason, gameMode byte) (err error)
- func WriteUpdateHealth(writer io.Writer, health Health, food FoodUnits, foodSaturation float32) (err error)
- func WriteUseEntity(writer io.Writer, user EntityId, target EntityId, leftClick bool) (err error)
- func WriteUserListItem(writer io.Writer, username string, online bool, pingMs int16) (err error)
- func WriteWeather(writer io.Writer, entityId EntityId, raining bool, position *AbsIntXyz) (err error)
- func WriteWindowClick(writer io.Writer, windowId WindowId, slot SlotId, rightClick bool, txId TxId, ...) (err error)
- func WriteWindowClose(writer io.Writer, windowId WindowId) (err error)
- func WriteWindowItems(writer io.Writer, windowId WindowId, items []WindowSlot) (err error)
- func WriteWindowOpen(writer io.Writer, windowId WindowId, invTypeId InvTypeId, windowTitle string, ...) (err error)
- func WriteWindowProgressBar(writer io.Writer, windowId WindowId, prgBarId PrgBarId, value PrgBarValue) error
- func WriteWindowSetSlot(writer io.Writer, windowId WindowId, slot SlotId, itemTypeId ItemTypeId, ...) (err error)
- func WriteWindowTransaction(writer io.Writer, windowId WindowId, txId TxId, accepted bool) (err error)
- type EntityMetadata
- type ExplosionOffsetXyz
- type IClientPacketHandler
- type IPacketHandler
- type IServerPacketHandler
- type ObjectData
- type UnexpectedPacketIdError
- type UnknownPacketIdError
- type WindowSlot
Constants ¶
View Source
const ( // Packet type IDs PacketIdKeepAlive = 0x00 PacketIdLogin = 0x01 PacketIdHandshake = 0x02 PacketIdChatMessage = 0x03 PacketIdTimeUpdate = 0x04 PacketIdEntityEquipment = 0x05 PacketIdSpawnPosition = 0x06 PacketIdUseEntity = 0x07 PacketIdUpdateHealth = 0x08 PacketIdRespawn = 0x09 PacketIdPlayer = 0x0a PacketIdPlayerPosition = 0x0b PacketIdPlayerLook = 0x0c PacketIdPlayerPositionLook = 0x0d PacketIdPlayerBlockHit = 0x0e PacketIdPlayerBlockInteract = 0x0f PacketIdHoldingChange = 0x10 PacketIdBedUse = 0x11 PacketIdEntityAnimation = 0x12 PacketIdEntityAction = 0x13 PacketIdNamedEntitySpawn = 0x14 PacketIdItemSpawn = 0x15 PacketIdItemCollect = 0x16 PacketIdObjectSpawn = 0x17 PacketIdEntitySpawn = 0x18 PacketIdPaintingSpawn = 0x19 PacketIdExperienceOrb = 0x1a PacketIdEntityVelocity = 0x1c PacketIdEntityDestroy = 0x1d PacketIdEntity = 0x1e PacketIdEntityRelMove = 0x1f PacketIdEntityLook = 0x20 PacketIdEntityLookAndRelMove = 0x21 PacketIdEntityTeleport = 0x22 PacketIdEntityStatus = 0x26 PacketIdEntityMetadata = 0x28 PacketIdEntityEffect = 0x29 PacketIdEntityRemoveEffect = 0x2a PacketIdPlayerExperience = 0x2b PacketIdPreChunk = 0x32 PacketIdMapChunk = 0x33 PacketIdBlockChangeMulti = 0x34 PacketIdBlockChange = 0x35 PacketIdNoteBlockPlay = 0x36 PacketIdExplosion = 0x3c PacketIdSoundEffect = 0x3d PacketIdState = 0x46 PacketIdWeather = 0x47 PacketIdWindowOpen = 0x64 PacketIdWindowClose = 0x65 PacketIdWindowClick = 0x66 PacketIdWindowSetSlot = 0x67 PacketIdWindowItems = 0x68 PacketIdWindowProgressBar = 0x69 PacketIdWindowTransaction = 0x6a PacketIdQuickbarSlotUpdate = 0x6b PacketIdSignUpdate = 0x82 PacketIdItemData = 0x83 PacketIdIncrementStatistic = 0xc8 PacketIdUserListItem = 0xc9 PacketIdServerListPing = 0xfe PacketIdDisconnect = 0xff )
Variables ¶
This section is empty.
Functions ¶
func ClientReadPacket ¶
func ClientReadPacket(reader io.Reader, handler IClientPacketHandler) (err error)
A client should call this to receive a single packet from a client. It will block until a packet was successfully handled, or there was an error.
func ClientReadPacketExpect ¶
func ClientReadPacketExpect(reader io.Reader, handler IClientPacketHandler, expectedIds []byte) (err error)
func ClientWriteLogin ¶
func ServerReadPacket ¶
func ServerReadPacket(reader io.Reader, handler IServerPacketHandler) (err error)
A server should call this to receive a single packet from a client. It will block until a packet was successfully handled, or there was an error.
func ServerReadPacketExpect ¶
func ServerReadPacketExpect(reader io.Reader, handler IServerPacketHandler, expectedIds []byte) (err error)
func ServerWriteLogin ¶
func ServerWriteTimeUpdate ¶
func WriteBlockChange ¶
func WriteBlockChangeMulti ¶
func WriteEntity ¶
func WriteEntityAction ¶
func WriteEntityAnimation ¶
func WriteEntityDestroy ¶
func WriteEntityEffect ¶
func WriteEntityEquipment ¶
func WriteEntityLook ¶
func WriteEntityMetadata ¶
func WriteEntityMetadata(writer io.Writer, entityId EntityId, data []EntityMetadata) (err error)
func WriteEntityRelMove ¶
func WriteEntityRemoveEffect ¶
func WriteEntitySpawn ¶
func WriteEntitySpawn(writer io.Writer, entityId EntityId, mobType EntityMobType, position *AbsIntXyz, look *LookBytes, data []EntityMetadata) (err error)
func WriteEntityStatus ¶
func WriteEntityTeleport ¶
func WriteEntityVelocity ¶
func WriteExperienceOrb ¶
func WriteExplosion ¶
func WriteExplosion(writer io.Writer, position *AbsXyz, power float32, blockOffsets []ExplosionOffsetXyz) (err error)
func WriteHoldingChange ¶
func WriteIncrementStatistic ¶
func WriteItemCollect ¶
func WriteItemData ¶
func WriteItemSpawn ¶
func WriteMapChunk ¶
func WriteNamedEntitySpawn ¶
func WriteNoteBlockPlay ¶
func WriteObjectSpawn ¶
func WriteObjectSpawn(writer io.Writer, entityId EntityId, objType ObjTypeId, position *AbsIntXyz, objectData *ObjectData) (err error)
func WritePaintingSpawn ¶
func WritePlayerBlockHit ¶
func WritePlayerExperience ¶
func WritePlayerLook ¶
func WritePlayerPosition ¶
func WritePreChunk ¶
func WriteQuickbarSlotUpdate ¶
func WriteRespawn ¶
func WriteServerListPing ¶
func WriteSignUpdate ¶
func WriteSoundEffect ¶
func WriteSpawnPosition ¶
func WriteUpdateHealth ¶
func WriteUseEntity ¶
func WriteUserListItem ¶
func WriteWeather ¶
func WriteWindowClick ¶
func WriteWindowClose ¶
func WriteWindowItems ¶
func WriteWindowItems(writer io.Writer, windowId WindowId, items []WindowSlot) (err error)
func WriteWindowOpen ¶
func WriteWindowProgressBar ¶
func WriteWindowSetSlot ¶
Types ¶
type EntityMetadata ¶
type ExplosionOffsetXyz ¶
type ExplosionOffsetXyz struct {
X, Y, Z int8
}
type IClientPacketHandler ¶
type IClientPacketHandler interface { IPacketHandler PacketClientLogin(entityId EntityId, mapSeed RandomSeed, serverMode int32, dimension DimensionId, unknown int8, worldHeight, maxPlayers byte) PacketClientHandshake(serverId string) PacketTimeUpdate(time Ticks) PacketBedUse(flag bool, bedLoc *BlockXyz) PacketNamedEntitySpawn(entityId EntityId, name string, position *AbsIntXyz, look *LookBytes, currentItem ItemTypeId) PacketEntityEquipment(entityId EntityId, slot SlotId, itemTypeId ItemTypeId, data ItemData) PacketSpawnPosition(position *BlockXyz) PacketUpdateHealth(health Health, food FoodUnits, foodSaturation float32) PacketItemSpawn(entityId EntityId, itemTypeId ItemTypeId, count ItemCount, data ItemData, location *AbsIntXyz, orientation *OrientationBytes) PacketItemCollect(collectedItem EntityId, collector EntityId) PacketObjectSpawn(entityId EntityId, objType ObjTypeId, position *AbsIntXyz, objectData *ObjectData) PacketEntitySpawn(entityId EntityId, mobType EntityMobType, position *AbsIntXyz, look *LookBytes, data []EntityMetadata) PacketPaintingSpawn(entityId EntityId, title string, position *BlockXyz, paintingType PaintingTypeId) PacketExperienceOrb(entityId EntityId, position AbsIntXyz, count int16) PacketEntityVelocity(entityId EntityId, velocity *Velocity) PacketEntityDestroy(entityId EntityId) PacketEntity(entityId EntityId) PacketEntityRelMove(entityId EntityId, movement *RelMove) PacketEntityLook(entityId EntityId, look *LookBytes) PacketEntityTeleport(entityId EntityId, position *AbsIntXyz, look *LookBytes) PacketEntityStatus(entityId EntityId, status EntityStatus) PacketEntityMetadata(entityId EntityId, metadata []EntityMetadata) PacketEntityEffect(entityId EntityId, effect EntityEffect, value int8, duration int16) PacketEntityRemoveEffect(entityId EntityId, effect EntityEffect) PacketPlayerExperience(experience, level int8, totalExperience int16) PacketPreChunk(position *ChunkXz, mode ChunkLoadMode) PacketMapChunk(position *BlockXyz, size *SubChunkSize, data []byte) PacketBlockChangeMulti(chunkLoc *ChunkXz, blockCoords []SubChunkXyz, blockTypes []BlockId, blockMetaData []byte) PacketBlockChange(blockLoc *BlockXyz, blockType BlockId, blockMetaData byte) PacketNoteBlockPlay(position *BlockXyz, instrument InstrumentId, pitch NotePitch) // NOTE method signature likely to change PacketExplosion(position *AbsXyz, power float32, blockOffsets []ExplosionOffsetXyz) PacketSoundEffect(sound SoundEffect, position BlockXyz, data int32) PacketState(reason, gameMode byte) PacketWeather(entityId EntityId, raining bool, position *AbsIntXyz) PacketWindowOpen(windowId WindowId, invTypeId InvTypeId, windowTitle string, numSlots byte) PacketWindowSetSlot(windowId WindowId, slot SlotId, itemTypeId ItemTypeId, amount ItemCount, data ItemData) PacketWindowItems(windowId WindowId, items []WindowSlot) PacketWindowProgressBar(windowId WindowId, prgBarId PrgBarId, value PrgBarValue) PacketQuickbarSlotUpdate(slot SlotId, itemId ItemTypeId, count ItemCount, data ItemData) PacketItemData(itemTypeId ItemTypeId, itemDataId ItemData, data []byte) PacketIncrementStatistic(statisticId StatisticId, delta int8) PacketUserListItem(username string, unknown bool, ping int16) }
Clients to the protocol must implement this interface to receive packets
type IPacketHandler ¶
type IPacketHandler interface { PacketKeepAlive(id int32) PacketChatMessage(message string) PacketEntityAction(entityId EntityId, action EntityAction) PacketUseEntity(user EntityId, target EntityId, leftClick bool) PacketRespawn(dimension DimensionId, unknown int8, gameType GameType, worldHeight int16, mapSeed RandomSeed) PacketPlayerPosition(position *AbsXyz, stance AbsCoord, onGround bool) PacketPlayerLook(look *LookDegrees, onGround bool) PacketPlayerBlockHit(status DigStatus, blockLoc *BlockXyz, face Face) PacketPlayerBlockInteract(itemTypeId ItemTypeId, blockLoc *BlockXyz, face Face, amount ItemCount, data ItemData) PacketEntityAnimation(entityId EntityId, animation EntityAnimation) PacketWindowTransaction(windowId WindowId, txId TxId, accepted bool) PacketSignUpdate(position *BlockXyz, lines [4]string) PacketDisconnect(reason string) }
Packets commonly received by both client and server
type IServerPacketHandler ¶
type IServerPacketHandler interface { IPacketHandler PacketServerLogin(username string) PacketServerHandshake(username string) PacketPlayer(onGround bool) PacketHoldingChange(slotId SlotId) PacketWindowClose(windowId WindowId) PacketWindowClick(windowId WindowId, slot SlotId, rightClick bool, txId TxId, shiftClick bool, expectedSlot *WindowSlot) PacketServerListPing() }
Servers to the protocol must implement this interface to receive packets
type ObjectData ¶
type UnexpectedPacketIdError ¶
type UnexpectedPacketIdError byte
func (UnexpectedPacketIdError) Error ¶
func (err UnexpectedPacketIdError) Error() string
type UnknownPacketIdError ¶
type UnknownPacketIdError byte
func (UnknownPacketIdError) Error ¶
func (err UnknownPacketIdError) Error() string
type WindowSlot ¶
type WindowSlot struct { ItemTypeId ItemTypeId Count ItemCount Data ItemData }
Click to show internal directories.
Click to hide internal directories.