mirror of
https://github.com/MinetestForFun/irc_modpack.git
synced 2024-12-23 07:20:20 +01:00
add chatcommand to update IRC server ingame without update minetest.conf and reboot
This commit is contained in:
parent
cc23c43594
commit
378a841b7d
@ -124,3 +124,19 @@ minetest.chatcommands["me"].func = function(name, param, ...)
|
||||
irc:say(("* %s %s"):format(name, param))
|
||||
end
|
||||
|
||||
minetest.register_chatcommand("irc_change_server", {
|
||||
params = "<servername>",
|
||||
description = "Change the IRC server.",
|
||||
privs = {irc_admin=true},
|
||||
func = function(name, param)
|
||||
if param == "" then
|
||||
minetest.chat_send_player(name, "Missing argument servername")
|
||||
return
|
||||
end
|
||||
irc.config.server = param
|
||||
irc.save_config()
|
||||
minetest.chat_send_player(name, "New server IRC is \"".. param.."\".")
|
||||
minetest.chat_send_player(name, "type \"/irc_reconnect\" to reconnect IRC.")
|
||||
end
|
||||
})
|
||||
|
||||
|
@ -57,3 +57,33 @@ if not irc.config.nick then
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
local config_file = minetest.get_worldpath() .. "/irc.txt"
|
||||
|
||||
function irc.save_config()
|
||||
local input, err = io.open(config_file, "w")
|
||||
if input then
|
||||
local conf = {server = irc.config.server}
|
||||
input:write(minetest.serialize(conf))
|
||||
input:close()
|
||||
else
|
||||
minetest.log("error", "open(" .. config_file .. ", 'w') failed: " .. err)
|
||||
end
|
||||
end
|
||||
|
||||
function irc.load_config()
|
||||
local file = io.open(config_file, "r")
|
||||
local settings = {}
|
||||
if file then
|
||||
settings = minetest.deserialize(file:read("*all"))
|
||||
file:close()
|
||||
if settings and type(settings) == "table" then
|
||||
if settings["server"] ~= nil then
|
||||
irc.config.server = settings["server"]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
irc.load_config()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user