packet

package
v0.26.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 12, 2023 License: Apache-2.0 Imports: 19 Imported by: 1

Documentation

Index

Constants

View Source
const (
	NodeTypeRoot     byte = 0x00
	NodeTypeLiteral  byte = 0x01
	NodeTypeArgument byte = 0x02

	FlagNodeType       byte = 0x03
	FlagExecutable     byte = 0x04
	FlagIsRedirect     byte = 0x08
	FlagHasSuggestions byte = 0x10
)
View Source
const UnknownDimensionID = "gate:unknown_dimension"
View Source
const VanillaMaxTabCompleteLen = 2048

Variables

View Source
var PlaceholderCommand = brigodier.CommandFunc(func(c *brigodier.CommandContext) error { return nil })
View Source
var ResetHeaderAndFooter = &HeaderAndFooter{
	Header: `{"translate":""}`,
	Footer: `{"translate":""}`,
}

Functions

This section is empty.

Types

type AvailableCommands added in v0.12.0

type AvailableCommands struct {
	RootNode *brigodier.RootCommandNode
}

func (*AvailableCommands) Decode added in v0.12.0

func (a *AvailableCommands) Decode(c *proto.PacketContext, rd io.Reader) error

func (*AvailableCommands) Encode added in v0.12.0

func (a *AvailableCommands) Encode(c *proto.PacketContext, wr io.Writer) (err error)

type ChatCompletionAction added in v0.19.1

type ChatCompletionAction int
const (
	AddChatCompletionAction ChatCompletionAction = iota
	RemoveChatCompletionAction
	AlterChatCompletionAction
)

type ClientSettings

type ClientSettings struct {
	Locale         string // may be empty
	ViewDistance   byte
	ChatVisibility int
	ChatColors     bool
	Difficulty     bool // 1.7 Protocol
	SkinParts      byte
	MainHand       int
	TextFiltering  bool // 1.17+
	ClientListing  bool // 1.18+, overwrites server-list "anonymous" mode
}

func (*ClientSettings) Decode

func (s *ClientSettings) Decode(c *proto.PacketContext, rd io.Reader) (err error)

func (*ClientSettings) Encode

func (s *ClientSettings) Encode(c *proto.PacketContext, wr io.Writer) error

type DeathPosition added in v0.19.0

type DeathPosition struct {
	Key   string
	Value int64
}

func (*DeathPosition) String added in v0.19.0

func (d *DeathPosition) String() string

type DimensionData

type DimensionData struct {
	RegistryIdentifier         string   // the identifier for the dimension from the registry
	DimensionID                *int     // nil-able, the dimension ID contained in the registry (the "id" tag)
	Natural                    bool     // indicates if the dimension use natural world generation (e.g. overworld)
	AmbientLight               float32  // the light level the client sees without external lighting
	Shrunk                     bool     // indicates if the world is shrunk, aka not the full 256 blocks (e.g. nether)
	Ultrawarm                  bool     // internal dimension warmth flag
	Ceiling                    bool     // indicates if the dimension has a ceiling layer
	Skylight                   bool     // indicates if the dimension should display the sun
	PiglineSafe                bool     // indicates if piglins should naturally zombify in this dimension
	DoBedsWork                 bool     // indicates if players should be able to sleep in beds in this dimension
	DoRespawnAnchorsWork       bool     // indicates if player respawn points can be used in this dimension
	Raids                      bool     // indicates if raids can be spawned in the dimension
	LogicalHeight              int32    // the natural max height for the given dimension
	BurningBehaviourIdentifier string   // the identifier for how burning blocks work in the dimension
	FixedTime                  *int64   // nil-able
	CreateDragonFight          *bool    // nil-able
	CoordinateScale            *float64 // nil-able
	Effects                    *string  // optional; unknown purpose
	MinY                       *int     // Required since 1.17
	Height                     *int     // Required since 1.17
	// Controls the block light needed to prevent monster spawns.
	MonsterSpawnBlockLightLimit *int // nil-able: Required and added by 1.19
	// An int provider which is evaluated to find a value to compare the current
	// overall brightness with to determine if a monster should be allowed to spawn.
	MonsterSpawnLightLevel *int // nil-able: Required and added by 1.19
}

type DimensionInfo

type DimensionInfo struct {
	RegistryIdentifier string
	LevelName          *string // nil-able
	Flat               bool
	DebugType          bool
}

type DimensionRegistry

type DimensionRegistry struct {
	Dimensions []*DimensionData
	LevelNames []string
}

DimensionRegistry is required for Minecraft 1.16+ clients/servers to communicate, it constrains the dimension types and names the client can be sent in a Respawn action (dimension change).

type Disconnect

type Disconnect struct {
	Reason *string // A reason must only be given for encoding.
}

func DisconnectWith

func DisconnectWith(reason component.Component) *Disconnect

DisconnectWith creates a Disconnect packet with guaranteed reason.

func DisconnectWithProtocol

func DisconnectWithProtocol(reason component.Component, protocol proto.Protocol) *Disconnect

DisconnectWithProtocol creates a new Disconnect packet for the given given protocol.

