2021-03-15 18:08:06 -06:00

114 lines
3.0 KiB
Lua

-- ===================================================================
-- Minetest commands
-- ===================================================================
command_list = {} -- user-facing table of commands
local chat_table -- MT chat command definitions table
local regchat -- Chat-command registration function
regchat = minetest.register_chatcommand
regchat = function(name, command_table)
minetest.register_chatcommand(name, command_table)
table.insert(command_list, name)
end
-- ===================================================================
-- /menu
-- Presents a menu of options to users
regchat(
"menu", {
privs = {},
func = function(user)
local result = modpol.menu(user)
return true, result
end,
})
-- ===================================================================
-- /reset
-- For testing only
-- Clears the system and recreates instance with all players
regchat(
"reset", {
privs = {},
func = function(user)
modpol.reset_orgs();
return true, "Reset orgs"
end,
})
-- ===================================================================
-- /addorg /add_org
-- This code defines a chat command which creates a new
-- "org". Presently, the command makes the user the sole member of the
-- "org".
chat_table = {
privs = {} ,
func = function (user, param)
local success, message = modpol.add_org (param, { user })
return true, message
end
}
regchat ("addorg" , chat_table)
regchat ("add_org" , chat_table)
-- ===================================================================
-- /listorg /listorgs /list_org /list_orgs
-- In Minetest mode, this code defines a chat command which lists the
-- existing "orgs".
-- The list shows one "org" per line in the following format:
-- org_name (member, member, ...)
chat_table = {
privs = {} ,
func = function (user, param)
return true, "Orgs:\n" .. modpol.list_orgs()
end
}
regchat ("listorg" , chat_table)
regchat ("listorgs" , chat_table)
regchat ("list_org" , chat_table)
regchat ("list_orgs" , chat_table)
-- ===================================================================
-- /listplayers
regchat(
"listplayers", {
privs = {},
func = function(user)
local result = table.concat(modpol.list_users(),", ")
return true, "All players: " .. result
end,
})
-- ===================================================================
-- /joinorg
regchat(
"joinorg", {
privs = {},
func = function(user, param)
local org_id = modpol.get_org_id_by_name(param)
local success, result = modpol.add_member(org_id, user)
return true, result
end,
})
-- ===================================================================
-- /pollself [question]
-- asks the user a question specified in param
regchat(
"pollself", {
privs = {},
func = function(user, param)
modpol.binary_poll_user(user, param)
return true, result
end,
})