You must specify admin name in minetest.conf to be able join server and setup allowed players.
For changing this setup use /allow <nickname> command. If you want someone to refuse playing on server just use /disallow <nickname> or delete him from allow.conf in your world directory. For these commands basic_privs are required.
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
- Code: Select all
local config_file = minetest.get_worldpath().."/allow.conf"
--in case of not existant config file, it
--will create it
local file_desc = io.open(config_file, "a")
file_desc:close()
local config = Settings(config_file)
local admin_name = minetest.setting_get("name")
if admin_name ~= nil then
config:set(admin_name, "true")
config:write()
end
minetest.register_chatcommand("allow", {
param = "allow <nickname>",
privs = {basic_privs=true},
description = "Allows joining for specified nickname.",
func = function(name, param)
local player = minetest.get_player_by_name(name)
if not player then
return
end
-- Handling parameter
if param == "" then
minetest.chat_send_player(name, "You must provide nickname to allow.");
return
else
config:set(param, "true")
config:write()
minetest.chat_send_player(name, param.." is now allowed to join server.");
return
end
end
})
minetest.register_chatcommand("disallow", {
param = "disallow <nickname>",
privs = {basic_privs=true},
description = "Disallows joining for specified nickname.",
func = function(name, param)
local player = minetest.get_player_by_name(name)
if not player then
return
end
-- Handling parameter
if param == "" then
minetest.chat_send_player(name, "You must provide nickname to disallow.");
return
else
config:set(param, "false")
config:write()
minetest.chat_send_player(name, param.." is now not allowed to join server.");
return
end
end
})
minetest.register_on_prejoinplayer(function(name, ip)
local joining = config:get_bool(name)
if joining == nil or joining == false then
minetest.chat_send_all("-!- Server "..name.." tried to join server.")
return "Sorry you need permission to join this server."
end
end)
Licence: WTFPL
Dependency: default
This mod was written in 10 minutes, so coding style is not perfect.
EDIT: Fixed privs handling. TY Krock