func (*Disconnect) Decode

func (d *Disconnect) Decode(_ *proto.PacketContext, rd io.Reader) (err error)

func (*Disconnect) Encode

func (d *Disconnect) Encode(c *proto.PacketContext, wr io.Writer) error

type EncryptionRequest

type EncryptionRequest struct {
	ServerID    string
	PublicKey   []byte
	VerifyToken []byte
}

func (*EncryptionRequest) Decode

func (e *EncryptionRequest) Decode(_ *proto.PacketContext, rd io.Reader) (err error)

func (*EncryptionRequest) Encode

func (e *EncryptionRequest) Encode(_ *proto.PacketContext, wr io.Writer) error

type EncryptionResponse

type EncryptionResponse struct {
	SharedSecret []byte
	VerifyToken  []byte
	Salt         *int64 // 1.19+
}

func (*EncryptionResponse) Decode

func (e *EncryptionResponse) Decode(c *proto.PacketContext, rd io.Reader) (err error)

func (*EncryptionResponse) Encode

type Handshake

type Handshake struct {
	ProtocolVersion int
	ServerAddress   string
	Port            int
	NextStatus      int
}

https://wiki.vg/Protocol#Handshaking

func (*Handshake) Decode

func (h *Handshake) Decode(_ *proto.PacketContext, rd io.Reader) (err error)

func (*Handshake) Encode

func (h *Handshake) Encode(_ *proto.PacketContext, wr io.Writer) error

type HeaderAndFooter

type HeaderAndFooter struct {
	Header string
	Footer string
}

func (*HeaderAndFooter) Decode

func (h *HeaderAndFooter) Decode(c *proto.PacketContext, rd io.Reader) (err error)

we never read this packet

func (*HeaderAndFooter) Encode

func (h *HeaderAndFooter) Encode(c *proto.PacketContext, wr io.Writer) error

type JoinGame

type JoinGame struct {
	EntityID             int
	Gamemode             int16
	Dimension            int
	PartialHashedSeed    int64 // 1.15+
	Difficulty           int16
	Hardcore             bool
	MaxPlayers           int
	LevelType            *string // nil-able: removed in 1.16+
	ViewDistance         int     // 1.14+
	ReducedDebugInfo     bool
	ShowRespawnScreen    bool
	DimensionRegistry    *DimensionRegistry // 1.16+
	DimensionInfo        *DimensionInfo     // 1.16+
	CurrentDimensionData *DimensionData     // 1.16.2+
	PreviousGamemode     int16              // 1.16+
	BiomeRegistry        util.NBT           // 1.16.2+
	SimulationDistance   int                // 1.18+
	LastDeadPosition     *DeathPosition     // 1.19+
	ChatTypeRegistry     util.NBT           // placeholder, 1.19+ // compound binary tag
}

func (*JoinGame) Decode

func (j *JoinGame) Decode(c *proto.PacketContext, rd io.Reader) (err error)

func (*JoinGame) Encode

func (j *JoinGame) Encode(c *proto.PacketContext, wr io.Writer) error

type KeepAlive

type KeepAlive struct {
	RandomID int64
}

func (*KeepAlive) Decode

func (k *KeepAlive) Decode(c *proto.PacketContext, rd io.Reader) (err error)

func (*KeepAlive) Encode

func (k *KeepAlive) Encode(c *proto.PacketContext, wr io.Writer) error

type LoginPluginMessage

type LoginPluginMessage struct {
	ID      int
	Channel string
	Data    []byte
}

func (*LoginPluginMessage) Decode

func (l *LoginPluginMessage) Decode(_ *proto.PacketContext, rd io.Reader) (err error)

func (*LoginPluginMessage) Encode

type LoginPluginResponse

type LoginPluginResponse struct {
	ID      int
	Success bool
	Data    []byte
}

func (*LoginPluginResponse) Decode

func (l *LoginPluginResponse) Decode(_ *proto.PacketContext, rd io.Reader) (err error)

func (*LoginPluginResponse) Encode

func (l *LoginPluginResponse) Encode(_ *proto.PacketContext, wr io.Writer) (err error)

type PlayerChatCompletion added in v0.19.1

type PlayerChatCompletion struct {
	Completions []string
	Action      ChatCompletionAction
}

func (*PlayerChatCompletion) Decode added in v0.19.1

func (p *PlayerChatCompletion) Decode(c *proto.PacketContext, rd io.Reader) (err error)

func (*PlayerChatCompletion) Encode added in v0.19.1

type ResourcePackRequest

type ResourcePackRequest struct {
	URL      string
	Hash     string
	Required bool                // 1.17+
	Prompt   component.Component // (nil-able) 1.17+
}

func (*ResourcePackRequest) Decode

func (r *ResourcePackRequest) Decode(c *proto.PacketContext, rd io.Reader) (err error)

func (*ResourcePackRequest) Encode

type ResourcePackResponse added in v0.19.0

type ResourcePackResponse struct {
	Hash   string
	Status ResourcePackResponseStatus
}

func (*ResourcePackResponse) Decode added in v0.19.0

