teeworlds7

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Jan 2, 2025 License: BSD-2-Clause Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UnknownClientId = -1
)

Variables

View Source
var (
	// ErrProcessPacketFailed is returned when processing a packet failed
	// This error can be checked in your error handling callback with errors.Is
	ErrProcessPacketFailed = errors.New("failed to process packet")

	// ErrUnpackPacketFailed is returned when unpacking a packet failed
	// This error can be checked in your error handling callback with errors.Is
	ErrUnpackPacketFailed = errors.New("failed to unpack packet")

	// ErrProcessGameTickFailed is returned when processing a game tick failed
	// This error can be checked in your error handling callback with errors.Is
	ErrProcessGameTickFailed = errors.New("failed to process game tick")
)

Functions

This section is empty.

Types

type Client

type Client struct {
	Name    string
	Clan    string
	Country int

	// chunks to be sent on next packet send
	// use client.SendMessage() to put your chunks here
	QueuedMessages []messages7.NetMessage

	// hooks from the user
	Callbacks UserMsgCallbacks

	// udp connection
	Conn net.Conn

	// when the last packet was sent
	// tracked to know when to send keepalives
	LastSend      time.Time
	LastInputSend time.Time

	// teeworlds session
	Session protocol7.Session

	// old snapshots used to unpack new deltas
	SnapshotStorage *snapshot7.Storage

	// teeworlds game state
	Game Game

	// might be -1 if we do not know our own id yet
	LocalClientId int

	// cancelation & graceful shutdown handling
	// These fields usually do not need to be accessed by the user
	// They might only be needed in case you want to change the default behavior
	// of the OnDisconnect callback
	Ctx         context.Context
	CancelCause context.CancelCauseFunc
}

func NewClient

func NewClient() *Client

func (*Client) Aim

func (client *Client) Aim(x int, y int)

func (*Client) Connect

func (client *Client) Connect(serverIp string, serverPort int) error

func (*Client) ConnectContext

func (client *Client) ConnectContext(ctx context.Context, serverIp string, serverPort int) (err error)

func (*Client) CreateAltSnap

func (client *Client) CreateAltSnap(oldSnap *snapshot7.Snapshot, newSnap *snapshot7.Snapshot) *snapshot7.Snapshot

creates a copy of the new snapshot and evolves the characters to their new predicted position based on their old poisiton and velocity

it should also drop invalid snap items that do not pass validation

func (*Client) Fire

func (client *Client) Fire()

func (*Client) Hook

func (client *Client) Hook()

func (*Client) Jump

func (client *Client) Jump()

func (*Client) Left

func (client *Client) Left()

func (*Client) OnAccept

func (client *Client) OnAccept(callback func(msg *messages7.CtrlAccept, defaultAction DefaultAction) error)

func (*Client) OnBroadcast

func (client *Client) OnBroadcast(callback func(msg *messages7.SvBroadcast, defaultAction DefaultAction) error)

func (*Client) OnChat

func (client *Client) OnChat(callback func(msg *messages7.SvChat, defaultAction DefaultAction) error)

func (*Client) OnCheckpoint

func (client *Client) OnCheckpoint(callback func(msg *messages7.SvCheckpoint, defaultAction DefaultAction) error)

func (*Client) OnClientDrop

func (client *Client) OnClientDrop(callback func(msg *messages7.SvClientDrop, defaultAction DefaultAction) error)

func (*Client) OnClientInfo

func (client *Client) OnClientInfo(callback func(msg *messages7.SvClientInfo, defaultAction DefaultAction) error)

func (*Client) OnCommandInfo

func (client *Client) OnCommandInfo(callback func(msg *messages7.SvCommandInfo, defaultAction DefaultAction) error)

func (*Client) OnCommandInfoRemove

func (client *Client) OnCommandInfoRemove(callback func(msg *messages7.SvCommandInfoRemove, defaultAction DefaultAction) error)

func (*Client) OnDisconnect

func (client *Client) OnDisconnect(callback func(msg *messages7.CtrlClose, defaultAction DefaultAction) error)

func (*Client) OnEmoticon

func (client *Client) OnEmoticon(callback func(msg *messages7.SvEmoticon, defaultAction DefaultAction) error)

