Skip to content

package master_server

import "kaiju/network/master_server"

Constants

MaxPasswordSize

16

ErrorNone

Error(iota)

ErrorIncorrectPassword

ErrorServerDoesntExist

RequestTypeRegisterServer

MasterServerRequestType(iota)

RequestTypeUnregisterServer

RequestTypePing

RequestTypeServerList

RequestTypeJoinServer

ResponseTypeConfirmRegister

MasterServerResponseType(iota)

ResponseTypeServerList

ResponseTypeJoinServerInfo

ResponseTypeClientJoinInfo

ResponseTypeError

Types

Error

uint8

type Error = uint8

MasterServer

struct

type MasterServer struct {
    // Has unexported fields.
}

New

func New(updater *engine.Updater) (*MasterServer, error)

MasterServerClient

struct

type MasterServerClient struct {
    OnServerList func([]ResponseServerList, uint32)
    OnServerJoin func(string)
    OnClientJoin func(string)
    OnError      func(uint8)
    // Has unexported fields.
}

MasterServerClient.Connect

func (c *MasterServerClient) Connect(updater *engine.Updater) error

MasterServerClient.Disconnect

func (c *MasterServerClient) Disconnect(updater *engine.Updater)

MasterServerClient.JoinServer

func (c *MasterServerClient) JoinServer(id uint64) error

MasterServerClient.ListServers

func (c *MasterServerClient) ListServers(game string) error

MasterServerClient.RegisterServer

func (c *MasterServerClient) RegisterServer(game, name string, maxPlayers, currentPlayers uint16) error

MasterServerRequestType

uint8

type MasterServerRequestType = uint8

MasterServerResponseType

uint8

type MasterServerResponseType = uint8

Request

struct

type Request struct {
    Game           [gameKeySize]byte
    Name           [gameNameSize]byte
    Password       [MaxPasswordSize]byte
    ServerId       uint64
    MaxPlayers     uint16
    CurrentPlayers uint16
    Type           MasterServerRequestType
}

DeserializeRequest

func DeserializeRequest(buffer []byte) Request

Request.Serialize

func (r *Request) Serialize(buffer []byte)

Response

struct

type Response struct {
    Type      MasterServerResponseType
    List      [serversPerResponse]ResponseServerList
    Address   [addressMaxLen]byte
    TotalList uint32
    Error     uint8
}

DeserializeResponse

func DeserializeResponse(buffer []byte) Response

Response.Serialize

func (r Response) Serialize(buffer []byte) []byte

ResponseServerList

struct

type ResponseServerList struct {
    Name           [gameNameSize]byte
    Id             uint64
    MaxPlayers     uint16
    CurrentPlayers uint16
}

ServerListing

struct

type ServerListing struct {
    // Has unexported fields.
}