53 lines
1.4 KiB
Go
53 lines
1.4 KiB
Go
package multiserver
|
|
|
|
import "github.com/yuin/gopher-lua"
|
|
|
|
var l *lua.LState
|
|
var api_funcs *lua.LTable
|
|
|
|
func InitLua() {
|
|
l = lua.NewState()
|
|
|
|
api_funcs = l.NewTable()
|
|
l.SetGlobal("multiserver", api_funcs)
|
|
|
|
// redirect
|
|
addLuaFunc(redirect, "redirect")
|
|
addLuaFunc(getServers, "get_servers")
|
|
addLuaFunc(registerOnRedirectDone, "register_on_redirect_done")
|
|
// player
|
|
addLuaFunc(getPlayerName, "get_player_name")
|
|
addLuaFunc(luaGetPeerID, "get_peer_id")
|
|
addLuaFunc(kickPlayer, "kick_player")
|
|
addLuaFunc(getCurrentServer, "get_current_server")
|
|
addLuaFunc(getPlayerAddress, "get_player_address")
|
|
addLuaFunc(getConnectedPlayers, "get_connected_players")
|
|
addLuaFunc(registerOnJoinPlayer, "register_on_joinplayer")
|
|
addLuaFunc(registerOnLeavePlayer, "register_on_leaveplayer")
|
|
// log
|
|
addLuaFunc(luaLog, "log")
|
|
// string
|
|
addLuaFunc(luaStringSplit, "split")
|
|
// end
|
|
addLuaFunc(luaEnd, "request_end")
|
|
// privileges
|
|
addLuaFunc(getPlayerPrivs, "get_player_privs")
|
|
addLuaFunc(setPlayerPrivs, "set_player_privs")
|
|
addLuaFunc(checkPlayerPrivs, "check_player_privs")
|
|
// config
|
|
addLuaFunc(luaGetConfKey, "get_conf_key")
|
|
// storage
|
|
addLuaFunc(setStorageKey, "set_storage_key")
|
|
addLuaFunc(getStorageKey, "get_storage_key")
|
|
// after
|
|
addLuaFunc(luaAfter, "after")
|
|
}
|
|
|
|
func CloseLua() {
|
|
l.Close()
|
|
}
|
|
|
|
func addLuaFunc(f func(*lua.LState) int, name string) {
|
|
api_funcs.RawSet(lua.LString(name), l.NewFunction(f))
|
|
}
|