func (*Client) OnError

func (client *Client) OnError(callback func(err error) error)

if not implemented by the user the application might throw and exit

return nil to drop the error return the error or another error in order to shutdown the application.

func (*Client) OnExtraProjectile

func (client *Client) OnExtraProjectile(callback func(msg *messages7.SvExtraProjectile, defaultAction DefaultAction) error)

func (*Client) OnGameInfo

func (client *Client) OnGameInfo(callback func(msg *messages7.SvGameInfo, defaultAction DefaultAction) error)

func (*Client) OnGameMsg

func (client *Client) OnGameMsg(callback func(msg *messages7.SvGameMsg, defaultAction DefaultAction) error)

func (*Client) OnKeepAlive

func (client *Client) OnKeepAlive(callback func(msg *messages7.CtrlKeepAlive, defaultAction DefaultAction) error)

func (*Client) OnKillMsg

func (client *Client) OnKillMsg(callback func(msg *messages7.SvKillMsg, defaultAction DefaultAction) error)

func (*Client) OnMapChange

func (client *Client) OnMapChange(callback func(msg *messages7.MapChange, defaultAction DefaultAction) error)

func (*Client) OnMotd

func (client *Client) OnMotd(callback func(msg *messages7.SvMotd, defaultAction DefaultAction) error)

func (*Client) OnMsgSnap

func (client *Client) OnMsgSnap(callback func(msg *messages7.Snap, defaultAction DefaultAction) error)

You probably want to use OnSnapshot() instead

func (*Client) OnMsgSnapEmpty

func (client *Client) OnMsgSnapEmpty(callback func(msg *messages7.SnapEmpty, defaultAction DefaultAction) error)

You probably want to use OnSnapshot() instead

func (*Client) OnMsgSnapSingle

func (client *Client) OnMsgSnapSingle(callback func(msg *messages7.SnapSingle, defaultAction DefaultAction) error)

You probably want to use OnSnapshot() instead

func (*Client) OnMsgSnapSmall

func (client *Client) OnMsgSnapSmall(callback func(msg *messages7.SnapSmall, defaultAction DefaultAction) error)

You probably want to use OnSnapshot() instead

func (*Client) OnPacket

func (client *Client) OnPacket(callback func(packet *protocol7.Packet) bool)

read incoming traffic and alter it before it hits the internal state machine

return false to drop the packet

func (*Client) OnRaceFinish

func (client *Client) OnRaceFinish(callback func(msg *messages7.SvRaceFinish, defaultAction DefaultAction) error)

func (*Client) OnReadyToEnter

func (client *Client) OnReadyToEnter(callback func(msg *messages7.SvReadyToEnter, defaultAction DefaultAction) error)

func (*Client) OnSendCallVote

func (client *Client) OnSendCallVote(callback func(msg *messages7.ClCallVote) bool)

func (*Client) OnSendCommand

func (client *Client) OnSendCommand(callback func(msg *messages7.ClCommand) bool)

func (*Client) OnSendConReady

func (client *Client) OnSendConReady(callback func(msg *messages7.ConReady) bool)

func (*Client) OnSendEmoticon

func (client *Client) OnSendEmoticon(callback func(msg *messages7.ClEmoticon) bool)

func (*Client) OnSendEnterGame

func (client *Client) OnSendEnterGame(callback func(msg *messages7.EnterGame) bool)

func (*Client) OnSendInfo

func (client *Client) OnSendInfo(callback func(msg *messages7.Info) bool)

func (*Client) OnSendInput

func (client *Client) OnSendInput(callback func(msg *messages7.Input) bool)

func (*Client) OnSendInputTiming

func (client *Client) OnSendInputTiming(callback func(msg *messages7.InputTiming) bool)

func (*Client) OnSendKill

func (client *Client) OnSendKill(callback func(msg *messages7.ClKill) bool)

func (*Client) OnSendPacket

func (client *Client) OnSendPacket(callback func(packet *protocol7.Packet) bool)

inspect outgoing traffic and alter it before it gets sent to the server

return false to drop the packet

func (*Client) OnSendPing

