modpol/modpol_minetest/chatcommands.lua
2021-12-16 16:55:49 -07:00

109 lines
2.8 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
-- ===================================================================
-- /modpol
-- Presents a menu of options to users
regchat(
"modpol", {
privs = {},
func = function(user)
modpol.interactions.dashboard(user)
end,
})
-- ===================================================================
-- /reset
-- For testing only
-- Clears the system and recreates instance with all players
regchat(
"reset", {
privs = {},
func = function(user)
modpol.orgs.reset();
return true, "Reset orgs"
end,
})
-- ===================================================================
-- /addorg
-- This code defines a chat command which creates a new
-- "org". Presently, the command makes the user the sole member of the
-- "org".
regchat(
"addorg", {
privs = {} ,
func = function (user, param)
local success, message = modpol.instance:add_org (param)
return true, message
end
})
-- ===================================================================
-- /listorgs
-- In Minetest mode, this code defines a chat command which lists
-- existing "orgs".
-- The list shows one "org" per line in the following format:
-- org_name (member, member, ...)
regchat(
"listorgs", {
privs = {} ,
func = function (user, param)
return true, "Orgs: " ..
table.concat(modpol.orgs.list_all(), ", ")
end
})
-- ===================================================================
-- /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 = modpol.orgs.get_org(param)
local success, result = org:add_member(user)
return true, result
end,
})
-- ===================================================================
-- /pollself [question]
-- asks the user a question specified in param
regchat(
"pollself", {
privs = {},
func = function(user, param)
modpol.interactions.binary_poll_user(user, param)
return true, result
end,
})