Introduced support for protocol 800, including biome definitions, camera presets, and player list updates. Upgraded dependencies, adjusted mappings, and enhanced the README to reflect recent changes.
50 lines
1.6 KiB
Go
50 lines
1.6 KiB
Go
package legacypacket
|
|
|
|
import (
|
|
"github.com/akmalfairuz/legacy-version/legacyver/proto"
|
|
"github.com/sandertv/gophertunnel/minecraft/protocol"
|
|
"github.com/sandertv/gophertunnel/minecraft/protocol/packet"
|
|
)
|
|
|
|
const (
|
|
PlayerListActionAdd = iota
|
|
PlayerListActionRemove
|
|
)
|
|
|
|
// PlayerList is sent by the server to update the client-side player list in the in-game menu screen. It shows
|
|
// the icon of each player if the correct XUID is written in the packet.
|
|
// Sending the PlayerList packet is obligatory when sending an AddPlayer packet. The added player will not
|
|
// show up to a client if it has not been added to the player list, because several properties of the player
|
|
// are obtained from the player list, such as the skin.
|
|
type PlayerList struct {
|
|
// ActionType is the action to execute upon the player list. The entries that follow specify which entries
|
|
// are added or removed from the player list.
|
|
ActionType byte
|
|
// Entries is a list of all player list entries that should be added/removed from the player list,
|
|
// depending on the ActionType set.
|
|
Entries []proto.PlayerListEntry
|
|
}
|
|
|
|
// ID ...
|
|
func (*PlayerList) ID() uint32 {
|
|
return packet.IDPlayerList
|
|
}
|
|
|
|
// Marshal ...
|
|
func (pk *PlayerList) Marshal(io protocol.IO) {
|
|
io.Uint8(&pk.ActionType)
|
|
switch pk.ActionType {
|
|
case PlayerListActionAdd:
|
|
protocol.Slice(io, &pk.Entries)
|
|
case PlayerListActionRemove:
|
|
protocol.FuncIOSlice(io, &pk.Entries, proto.PlayerListRemoveEntry)
|
|
default:
|
|
io.UnknownEnumOption(pk.ActionType, "player list action type")
|
|
}
|
|
if pk.ActionType == PlayerListActionAdd {
|
|
for i := 0; i < len(pk.Entries); i++ {
|
|
io.Bool(&pk.Entries[i].Skin.Trusted)
|
|
}
|
|
}
|
|
}
|