Versions in this module Expand all Collapse all v0 v0.0.1 Jan 2, 2025 Changes in this version + const UnknownClientId + var ErrProcessGameTickFailed = errors.New("failed to process game tick") + var ErrProcessPacketFailed = errors.New("failed to process packet") + var ErrUnpackPacketFailed = errors.New("failed to unpack packet") + type Client struct + Callbacks UserMsgCallbacks + CancelCause context.CancelCauseFunc + Clan string + Conn net.Conn + Country int + Ctx context.Context + Game Game + LastInputSend time.Time + LastSend time.Time + LocalClientId int + Name string + QueuedMessages []messages7.NetMessage + Session protocol7.Session + SnapshotStorage *snapshot7.Storage + func NewClient() *Client + func (client *Client) Aim(x int, y int) + func (client *Client) Connect(serverIp string, serverPort int) error + func (client *Client) ConnectContext(ctx context.Context, serverIp string, serverPort int) (err error) + func (client *Client) CreateAltSnap(oldSnap *snapshot7.Snapshot, newSnap *snapshot7.Snapshot) *snapshot7.Snapshot + func (client *Client) Fire() + func (client *Client) Hook() + func (client *Client) Jump() + func (client *Client) Left() + func (client *Client) OnAccept(callback func(msg *messages7.CtrlAccept, defaultAction DefaultAction) error) + func (client *Client) OnBroadcast(callback func(msg *messages7.SvBroadcast, defaultAction DefaultAction) error) + func (client *Client) OnChat(callback func(msg *messages7.SvChat, defaultAction DefaultAction) error) + func (client *Client) OnCheckpoint(callback func(msg *messages7.SvCheckpoint, defaultAction DefaultAction) error) + func (client *Client) OnClientDrop(callback func(msg *messages7.SvClientDrop, defaultAction DefaultAction) error) + func (client *Client) OnClientInfo(callback func(msg *messages7.SvClientInfo, defaultAction DefaultAction) error) + func (client *Client) OnCommandInfo(callback func(msg *messages7.SvCommandInfo, defaultAction DefaultAction) error) + func (client *Client) OnCommandInfoRemove(...) + func (client *Client) OnDisconnect(callback func(msg *messages7.CtrlClose, defaultAction DefaultAction) error) + func (client *Client) OnEmoticon(callback func(msg *messages7.SvEmoticon, defaultAction DefaultAction) error) + func (client *Client) OnError(callback func(err error) error) + func (client *Client) OnExtraProjectile(...) + func (client *Client) OnGameInfo(callback func(msg *messages7.SvGameInfo, defaultAction DefaultAction) error) + func (client *Client) OnGameMsg(callback func(msg *messages7.SvGameMsg, defaultAction DefaultAction) error) + func (client *Client) OnKeepAlive(callback func(msg *messages7.CtrlKeepAlive, defaultAction DefaultAction) error) + func (client *Client) OnKillMsg(callback func(msg *messages7.SvKillMsg, defaultAction DefaultAction) error) + func (client *Client) OnMapChange(callback func(msg *messages7.MapChange, defaultAction DefaultAction) error) + func (client *Client) OnMotd(callback func(msg *messages7.SvMotd, defaultAction DefaultAction) error) + func (client *Client) OnMsgSnap(callback func(msg *messages7.Snap, defaultAction DefaultAction) error) + func (client *Client) OnMsgSnapEmpty(callback func(msg *messages7.SnapEmpty, defaultAction DefaultAction) error) + func (client *Client) OnMsgSnapSingle(callback func(msg *messages7.SnapSingle, defaultAction DefaultAction) error) + func (client *Client) OnMsgSnapSmall(callback func(msg *messages7.SnapSmall, defaultAction DefaultAction) error) + func (client *Client) OnPacket(callback func(packet *protocol7.Packet) bool) + func (client *Client) OnRaceFinish(callback func(msg *messages7.SvRaceFinish, defaultAction DefaultAction) error) + func (client *Client) OnReadyToEnter(...) + func (client *Client) OnSendCallVote(callback func(msg *messages7.ClCallVote) bool) + func (client *Client) OnSendCommand(callback func(msg *messages7.ClCommand) bool) + func (client *Client) OnSendConReady(callback func(msg *messages7.ConReady) bool) + func (client *Client) OnSendEmoticon(callback func(msg *messages7.ClEmoticon) bool) + func (client *Client) OnSendEnterGame(callback func(msg *messages7.EnterGame) bool) + func (client *Client) OnSendInfo(callback func(msg *messages7.Info) bool) + func (client *Client) OnSendInput(callback func(msg *messages7.Input) bool) + func (client *Client) OnSendInputTiming(callback func(msg *messages7.InputTiming) bool) + func (client *Client) OnSendKill(callback func(msg *messages7.ClKill) bool) + func (client *Client) OnSendPacket(callback func(packet *protocol7.Packet) bool) + func (client *Client) OnSendPing(callback func(msg *messages7.Ping) bool) + func (client *Client) OnSendPingReply(callback func(msg *messages7.PingReply) bool) + func (client *Client) OnSendRconAuth(callback func(msg *messages7.RconAuth) bool) + func (client *Client) OnSendRconCmd(callback func(msg *messages7.RconCmd) bool) + func (client *Client) OnSendReady(callback func(msg *messages7.Ready) bool) + func (client *Client) OnSendReadyChange(callback func(msg *messages7.ClReadyChange) bool) + func (client *Client) OnSendRequestMapData(callback func(msg *messages7.RequestMapData) bool) + func (client *Client) OnSendSay(callback func(msg *messages7.ClSay) bool) + func (client *Client) OnSendSetSpectatorMode(callback func(msg *messages7.ClSetSpectatorMode) bool) + func (client *Client) OnSendSetTeam(callback func(msg *messages7.ClSetTeam) bool) + func (client *Client) OnSendSkinChange(callback func(msg *messages7.ClSkinChange) bool) + func (client *Client) OnSendStartInfo(callback func(msg *messages7.ClStartInfo) bool) + func (client *Client) OnSendVote(callback func(msg *messages7.ClVote) bool) + func (client *Client) OnServerInfo(callback func(msg *messages7.ServerInfo, defaultAction DefaultAction) error) + func (client *Client) OnServerSettings(...) + func (client *Client) OnSkinChange(callback func(msg *messages7.SvSkinChange, defaultAction DefaultAction) error) + func (client *Client) OnSnapshot(callback func(snap *snapshot7.Snapshot, defaultAction DefaultAction) error) + func (client *Client) OnTeam(callback func(msg *messages7.SvTeam, defaultAction DefaultAction) error) + func (client *Client) OnTick(callback func(defaultAction DefaultAction) error) + func (client *Client) OnToken(callback func(msg *messages7.CtrlToken, defaultAction DefaultAction) error) + func (client *Client) OnTuneParams(callback func(msg *messages7.SvTuneParams, defaultAction DefaultAction) error) + func (client *Client) OnUnknown(callback func(msg *messages7.Unknown, defaultAction DefaultAction) error) + func (client *Client) OnVoteClearoptions(...) + func (client *Client) OnVoteOptionlistadd(...) + func (client *Client) OnVoteOptionremove(...) + func (client *Client) OnVotePptionadd(...) + func (client *Client) OnVoteSet(callback func(msg *messages7.SvVoteSet, defaultAction DefaultAction) error) + func (client *Client) OnVoteStatus(callback func(msg *messages7.SvVoteStatus, defaultAction DefaultAction) error) + func (client *Client) OnWeaponPickup(...) + func (client *Client) Right() + func (client *Client) SendChat(msg string) error + func (client *Client) SendChatTeam(msg string) error + func (client *Client) SendInput() error + func (client *Client) SendKeepAlive() error + func (client *Client) SendMessage(msg messages7.NetMessage) (err error) + func (client *Client) SendPacket(packet *protocol7.Packet) (err error) + func (client *Client) SendWhisper(targetId int, msg string) error + func (client *Client) SnapFindCharacter(clientId int) (character *object7.Character, found bool, err error) + func (client *Client) Stop() + type DefaultAction func() error + type DisconnectError struct + Reason string + func (e DisconnectError) Error() string + type Game struct + Input *messages7.Input + LastSentInput messages7.Input + Players []Player + Snap *GameSnap + type GameSnap struct + Characters []*object7.Character + Damages []*object7.Damage + DeClientInfos []*object7.DeClientInfo + DeGameInfos []*object7.DeGameInfo + DeTuneParamss []*object7.DeTuneParams + Deaths []*object7.Death + Explosions []*object7.Explosion + Flags []*object7.Flag + GameDataFlags []*object7.GameDataFlag + GameDataRaces []*object7.GameDataRace + GameDataTeams []*object7.GameDataTeam + GameDatas []*object7.GameData + HammerHits []*object7.HammerHit + Lasers []*object7.Laser + Pickups []*object7.Pickup + PlayerInfoRaces []*object7.PlayerInfoRace + PlayerInfos []*object7.PlayerInfo + PlayerInputs []*object7.PlayerInput + Projectiles []*object7.Projectile + SoundWorlds []*object7.SoundWorld + Spawns []*object7.Spawn + SpectatorInfos []*object7.SpectatorInfo + Unknowns []*object7.Unknown + type Player struct + Info messages7.SvClientInfo + type UserMsgCallbacks struct + CtrlAccept []func(*messages7.CtrlAccept, DefaultAction) error + CtrlAcceptOut []func(*messages7.CtrlAccept) bool + CtrlClose []func(*messages7.CtrlClose, DefaultAction) error + CtrlCloseOut []func(*messages7.CtrlClose) bool + CtrlConnect []func(*messages7.CtrlConnect, DefaultAction) error + CtrlConnectOut []func(*messages7.CtrlConnect) bool + CtrlKeepAlive []func(*messages7.CtrlKeepAlive, DefaultAction) error + CtrlKeepAliveOut []func(*messages7.CtrlKeepAlive) bool + CtrlToken []func(*messages7.CtrlToken, DefaultAction) error + CtrlTokenOut []func(*messages7.CtrlToken) bool + GameClCallVote []func(*messages7.ClCallVote, DefaultAction) error + GameClCallVoteOut []func(*messages7.ClCallVote) bool + GameClCommand []func(*messages7.ClCommand, DefaultAction) error + GameClCommandOut []func(*messages7.ClCommand) bool + GameClEmoticon []func(*messages7.ClEmoticon, DefaultAction) error + GameClEmoticonOut []func(*messages7.ClEmoticon) bool + GameClKill []func(*messages7.ClKill, DefaultAction) error + GameClKillOut []func(*messages7.ClKill) bool + GameClReadyChange []func(*messages7.ClReadyChange, DefaultAction) error + GameClReadyChangeOut []func(*messages7.ClReadyChange) bool + GameClSay []func(*messages7.ClSay, DefaultAction) error + GameClSayOut []func(*messages7.ClSay) bool + GameClSetSpectatorMode []func(*messages7.ClSetSpectatorMode, DefaultAction) error + GameClSetSpectatorModeOut []func(*messages7.ClSetSpectatorMode) bool + GameClSetTeam []func(*messages7.ClSetTeam, DefaultAction) error + GameClSetTeamOut []func(*messages7.ClSetTeam) bool + GameClSkinChange []func(*messages7.ClSkinChange, DefaultAction) error + GameClSkinChangeOut []func(*messages7.ClSkinChange) bool + GameClStartInfo []func(*messages7.ClStartInfo, DefaultAction) error + GameClStartInfoOut []func(*messages7.ClStartInfo) bool + GameClVote []func(*messages7.ClVote, DefaultAction) error + GameClVoteOut []func(*messages7.ClVote) bool + GameDeClientEnter []func(*messages7.DeClientEnter, DefaultAction) error + GameDeClientEnterOut []func(*messages7.DeClientEnter) bool + GameDeClientLeave []func(*messages7.DeClientLeave, DefaultAction) error + GameDeClientLeaveOut []func(*messages7.DeClientLeave) bool + GameSvBroadcast []func(*messages7.SvBroadcast, DefaultAction) error + GameSvBroadcastOut []func(*messages7.SvBroadcast) bool + GameSvChat []func(*messages7.SvChat, DefaultAction) error + GameSvChatOut []func(*messages7.SvChat) bool + GameSvCheckpoint []func(*messages7.SvCheckpoint, DefaultAction) error + GameSvCheckpointOut []func(*messages7.SvCheckpoint) bool + GameSvClientDrop []func(*messages7.SvClientDrop, DefaultAction) error + GameSvClientDropOut []func(*messages7.SvClientDrop) bool + GameSvClientInfo []func(*messages7.SvClientInfo, DefaultAction) error + GameSvClientInfoOut []func(*messages7.SvClientInfo) bool + GameSvCommandInfo []func(*messages7.SvCommandInfo, DefaultAction) error + GameSvCommandInfoOut []func(*messages7.SvCommandInfo) bool + GameSvCommandInfoRemove []func(*messages7.SvCommandInfoRemove, DefaultAction) error + GameSvCommandInfoRemoveOut []func(*messages7.SvCommandInfoRemove) bool + GameSvEmoticon []func(*messages7.SvEmoticon, DefaultAction) error + GameSvEmoticonOut []func(*messages7.SvEmoticon) bool + GameSvExtraProjectile []func(*messages7.SvExtraProjectile, DefaultAction) error + GameSvExtraProjectileOut []func(*messages7.SvExtraProjectile) bool + GameSvGameInfo []func(*messages7.SvGameInfo, DefaultAction) error + GameSvGameInfoOut []func(*messages7.SvGameInfo) bool + GameSvGameMsg []func(*messages7.SvGameMsg, DefaultAction) error + GameSvGameMsgOut []func(*messages7.SvGameMsg) bool + GameSvKillMsg []func(*messages7.SvKillMsg, DefaultAction) error + GameSvKillMsgOut []func(*messages7.SvKillMsg) bool + GameSvMotd []func(*messages7.SvMotd, DefaultAction) error + GameSvMotdOut []func(*messages7.SvMotd) bool + GameSvRaceFinish []func(*messages7.SvRaceFinish, DefaultAction) error + GameSvRaceFinishOut []func(*messages7.SvRaceFinish) bool + GameSvReadyToEnter []func(*messages7.SvReadyToEnter, DefaultAction) error + GameSvReadyToEnterOut []func(*messages7.SvReadyToEnter) bool + GameSvServerSettings []func(*messages7.SvServerSettings, DefaultAction) error + GameSvServerSettingsOut []func(*messages7.SvServerSettings) bool + GameSvSkinChange []func(*messages7.SvSkinChange, DefaultAction) error + GameSvSkinChangeOut []func(*messages7.SvSkinChange) bool + GameSvTeam []func(*messages7.SvTeam, DefaultAction) error + GameSvTeamOut []func(*messages7.SvTeam) bool + GameSvTuneParams []func(*messages7.SvTuneParams, DefaultAction) error + GameSvTuneParamsOut []func(*messages7.SvTuneParams) bool + GameSvVoteClearOptions []func(*messages7.SvVoteClearOptions, DefaultAction) error + GameSvVoteClearOptionsOut []func(*messages7.SvVoteClearOptions) bool + GameSvVoteOptionAdd []func(*messages7.SvVoteOptionAdd, DefaultAction) error + GameSvVoteOptionAddOut []func(*messages7.SvVoteOptionAdd) bool + GameSvVoteOptionListAdd []func(*messages7.SvVoteOptionListAdd, DefaultAction) error + GameSvVoteOptionListAddOut []func(*messages7.SvVoteOptionListAdd) bool + GameSvVoteOptionRemove []func(*messages7.SvVoteOptionRemove, DefaultAction) error + GameSvVoteOptionRemoveOut []func(*messages7.SvVoteOptionRemove) bool + GameSvVoteSet []func(*messages7.SvVoteSet, DefaultAction) error + GameSvVoteSetOut []func(*messages7.SvVoteSet) bool + GameSvVoteStatus []func(*messages7.SvVoteStatus, DefaultAction) error + GameSvVoteStatusOut []func(*messages7.SvVoteStatus) bool + GameSvWeaponPickup []func(*messages7.SvWeaponPickup, DefaultAction) error + GameSvWeaponPickupOut []func(*messages7.SvWeaponPickup) bool + InternalError []func(error) error + MessageOut []func(*messages7.NetMessage) bool + MsgUnknown []func(*messages7.Unknown, DefaultAction) error + PacketIn []func(*protocol7.Packet) bool + PacketOut []func(*protocol7.Packet) bool + Snapshot []func(*snapshot7.Snapshot, DefaultAction) error + SysAuthChallenge []func(*messages7.AuthChallenge, DefaultAction) error + SysAuthChallengeOut []func(*messages7.AuthChallenge) bool + SysAuthResponse []func(*messages7.AuthResponse, DefaultAction) error + SysAuthResponseOut []func(*messages7.AuthResponse) bool + SysAuthResult []func(*messages7.AuthResult, DefaultAction) error + SysAuthResultOut []func(*messages7.AuthResult) bool + SysAuthStart []func(*messages7.AuthStart, DefaultAction) error + SysAuthStartOut []func(*messages7.AuthStart) bool + SysConReady []func(*messages7.ConReady, DefaultAction) error + SysConReadyOut []func(*messages7.ConReady) bool + SysEnterGame []func(*messages7.EnterGame, DefaultAction) error + SysEnterGameOut []func(*messages7.EnterGame) bool + SysError []func(*messages7.Error, DefaultAction) error + SysErrorOut []func(*messages7.Error) bool + SysInfo []func(*messages7.Info, DefaultAction) error + SysInfoOut []func(*messages7.Info) bool + SysInput []func(*messages7.Input, DefaultAction) error + SysInputOut []func(*messages7.Input) bool + SysInputTiming []func(*messages7.InputTiming, DefaultAction) error + SysInputTimingOut []func(*messages7.InputTiming) bool + SysMapChange []func(*messages7.MapChange, DefaultAction) error + SysMapChangeOut []func(*messages7.MapChange) bool + SysMapData []func(*messages7.MapData, DefaultAction) error + SysMapDataOut []func(*messages7.MapData) bool + SysMaplistEntryAdd []func(*messages7.MaplistEntryAdd, DefaultAction) error + SysMaplistEntryAddOut []func(*messages7.MaplistEntryAdd) bool + SysMaplistEntryRem []func(*messages7.MaplistEntryRem, DefaultAction) error + SysMaplistEntryRemOut []func(*messages7.MaplistEntryRem) bool + SysPing []func(*messages7.Ping, DefaultAction) error + SysPingOut []func(*messages7.Ping) bool + SysPingReply []func(*messages7.PingReply, DefaultAction) error + SysPingReplyOut []func(*messages7.PingReply) bool + SysRconAuth []func(*messages7.RconAuth, DefaultAction) error + SysRconAuthOff []func(*messages7.RconAuthOff, DefaultAction) error + SysRconAuthOffOut []func(*messages7.RconAuthOff) bool + SysRconAuthOn []func(*messages7.RconAuthOn, DefaultAction) error + SysRconAuthOnOut []func(*messages7.RconAuthOn) bool + SysRconAuthOut []func(*messages7.RconAuth) bool + SysRconCmd []func(*messages7.RconCmd, DefaultAction) error + SysRconCmdAdd []func(*messages7.RconCmdAdd, DefaultAction) error + SysRconCmdAddOut []func(*messages7.RconCmdAdd) bool + SysRconCmdOut []func(*messages7.RconCmd) bool + SysRconCmdRem []func(*messages7.RconCmdRem, DefaultAction) error + SysRconCmdRemOut []func(*messages7.RconCmdRem) bool + SysRconLine []func(*messages7.RconLine, DefaultAction) error + SysRconLineOut []func(*messages7.RconLine) bool + SysReady []func(*messages7.Ready, DefaultAction) error + SysReadyOut []func(*messages7.Ready) bool + SysRequestMapData []func(*messages7.RequestMapData, DefaultAction) error + SysRequestMapDataOut []func(*messages7.RequestMapData) bool + SysServerInfo []func(*messages7.ServerInfo, DefaultAction) error + SysServerInfoOut []func(*messages7.ServerInfo) bool + SysSnap []func(*messages7.Snap, DefaultAction) error + SysSnapEmpty []func(*messages7.SnapEmpty, DefaultAction) error + SysSnapEmptyOut []func(*messages7.SnapEmpty) bool + SysSnapOut []func(*messages7.Snap) bool + SysSnapSingle []func(*messages7.SnapSingle, DefaultAction) error + SysSnapSingleOut []func(*messages7.SnapSingle) bool + SysSnapSmall []func(*messages7.SnapSmall, DefaultAction) error + SysSnapSmallOut []func(*messages7.SnapSmall) bool + Tick []func(DefaultAction) error