func (client *Client) OnSendPing(callback func(msg *messages7.Ping) bool)

func (*Client) OnSendPingReply

func (client *Client) OnSendPingReply(callback func(msg *messages7.PingReply) bool)

func (*Client) OnSendRconAuth

func (client *Client) OnSendRconAuth(callback func(msg *messages7.RconAuth) bool)

func (*Client) OnSendRconCmd

func (client *Client) OnSendRconCmd(callback func(msg *messages7.RconCmd) bool)

func (*Client) OnSendReady

func (client *Client) OnSendReady(callback func(msg *messages7.Ready) bool)

func (*Client) OnSendReadyChange

func (client *Client) OnSendReadyChange(callback func(msg *messages7.ClReadyChange) bool)

func (*Client) OnSendRequestMapData

func (client *Client) OnSendRequestMapData(callback func(msg *messages7.RequestMapData) bool)

func (*Client) OnSendSay

func (client *Client) OnSendSay(callback func(msg *messages7.ClSay) bool)

func (*Client) OnSendSetSpectatorMode

func (client *Client) OnSendSetSpectatorMode(callback func(msg *messages7.ClSetSpectatorMode) bool)

func (*Client) OnSendSetTeam

func (client *Client) OnSendSetTeam(callback func(msg *messages7.ClSetTeam) bool)

func (*Client) OnSendSkinChange

func (client *Client) OnSendSkinChange(callback func(msg *messages7.ClSkinChange) bool)

func (*Client) OnSendStartInfo

func (client *Client) OnSendStartInfo(callback func(msg *messages7.ClStartInfo) bool)

func (*Client) OnSendVote

func (client *Client) OnSendVote(callback func(msg *messages7.ClVote) bool)

func (*Client) OnServerInfo

func (client *Client) OnServerInfo(callback func(msg *messages7.ServerInfo, defaultAction DefaultAction) error)

func (*Client) OnServerSettings

func (client *Client) OnServerSettings(callback func(msg *messages7.SvServerSettings, defaultAction DefaultAction) error)

func (*Client) OnSkinChange

func (client *Client) OnSkinChange(callback func(msg *messages7.SvSkinChange, defaultAction DefaultAction) error)

func (*Client) OnSnapshot

func (client *Client) OnSnapshot(callback func(snap *snapshot7.Snapshot, defaultAction DefaultAction) error)

will be called when a snap, snap single or empty snapshot is received if you want to know which type of snapshot was received look at OnMsgSnap(), OnMsgSnapEmpty(), OnMsgSnapSingle(), OnMsgSnapSmall()

func (*Client) OnTeam

func (client *Client) OnTeam(callback func(msg *messages7.SvTeam, defaultAction DefaultAction) error)

func (*Client) OnTick

func (client *Client) OnTick(callback func(defaultAction DefaultAction) error)

func (*Client) OnToken

func (client *Client) OnToken(callback func(msg *messages7.CtrlToken, defaultAction DefaultAction) error)

func (*Client) OnTuneParams

func (client *Client) OnTuneParams(callback func(msg *messages7.SvTuneParams, defaultAction DefaultAction) error)

func (*Client) OnUnknown

func (client *Client) OnUnknown(callback func(msg *messages7.Unknown, defaultAction DefaultAction) error)

func (*Client) OnVoteClearoptions

func (client *Client) OnVoteClearoptions(callback func(msg *messages7.SvVoteClearOptions, defaultAction DefaultAction) error)

func (*Client) OnVoteOptionlistadd

func (client *Client) OnVoteOptionlistadd(callback func(msg *messages7.SvVoteOptionListAdd, defaultAction DefaultAction) error)

func (*Client) OnVoteOptionremove

func (client *Client) OnVoteOptionremove(callback func(msg *messages7.SvVoteOptionRemove, defaultAction DefaultAction) error)

func (*Client) OnVotePptionadd

func (client *Client) OnVotePptionadd(callback func(msg *messages7.SvVoteOptionAdd, defaultAction DefaultAction) error)

func (*Client) OnVoteSet

func (client *Client) OnVoteSet(callback func(msg *messages7.SvVoteSet, defaultAction DefaultAction) error)

func (*Client) OnVoteStatus

func (client *Client) OnVoteStatus(callback func(msg *messages7.SvVoteStatus, defaultAction DefaultAction) error)

func (*Client) OnWeaponPickup

func (client *Client) OnWeaponPickup(callback func(msg *messages7.SvWeaponPickup, defaultAction DefaultAction) error)

func (*Client) Right

func (client *Client) Right()

func (*Client) SendChat

func (client *Client) SendChat(msg string) error

see also SendWhisper() see also SendChatTeam()

func (*Client) SendChatTeam

func (client *Client) SendChatTeam(msg string) error

see also SendWhisper() see also SendChat()

func (*Client) SendInput

func (client *Client) SendInput() error

Example of walking left

client.Game.Input.Direction = -1
client.SendInput()

see also:

Right()
Left()
Stop()
Jump()
Fire()
Hook()
Aim(x, y)

func (*Client) SendKeepAlive

func (client *Client) SendKeepAlive() error

func (*Client) SendMessage

func (client *Client) SendMessage(msg messages7.NetMessage) (err error)

WARNING! this is does not send chat messages this sends a network chunk and is for expert users

if you want to send a chat message use SendChat()

func (*Client) SendPacket

func (client *Client) SendPacket(packet *protocol7.Packet) (err error)

func (*Client) SendWhisper

func (client *Client) SendWhisper(targetId int, msg string) error

see also SendChat() see also SendChatTeam()

func (*Client) SnapFindCharacter

func (client *Client) SnapFindCharacter(clientId int) (character *object7.Character, found bool, err error)

TODO: add this for all items and move it to a different file

this would be more useful to have on the Snapshot struct directly
so it can be used everywhere not only in a client
and the client then can just wrap it to acces the alt snap

func (*Client) Stop

func (client *Client) Stop()

type DefaultAction

type DefaultAction func() error

Processes the incoming packet It might print to the console It might send a response packet

type DisconnectError

type DisconnectError struct {
	// Reason is the reason why we were disconnected
	Reason string
}

This error is set as cancel cause in case that we are disconnected from the server This makes the error tangible for the user It can be checked with errors.As

func (DisconnectError) Error

func (e DisconnectError) Error() string

type Game

type Game struct {
	Players       []Player
	Snap          *GameSnap
	Input         *messages7.Input
	LastSentInput messages7.Input
}

type GameSnap

type GameSnap struct {
	PlayerInputs    []*object7.PlayerInput
	Projectiles     []*object7.Projectile
	Lasers          []*object7.Laser
	Pickups         []*object7.Pickup
	Flags           []*object7.Flag
	GameDatas       []*object7.GameData
	GameDataTeams   []*object7.GameDataTeam
	GameDataFlags   []*object7.GameDataFlag
	Characters      []*object7.Character
	PlayerInfos     []*object7.PlayerInfo
	SpectatorInfos  []*object7.SpectatorInfo
	DeClientInfos   []*object7.DeClientInfo
	DeGameInfos     []*object7.DeGameInfo
	DeTuneParamss   []*object7.DeTuneParams
	Explosions      []*object7.Explosion
	Spawns          []*object7.Spawn
	HammerHits      []*object7.HammerHit
	Deaths          []*object7.Death
	SoundWorlds     []*object7.SoundWorld
	Damages         []*object7.Damage
	PlayerInfoRaces []*object7.PlayerInfoRace
	GameDataRaces   []*object7.GameDataRace
	Unknowns        []*object7.Unknown
}

type Player

type Player struct {
	Info messages7.SvClientInfo
}

type UserMsgCallbacks