func (r *ResourcePackResponse) Decode(c *proto.PacketContext, rd io.Reader) (err error)

func (*ResourcePackResponse) Encode added in v0.19.0

type ResourcePackResponseStatus added in v0.19.0

type ResourcePackResponseStatus int
const (
	SuccessfulResourcePackResponseStatus ResourcePackResponseStatus = iota
	DeclinedResourcePackResponseStatus
	FailedDownloadResourcePackResponseStatus
	AcceptedResourcePackResponseStatus
)

type Respawn

type Respawn struct {
	Dimension            int
	PartialHashedSeed    int64
	Difficulty           int16
	Gamemode             int16
	LevelType            string         // empty by default
	DataToKeep           byte           // 1.16+
	DimensionInfo        *DimensionInfo // 1.16-1.16.1
	PreviousGamemode     int16          // 1.16+
	CurrentDimensionData *DimensionData // 1.16.2+
	LastDeathPosition    *DeathPosition // 1.19+
}

func (*Respawn) Decode

func (r *Respawn) Decode(c *proto.PacketContext, rd io.Reader) (err error)

func (*Respawn) Encode

func (r *Respawn) Encode(c *proto.PacketContext, wr io.Writer) (err error)

type ServerData added in v0.19.0

type ServerData struct {
	Description        component.Component // nil-able
	Favicon            favicon.Favicon     // may be empty
	SecureChatEnforced bool                // Added in 1.19.1
}

func (*ServerData) Decode added in v0.19.0

func (s *ServerData) Decode(c *proto.PacketContext, rd io.Reader) (err error)

func (*ServerData) Encode added in v0.19.0

func (s *ServerData) Encode(c *proto.PacketContext, wr io.Writer) error

type ServerLogin

type ServerLogin struct {
	Username  string
	PlayerKey crypto.IdentifiedKey // 1.19.3
	HolderID  uuid.UUID            // Used for key revision 2
}

func (*ServerLogin) Decode

func (s *ServerLogin) Decode(c *proto.PacketContext, rd io.Reader) (err error)

func (*ServerLogin) Encode

func (s *ServerLogin) Encode(c *proto.PacketContext, wr io.Writer) error

type ServerLoginSuccess

type ServerLoginSuccess struct {
	UUID       uuid.UUID
	Username   string
	Properties []profile.Property // 1.19+
}

func (*ServerLoginSuccess) Decode

func (s *ServerLoginSuccess) Decode(c *proto.PacketContext, rd io.Reader) (err error)

func (*ServerLoginSuccess) Encode

func (s *ServerLoginSuccess) Encode(c *proto.PacketContext, wr io.Writer) (err error)

type SetCompression

type SetCompression struct {
	Threshold int
}

func (*SetCompression) Decode

func (s *SetCompression) Decode(c *proto.PacketContext, rd io.Reader) (err error)

func (*SetCompression) Encode

func (s *SetCompression) Encode(c *proto.PacketContext, wr io.Writer) error

type StatusPing

type StatusPing struct {
	RandomID int64
}

func (*StatusPing) Decode

func (s *StatusPing) Decode(_ *proto.PacketContext, rd io.Reader) (err error)

func (*StatusPing) Encode

func (s *StatusPing) Encode(_ *proto.PacketContext, wr io.Writer) error

type StatusRequest

type StatusRequest struct{}

func (StatusRequest) Decode

func (StatusRequest) Encode

type StatusResponse

type StatusResponse struct {
	Status string
}

func (*StatusResponse) Decode

func (s *StatusResponse) Decode(_ *proto.PacketContext, rd io.Reader) (err error)

func (*StatusResponse) Encode

func (s *StatusResponse) Encode(_ *proto.PacketContext, wr io.Writer) error

type TabCompleteOffer added in v0.12.0

type TabCompleteOffer struct {
	Text    string
	Tooltip component.Component // nil-able
}

type TabCompleteRequest added in v0.12.0

type TabCompleteRequest struct {
	Command       string
	TransactionID int
	AssumeCommand bool
	HasPosition   bool
	Position      int64
}

func (*TabCompleteRequest) Decode added in v0.12.0

func (t *TabCompleteRequest) Decode(c *proto.PacketContext, rd io.Reader) (err error)

func (*TabCompleteRequest) Encode added in v0.12.0

type TabCompleteResponse added in v0.12.0

type TabCompleteResponse struct {
	TransactionID int
	Start         int
	Length        int
	Offers        []TabCompleteOffer
}

func (*TabCompleteResponse) Decode added in v0.12.0

func (t *TabCompleteResponse) Decode(c *proto.PacketContext, rd io.Reader) (err error)

func (*TabCompleteResponse) Encode added in v0.12.0

type WireNode added in v0.12.0

type WireNode struct {
	IDx        int
	Flags      byte
	Children   []int
	RedirectTo int
	Args       brigodier.NodeBuilder // nil-able
	Built      brigodier.CommandNode
	Validated  bool
}

Directories

Path Synopsis
tablist
Package title contains title packets.
Package title contains title packets.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL