Documentation ¶
Index ¶
- Constants
- Variables
- func ChatSendAll(msg string)
- func End(crash, reconnect bool)
- func GetConfKey(key string) interface{}
- func GetPeerCount() int
- func GetStorageKey(key string) (string, error)
- func Init(p, p2 *Peer, ignMedia, noAccessDenied bool, fin chan *Peer)
- func IsOnline(name string) bool
- func Proxy(src, dst *Peer)
- func RegisterChatCommand(name string, privs map[string]bool, function func(*Peer, string))
- func RegisterOnChatMessage(function func(*Peer, string) bool)
- func RegisterOnJoinPlayer(function func(*Peer))
- func RegisterOnLeavePlayer(function func(*Peer))
- func RegisterOnRedirectDone(function func(*Peer, string, bool))
- func RegisterOnServerChatMessage(function func(*Peer, string) bool)
- func RegisterServerChatCommand(name string, function func(*Peer, string))
- func SetListener(l *Listener)
- func SetStorageKey(key, value string) error
- type Listener
- type Peer
- func (p *Peer) CheckPrivs(req map[string]bool) (bool, error)
- func (p *Peer) Forward() bool
- func (p *Peer) GetPrivs() (map[string]bool, error)
- func (p *Peer) Redirect(newsrv string) error
- func (p *Peer) SendChatMsg(msg string)
- func (p *Peer) Server() *Peer
- func (p *Peer) ServerName() string
- func (p *Peer) SetPrivs(privs map[string]bool) error
- func (p *Peer) SetServer(s *Peer)
- func (p *Peer) Username() string
Constants ¶
const ( AuthMechSRP = 0x00000002 AuthMechFirstSRP = 0x00000004 )
const ( ChatCommandPrefix = "#" ServerChatCommandPrefix = ":" )
const ( ToClientHello = 0x02 ToClientAuthAccept = 0x03 ToClientAcceptSudoMode = 0x04 ToClientDenySudoMode = 0x05 ToClientAccessDenied = 0x0A ToClientBlockdata = 0x20 ToClientAddNode = 0x21 ToClientRemoveNode = 0x22 ToClientInventory = 0x27 ToClientTimeOfDay = 0x29 ToClientCsmRestrictionFlags = 0x2A ToClientPlayerSpeed = 0x2B ToClientMediaPush = 0x2C ToClientChatMessage = 0x2F ToClientActiveObjectRemoveAdd = 0x31 ToClientActiveObjectMessages = 0x32 ToClientHp = 0x33 ToClientMovePlayer = 0x34 ToClientFov = 0x36 ToClientDeathscreen = 0x37 ToClientMedia = 0x38 ToClientTooldef = 0x39 ToClientNodedef = 0x3A ToClientCraftitemdef = 0x3B ToClientAnnounceMedia = 0x3C ToClientItemdef = 0x3D ToClientPlaySound = 0x3F ToClientStopSound = 0x40 ToClientPrivileges = 0x41 ToClientInventoryFormspec = 0x42 ToClientDetachedInventory = 0x43 ToClientShowFormspec = 0x44 ToClientMovement = 0x45 ToClientSpawnParticle = 0x46 ToClientAddParticlespawner = 0x47 ToClientHudAdd = 0x49 ToClientHudRm = 0x4A ToClientHudChange = 0x4B ToClientHudSetFlags = 0x4C ToClientHudSetParam = 0x4D ToClientBreath = 0x4E ToClientSetSky = 0x4F ToClientOverrideDayNightRatio = 0x50 ToClientLocalPlayerAnimations = 0x51 ToClientEyeOffset = 0x52 ToClientDeleteParticlespawner = 0x53 ToClientCloudParams = 0x54 ToClientFadeSound = 0x55 ToClientUpdatePlayerList = 0x56 ToClientModchannelMsg = 0x57 ToClientModchannelSignal = 0x58 ToClientNodeMetaChanged = 0x59 ToClientSetSun = 0x5A ToClientSetMoon = 0x5B ToClientSetStars = 0x5C ToClientSrpBytesSB = 0x60 ToClientFormspecPrepend = 0x61 ToClientMinimapModes = 0x62 )
const ( ToServerInit = 0x02 ToServerInit2 = 0x11 ToServerModchannelJoin = 0x17 ToServerModchannelLeave = 0x18 ToServerModchannelMsg = 0x19 ToServerPlayerPos = 0x23 ToServerGotblocks = 0x24 ToServerDeletedblocks = 0x25 ToServerInventoryAction = 0x31 ToServerChatMessage = 0x32 ToServerDamage = 0x35 ToServerPlayerItem = 0x37 ToServerRespawn = 0x38 ToServerInteract = 0x39 ToServerRemovedSounds = 0x3A ToServerNodeMetaFields = 0x3B ToServerInventoryFields = 0x3C ToServerRequestMedia = 0x40 ToServerClientReady = 0x43 ToServerFirstSrp = 0x50 ToServerSrpBytesA = 0x51 ToServerSrpBytesM = 0x52 )
const ( AccessDeniedWrongPassword = iota AccessDeniedUnexpectedData AccessDeniedSingleplayer AccessDeniedWrongVersion AccessDeniedWrongCharsInName AccessDeniedWrongName AccessDeniedTooManyUsers AccessDeniedEmptyPassword AccessDeniedAlreadyConnected AccessDeniedServerFail AccessDeniedCustomString AccessDeniedShutdown AccessDeniedCrash )
Variables ¶
var ErrAlreadyConnected = errors.New("already connected to server")
var ErrAuthFailed = errors.New("authentication failure")
var ErrPlayerLimitReached = errors.New("player limit reached")
var ErrServerDoesNotExist = errors.New("server doesn't exist")
var ErrServerUnreachable = errors.New("server is unreachable")
Functions ¶
func ChatSendAll ¶
func ChatSendAll(msg string)
ChatSendAll sends a chat message to all connected client Peers
func GetConfKey ¶
func GetConfKey(key string) interface{}
GetConfKey returns a key in the configuration
func GetPeerCount ¶
func GetPeerCount() int
GetPeerCount reports how many client Peers are connected
func GetStorageKey ¶
GetStorageKey gets an entry in the storage database
func Init ¶
Init authenticates to the server srv and finishes the initialisation process if ignMedia is true
func RegisterChatCommand ¶
RegisterChatCommand registers a callback function that is called when a client executes the command and has the required privileges
func RegisterOnChatMessage ¶
RegisterOnChatMessage registers a callback function that is called when a client sends a chat message If a callback function returns true the message is not forwarded to the minetest server
func RegisterOnJoinPlayer ¶
func RegisterOnJoinPlayer(function func(*Peer))
RegisterOnJoinPlayer registers a callback function that is called when a TOSERVER_CLIENT_READY pkt is received from the Peer
func RegisterOnLeavePlayer ¶
func RegisterOnLeavePlayer(function func(*Peer))
RegisterOnLeavePlayer registers a callback function that is called when a client Peer disconnects
func RegisterOnRedirectDone ¶
RegisterOnRedirectDone registers a callback function that is called when the Peer.Redirect method exits
func RegisterOnServerChatMessage ¶
RegisterOnServerChatMessage registers a callback function that is called when a server sends a chat message If a callback function returns true the message is not forwarded to the minetest clients
func RegisterServerChatCommand ¶
RegisterServerChatCommand registers a callback function that is called when a server executes the command
func SetListener ¶
func SetListener(l *Listener)
SetListener is used to make a listener available globally This can only be done once
func SetStorageKey ¶
SetStorageKey sets an entry in the storage database
Types ¶
type Listener ¶
func Listen ¶
func Listen(conn net.PacketConn) *Listener
func (*Listener) Accept ¶
Accept waits for and returns a connecting Peer You should keep calling this until it returns ErrClosed so it doesn't leak a goroutine
func (*Listener) GetPeerByUsername ¶
GetPeerByUsername returns the Peer that is using name for authentication
type Peer ¶
A Peer is a connection to a client or server
func (*Peer) CheckPrivs ¶
CheckPrivs reports if the Peer has all ofthe specified privileges
func (*Peer) SendChatMsg ¶
SendChatMsg sends a chat message to the Peer if it isn't a server
func (*Peer) ServerName ¶
ServerName returns the name of the Peer this Peer is connected to if this Peer is not a server
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Multiserver is a multi-server minetest reverse proxy capable of media multiplexing
|
Multiserver is a multi-server minetest reverse proxy capable of media multiplexing |