type UserMsgCallbacks struct {
	Tick []func(DefaultAction) error

	// return false to drop the packet
	PacketIn []func(*protocol7.Packet) bool

	// return false to drop the packet
	PacketOut []func(*protocol7.Packet) bool

	// return false to drop the message
	MessageOut []func(*messages7.NetMessage) bool

	// ctrl out
	CtrlKeepAliveOut []func(*messages7.CtrlKeepAlive) bool
	CtrlConnectOut   []func(*messages7.CtrlConnect) bool
	CtrlAcceptOut    []func(*messages7.CtrlAccept) bool
	CtrlTokenOut     []func(*messages7.CtrlToken) bool
	CtrlCloseOut     []func(*messages7.CtrlClose) bool
	// sys out
	SysInfoOut            []func(*messages7.Info) bool
	SysMapChangeOut       []func(*messages7.MapChange) bool
	SysMapDataOut         []func(*messages7.MapData) bool
	SysServerInfoOut      []func(*messages7.ServerInfo) bool
	SysConReadyOut        []func(*messages7.ConReady) bool
	SysSnapOut            []func(*messages7.Snap) bool
	SysSnapEmptyOut       []func(*messages7.SnapEmpty) bool
	SysSnapSingleOut      []func(*messages7.SnapSingle) bool
	SysSnapSmallOut       []func(*messages7.SnapSmall) bool
	SysInputTimingOut     []func(*messages7.InputTiming) bool
	SysRconAuthOnOut      []func(*messages7.RconAuthOn) bool
	SysRconAuthOffOut     []func(*messages7.RconAuthOff) bool
	SysRconLineOut        []func(*messages7.RconLine) bool
	SysRconCmdAddOut      []func(*messages7.RconCmdAdd) bool
	SysRconCmdRemOut      []func(*messages7.RconCmdRem) bool
	SysAuthChallengeOut   []func(*messages7.AuthChallenge) bool
	SysAuthResultOut      []func(*messages7.AuthResult) bool
	SysReadyOut           []func(*messages7.Ready) bool
	SysEnterGameOut       []func(*messages7.EnterGame) bool
	SysInputOut           []func(*messages7.Input) bool
	SysRconCmdOut         []func(*messages7.RconCmd) bool
	SysRconAuthOut        []func(*messages7.RconAuth) bool
	SysRequestMapDataOut  []func(*messages7.RequestMapData) bool
	SysAuthStartOut       []func(*messages7.AuthStart) bool
	SysAuthResponseOut    []func(*messages7.AuthResponse) bool
	SysPingOut            []func(*messages7.Ping) bool
	SysPingReplyOut       []func(*messages7.PingReply) bool
	SysErrorOut           []func(*messages7.Error) bool
	SysMaplistEntryAddOut []func(*messages7.MaplistEntryAdd) bool
	SysMaplistEntryRemOut []func(*messages7.MaplistEntryRem) bool
	// game out
	GameSvMotdOut              []func(*messages7.SvMotd) bool
	GameSvBroadcastOut         []func(*messages7.SvBroadcast) bool
	GameSvChatOut              []func(*messages7.SvChat) bool
	GameSvTeamOut              []func(*messages7.SvTeam) bool
	GameSvKillMsgOut           []func(*messages7.SvKillMsg) bool
	GameSvTuneParamsOut        []func(*messages7.SvTuneParams) bool
	GameSvExtraProjectileOut   []func(*messages7.SvExtraProjectile) bool
	GameSvReadyToEnterOut      []func(*messages7.SvReadyToEnter) bool
	GameSvWeaponPickupOut      []func(*messages7.SvWeaponPickup) bool
	GameSvEmoticonOut          []func(*messages7.SvEmoticon) bool
	GameSvVoteClearOptionsOut  []func(*messages7.SvVoteClearOptions) bool
	GameSvVoteOptionListAddOut []func(*messages7.SvVoteOptionListAdd) bool
	GameSvVoteOptionAddOut     []func(*messages7.SvVoteOptionAdd) bool
	GameSvVoteOptionRemoveOut  []func(*messages7.SvVoteOptionRemove) bool
	GameSvVoteSetOut           []func(*messages7.SvVoteSet) bool
	GameSvVoteStatusOut        []func(*messages7.SvVoteStatus) bool
	GameSvServerSettingsOut    []func(*messages7.SvServerSettings) bool
	GameSvClientInfoOut        []func(*messages7.SvClientInfo) bool
	GameSvGameInfoOut          []func(*messages7.SvGameInfo) bool
	GameSvClientDropOut        []func(*messages7.SvClientDrop) bool
	GameSvGameMsgOut           []func(*messages7.SvGameMsg) bool
	GameDeClientEnterOut       []func(*messages7.DeClientEnter) bool
	GameDeClientLeaveOut       []func(*messages7.DeClientLeave) bool
	GameClSayOut               []func(*messages7.ClSay) bool
	GameClSetTeamOut           []func(*messages7.ClSetTeam) bool
	GameClSetSpectatorModeOut  []func(*messages7.ClSetSpectatorMode) bool
	GameClStartInfoOut         []func(*messages7.ClStartInfo) bool
	GameClKillOut              []func(*messages7.ClKill) bool
	GameClReadyChangeOut       []func(*messages7.ClReadyChange) bool
	GameClEmoticonOut          []func(*messages7.ClEmoticon) bool
	GameClVoteOut              []func(*messages7.ClVote) bool
	GameClCallVoteOut          []func(*messages7.ClCallVote) bool
	GameSvSkinChangeOut        []func(*messages7.SvSkinChange) bool
	GameClSkinChangeOut        []func(*messages7.ClSkinChange) bool
	GameSvRaceFinishOut        []func(*messages7.SvRaceFinish) bool
	GameSvCheckpointOut        []func(*messages7.SvCheckpoint) bool
	GameSvCommandInfoOut       []func(*messages7.SvCommandInfo) bool
	GameSvCommandInfoRemoveOut []func(*messages7.SvCommandInfoRemove) bool
	GameClCommandOut           []func(*messages7.ClCommand) bool

	// return false to drop the error (ignore it)
	//
	// return true to pass the error on and finally throw
	InternalError []func(error) error
	MsgUnknown    []func(*messages7.Unknown, DefaultAction) error
	Snapshot      []func(*snapshot7.Snapshot, DefaultAction) error

	CtrlKeepAlive []func(*messages7.CtrlKeepAlive, DefaultAction) error
	CtrlConnect   []func(*messages7.CtrlConnect, DefaultAction) error
	CtrlAccept    []func(*messages7.CtrlAccept, DefaultAction) error
	CtrlToken     []func(*messages7.CtrlToken, DefaultAction) error
	CtrlClose     []func(*messages7.CtrlClose, DefaultAction) error

	SysInfo            []func(*messages7.Info, DefaultAction) error
	SysMapChange       []func(*messages7.MapChange, DefaultAction) error
	SysMapData         []func(*messages7.MapData, DefaultAction) error
	SysServerInfo      []func(*messages7.ServerInfo, DefaultAction) error
	SysConReady        []func(*messages7.ConReady, DefaultAction) error
	SysSnap            []func(*messages7.Snap, DefaultAction) error
	SysSnapEmpty       []func(*messages7.SnapEmpty, DefaultAction) error
	SysSnapSingle      []func(*messages7.SnapSingle, DefaultAction) error
	SysSnapSmall       []func(*messages7.SnapSmall, DefaultAction) error
	SysInputTiming     []func(*messages7.InputTiming, DefaultAction) error
	SysRconAuthOn      []func(*messages7.RconAuthOn, DefaultAction) error
	SysRconAuthOff     []func(*messages7.RconAuthOff, DefaultAction) error
	SysRconLine        []func(*messages7.RconLine, DefaultAction) error
	SysRconCmdAdd      []func(*messages7.RconCmdAdd, DefaultAction) error
	SysRconCmdRem      []func(*messages7.RconCmdRem, DefaultAction) error
	SysAuthChallenge   []func(*messages7.AuthChallenge, DefaultAction) error
	SysAuthResult      []func(*messages7.AuthResult, DefaultAction) error
	SysReady           []func(*messages7.Ready, DefaultAction) error
	SysEnterGame       []func(*messages7.EnterGame, DefaultAction) error
	SysInput           []func(*messages7.Input, DefaultAction) error
	SysRconCmd         []func(*messages7.RconCmd, DefaultAction) error
	SysRconAuth        []func(*messages7.RconAuth, DefaultAction) error
	SysRequestMapData  []func(*messages7.RequestMapData, DefaultAction) error
	SysAuthStart       []func(*messages7.AuthStart, DefaultAction) error
	SysAuthResponse    []func(*messages7.AuthResponse, DefaultAction) error
	SysPing            []func(*messages7.Ping, DefaultAction) error
	SysPingReply       []func(*messages7.PingReply, DefaultAction) error
	SysError           []func(*messages7.Error, DefaultAction) error
	SysMaplistEntryAdd []func(*messages7.MaplistEntryAdd, DefaultAction) error
	SysMaplistEntryRem []func(*messages7.MaplistEntryRem, DefaultAction) error

	GameSvMotd              []func(*messages7.SvMotd, DefaultAction) error
	GameSvBroadcast         []func(*messages7.SvBroadcast, DefaultAction) error
	GameSvChat              []func(*messages7.SvChat, DefaultAction) error
	GameSvTeam              []func(*messages7.SvTeam, DefaultAction) error
	GameSvKillMsg           []func(*messages7.SvKillMsg, DefaultAction) error
	GameSvTuneParams        []func(*messages7.SvTuneParams, DefaultAction) error
	GameSvExtraProjectile   []func(*messages7.SvExtraProjectile, DefaultAction) error
	GameSvReadyToEnter      []func(*messages7.SvReadyToEnter, DefaultAction) error
	GameSvWeaponPickup      []func(*messages7.SvWeaponPickup, DefaultAction) error
	GameSvEmoticon          []func(*messages7.SvEmoticon, DefaultAction) error
	GameSvVoteClearOptions  []func(*messages7.SvVoteClearOptions, DefaultAction) error
	GameSvVoteOptionListAdd []func(*messages7.SvVoteOptionListAdd, DefaultAction) error
	GameSvVoteOptionAdd     []func(*messages7.SvVoteOptionAdd, DefaultAction) error
	GameSvVoteOptionRemove  []func(*messages7.SvVoteOptionRemove, DefaultAction) error
	GameSvVoteSet           []func(*messages7.SvVoteSet, DefaultAction) error
	GameSvVoteStatus        []func(*messages7.SvVoteStatus, DefaultAction) error
	GameSvServerSettings    []func(*messages7.SvServerSettings, DefaultAction) error
	GameSvClientInfo        []func(*messages7.SvClientInfo, DefaultAction) error
	GameSvGameInfo          []func(*messages7.SvGameInfo, DefaultAction) error
	GameSvClientDrop        []func(*messages7.SvClientDrop, DefaultAction) error
	GameSvGameMsg           []func(*messages7.SvGameMsg, DefaultAction) error
	GameDeClientEnter       []func(*messages7.DeClientEnter, DefaultAction) error
	GameDeClientLeave       []func(*messages7.DeClientLeave, DefaultAction) error
	GameClSay               []func(*messages7.ClSay, DefaultAction) error
	GameClSetTeam           []func(*messages7.ClSetTeam, DefaultAction) error
	GameClSetSpectatorMode  []func(*messages7.ClSetSpectatorMode, DefaultAction) error
	GameClStartInfo         []func(*messages7.ClStartInfo, DefaultAction) error
	GameClKill              []func(*messages7.ClKill, DefaultAction) error
	GameClReadyChange       []func(*messages7.ClReadyChange, DefaultAction) error
	GameClEmoticon          []func(*messages7.ClEmoticon, DefaultAction) error
	GameClVote              []func(*messages7.ClVote, DefaultAction) error
	GameClCallVote          []func(*messages7.ClCallVote, DefaultAction) error
	GameSvSkinChange        []func(*messages7.SvSkinChange, DefaultAction) error
	GameClSkinChange        []func(*messages7.ClSkinChange, DefaultAction) error
	GameSvRaceFinish        []func(*messages7.SvRaceFinish, DefaultAction) error
	GameSvCheckpoint        []func(*messages7.SvCheckpoint, DefaultAction) error
	GameSvCommandInfo       []func(*messages7.SvCommandInfo, DefaultAction) error
	GameSvCommandInfoRemove []func(*messages7.SvCommandInfoRemove, DefaultAction) error
	GameClCommand           []func(*messages7.ClCommand, DefaultAction) error
}

TODO: this should be a map but the type checker broke me

// key is the network7.MessageId UserMsgCallbacks map[int]UserMsgCallback

Jump to

Keyboard shortcuts

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