load client and server commands dynamically (issue #51)

This commit is contained in:
Timo Smit 2016-02-18 19:42:17 +01:00
parent f883b92292
commit ae8ae5a417
26 changed files with 123 additions and 80 deletions

View file

@ -15,7 +15,7 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local balancer = require "luascripts.wolfadmin.admin.balancer"
function commandBalance(clientId, cmdArguments)
@ -23,4 +23,4 @@ function commandBalance(clientId, cmdArguments)
return true
end
commands.register("balance", commandBalance, "p", "either asks the players to even up or evens them by moving or shuffling players", "^2!balance ^9(^hforce^9)")
commands.addadmin("balance", commandBalance, "p", "either asks the players to even up or evens them by moving or shuffling players", "^2!balance ^9(^hforce^9)")

View file

@ -16,7 +16,7 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local settings = require "luascripts.wolfadmin.util.settings"
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local warns = require "luascripts.wolfadmin.admin.warns"
function commandRemoveWarn(clientId, cmdArguments)
@ -25,7 +25,7 @@ function commandRemoveWarn(clientId, cmdArguments)
return true
elseif #cmdArguments < 2 or tonumber(cmdArguments[2]) == nil then
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^ddewarn usage: "..commands.get("dewarn")["syntax"].."\";")
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^ddewarn usage: "..commands.getadmin("dewarn")["syntax"].."\";")
return true
elseif tonumber(cmdArguments[1]) == nil then
@ -56,4 +56,4 @@ function commandRemoveWarn(clientId, cmdArguments)
return true
end
commands.register("dewarn", commandRemoveWarn, "R", "remove a warning for a certain player", "^9[^3name|slot#^9] ^9[^3warn#^9]", function() return (settings.get("g_warnHistory") == 0 or settings.get("db_type") == "cfg") end)
commands.addadmin("dewarn", commandRemoveWarn, "R", "remove a warning for a certain player", "^9[^3name|slot#^9] ^9[^3warn#^9]", function() return (settings.get("g_warnHistory") == 0 or settings.get("db_type") == "cfg") end)

View file

@ -15,7 +15,7 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local voting = require "luascripts.wolfadmin.game.voting"
function commandEnableVote(clientId, cmdArguments)
@ -25,4 +25,4 @@ function commandEnableVote(clientId, cmdArguments)
return true
end
commands.register("enablevote", commandEnableVote, "c", "enables next map voting")
commands.addadmin("enablevote", commandEnableVote, "c", "enables next map voting")

View file

@ -16,7 +16,7 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local util = require "luascripts.wolfadmin.util.util"
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local settings = require "luascripts.wolfadmin.util.settings"
local greetings = require "luascripts.wolfadmin.players.greetings"
@ -29,4 +29,4 @@ function commandGreeting(clientId, cmdArguments)
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dgreeting: ^9you do not have a personal greeting.\";")
end
end
commands.register("greeting", commandGreeting, "Q", "display your personal greeting, if you have one")
commands.addadmin("greeting", commandGreeting, "Q", "display your personal greeting, if you have one")

View file

@ -15,10 +15,10 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
function commandHelp(clientId, cmdArguments)
local cmds = commands.get()
local cmds = commands.getadmin()
if #cmdArguments == 0 then
local availableCommands = {}
@ -66,4 +66,4 @@ function commandHelp(clientId, cmdArguments)
return false
end
commands.register("help", commandHelp, "h", "display commands available to you or help on a specific command", "^9(^hcommand^9)", true)
commands.addadmin("help", commandHelp, "h", "display commands available to you or help on a specific command", "^9(^hcommand^9)", true)

View file

@ -15,7 +15,7 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local stats = require "luascripts.wolfadmin.players.stats"
function commandIncognito(clientId, cmdArguments)
@ -74,4 +74,4 @@ function commandIncognito(clientId, cmdArguments)
return true
end
commands.register("incognito", commandIncognito, "s", "fakes your level to guest (no aka)")
commands.addadmin("incognito", commandIncognito, "s", "fakes your level to guest (no aka)")

View file

@ -15,7 +15,7 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local bots = require "luascripts.wolfadmin.game.bots"
function commandBotsOff(clientId, cmdArguments)
@ -25,4 +25,4 @@ function commandBotsOff(clientId, cmdArguments)
return true
end
commands.register("kickbots", commandBotsOff, "O", "kicks all bots from the game")
commands.addadmin("kickbots", commandBotsOff, "O", "kicks all bots from the game")

View file

@ -18,7 +18,7 @@
local util = require "luascripts.wolfadmin.util.util"
local settings = require "luascripts.wolfadmin.util.settings"
local db = require "luascripts.wolfadmin.db.db"
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local stats = require "luascripts.wolfadmin.players.stats"
function commandListAliases(clientId, cmdArguments)
@ -27,7 +27,7 @@ function commandListAliases(clientId, cmdArguments)
return true
elseif cmdArguments[1] == nil then
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dlistaliases usage: "..commands.get("listaliases")["syntax"].."\";")
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dlistaliases usage: "..commands.getadmin("listaliases")["syntax"].."\";")
return true
elseif tonumber(cmdArguments[1]) == nil then
@ -71,4 +71,4 @@ function commandListAliases(clientId, cmdArguments)
return true
end
commands.register("listaliases", commandListAliases, "f", "display all known aliases for a player", "^9[^3name|slot#^9]", function() return (settings.get("db_type") == "cfg") end)
commands.addadmin("listaliases", commandListAliases, "f", "display all known aliases for a player", "^9[^3name|slot#^9]", function() return (settings.get("db_type") == "cfg") end)

View file

@ -18,7 +18,7 @@
local util = require "luascripts.wolfadmin.util.util"
local settings = require "luascripts.wolfadmin.util.settings"
local db = require "luascripts.wolfadmin.db.db"
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local stats = require "luascripts.wolfadmin.players.stats"
function commandListLevels(clientId, cmdArguments)
@ -88,4 +88,4 @@ function commandListLevels(clientId, cmdArguments)
return true
end
commands.register("listlevels", commandListLevels, "s", "display all levels on the server")
commands.addadmin("listlevels", commandListLevels, "s", "display all levels on the server")

View file

@ -16,7 +16,7 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local util = require "luascripts.wolfadmin.util.util"
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local game = require "luascripts.wolfadmin.game.game"
function commandListMaps(clientId, cmdArguments)
@ -35,4 +35,4 @@ function commandListMaps(clientId, cmdArguments)
return true
end
commands.register("listmaps", commandListMaps, "C", "display the maps in the rotation")
commands.addadmin("listmaps", commandListMaps, "C", "display the maps in the rotation")

View file

@ -15,7 +15,7 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local bots = require "luascripts.wolfadmin.game.bots"
function commandBotsOn(clientId, cmdArguments)
@ -25,4 +25,4 @@ function commandBotsOn(clientId, cmdArguments)
return true
end
commands.register("needbots", commandBotsOn, "O", "adds bots to the game")
commands.addadmin("needbots", commandBotsOn, "O", "adds bots to the game")

View file

@ -16,13 +16,13 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local util = require "luascripts.wolfadmin.util.util"
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local admin = require "luascripts.wolfadmin.admin.admin"
local stats = require "luascripts.wolfadmin.players.stats"
function commandPlayerLock(clientId, cmdArguments)
if cmdArguments[1] == nil then
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dplock usage: "..commands.get("vmute")["syntax"].."\";")
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dplock usage: "..commands.getadmin("vmute")["syntax"].."\";")
return true
elseif tonumber(cmdArguments[1]) == nil then
@ -61,4 +61,4 @@ function commandPlayerLock(clientId, cmdArguments)
return true
end
commands.register("plock", commandPlayerLock, "K", "locks a player to a specific team", "^9[^3name|slot#^9]")
commands.addadmin("plock", commandPlayerLock, "K", "locks a player to a specific team", "^9[^3name|slot#^9]")

View file

@ -16,13 +16,13 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local util = require "luascripts.wolfadmin.util.util"
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local admin = require "luascripts.wolfadmin.admin.admin"
local stats = require "luascripts.wolfadmin.players.stats"
function commandPlayerUnlock(clientId, cmdArguments)
if cmdArguments[1] == nil then
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dpunlock usage: "..commands.get("vmute")["syntax"].."\";")
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dpunlock usage: "..commands.getadmin("vmute")["syntax"].."\";")
return true
elseif tonumber(cmdArguments[1]) == nil then
@ -53,4 +53,4 @@ function commandPlayerUnlock(clientId, cmdArguments)
return true
end
commands.register("punlock", commandPlayerUnlock, "K", "unlocks a player", "^9[^3name|slot#^9]")
commands.addadmin("punlock", commandPlayerUnlock, "K", "unlocks a player", "^9[^3name|slot#^9]")

View file

@ -17,12 +17,12 @@
local constants = require "luascripts.wolfadmin.util.constants"
local util = require "luascripts.wolfadmin.util.util"
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local bots = require "luascripts.wolfadmin.game.bots"
function commandPutBots(clientId, cmdArguments)
if cmdArguments[1] == nil and cmdArguments[1] ~= constants.TEAM_AXIS_SC and cmdArguments[1] ~= constants.TEAM_ALLIES_SC and cmdArguments[1] ~= constants.TEAM_SPECTATORS_SC then
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dputbots usage: "..commands.get("vmute")["syntax"].."\";")
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dputbots usage: "..commands.getadmin("vmute")["syntax"].."\";")
return true
end
@ -44,4 +44,4 @@ function commandPutBots(clientId, cmdArguments)
return true
end
commands.register("putbots", commandPutBots, "p", "puts all bots into a specific team", "^9[r|b|s]")
commands.addadmin("putbots", commandPutBots, "p", "puts all bots into a specific team", "^9[r|b|s]")

View file

@ -16,7 +16,7 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local settings = require "luascripts.wolfadmin.util.settings"
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local rules = require "luascripts.wolfadmin.admin.rules"
local greetings = require "luascripts.wolfadmin.players.greetings"
@ -29,4 +29,4 @@ function commandReadconfig(clientId, cmdArguments)
return false
end
commands.register("readconfig", commandReadconfig, "G", "reloads the shrubbot config file and refreshes user flags", nil, true)
commands.addadmin("readconfig", commandReadconfig, "G", "reloads the shrubbot config file and refreshes user flags", nil, true)

View file

@ -15,7 +15,7 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local game = require "luascripts.wolfadmin.game.game"
local sprees = require "luascripts.wolfadmin.game.sprees"
@ -32,4 +32,4 @@ function commandResetSprees(clientId, cmdArguments)
return true
end
commands.register("resetsprees", commandResetSprees, "G", "resets the spree records")
commands.addadmin("resetsprees", commandResetSprees, "G", "resets the spree records")

View file

@ -15,7 +15,7 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local rules = require "luascripts.wolfadmin.admin.rules"
function commandRules(clientId, cmdArguments)
@ -42,4 +42,4 @@ function commandRules(clientId, cmdArguments)
return true
end
commands.register("rules", commandRules, "C", "display the rules on the server", "^9(^hrule^9)")
commands.addadmin("rules", commandRules, "C", "display the rules on the server", "^9(^hrule^9)")

View file

@ -16,7 +16,7 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local settings = require "luascripts.wolfadmin.util.settings"
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local admin = require "luascripts.wolfadmin.admin.admin"
function commandSetLevel(clientId, cmdArguments)
@ -45,4 +45,4 @@ function commandSetLevel(clientId, cmdArguments)
return false
end
commands.register("setlevel", commandSetLevel, "s", "sets the admin level of a player", "^9[^3name|slot#^9] ^9[^3level^9]", true)
commands.addadmin("setlevel", commandSetLevel, "s", "sets the admin level of a player", "^9[^3name|slot#^9] ^9[^3level^9]", true)

View file

@ -19,7 +19,7 @@ local util = require "luascripts.wolfadmin.util.util"
local settings = require "luascripts.wolfadmin.util.settings"
local db = require "luascripts.wolfadmin.db.db"
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local warns = require "luascripts.wolfadmin.admin.warns"
function commandShowWarns(clientId, cmdArguments)
@ -28,7 +28,7 @@ function commandShowWarns(clientId, cmdArguments)
return true
elseif cmdArguments[1] == nil then
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dshowwarns usage: "..commands.get("showwarns")["syntax"].."\";")
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dshowwarns usage: "..commands.getadmin("showwarns")["syntax"].."\";")
return true
elseif tonumber(cmdArguments[1]) == nil then
@ -62,4 +62,4 @@ function commandShowWarns(clientId, cmdArguments)
return true
end
commands.register("showwarns", commandShowWarns, "R", "display warnings for a specific player", "^9[^3name|slot#^9]", function() return (settings.get("g_warnHistory") == 0 or settings.get("db_type") == "cfg") end)
commands.addadmin("showwarns", commandShowWarns, "R", "display warnings for a specific player", "^9[^3name|slot#^9]", function() return (settings.get("g_warnHistory") == 0 or settings.get("db_type") == "cfg") end)

View file

@ -15,7 +15,7 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local sprees = require "luascripts.wolfadmin.game.sprees"
function commandShowSprees(clientId, cmdArguments)
@ -37,4 +37,4 @@ function commandShowSprees(clientId, cmdArguments)
return true
end
commands.register("sprees", commandShowSprees, "I", "display the current spree records")
commands.addadmin("sprees", commandShowSprees, "I", "display the current spree records")

View file

@ -16,11 +16,11 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local util = require "luascripts.wolfadmin.util.util"
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
function commandShowStats(clientId, cmdArguments)
if cmdArguments[1] == nil then
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dstats usage: "..commands.get("stats")["syntax"].."\";")
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dstats usage: "..commands.getadmin("stats")["syntax"].."\";")
return true
elseif tonumber(cmdArguments[1]) == nil then
@ -94,4 +94,4 @@ function commandShowStats(clientId, cmdArguments)
return true
end
commands.register("stats", commandShowStats, "I", "display the statistics for a specific player", "^9[^3name|slot#^9]")
commands.addadmin("stats", commandShowStats, "I", "display the statistics for a specific player", "^9[^3name|slot#^9]")

View file

@ -16,12 +16,12 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local util = require "luascripts.wolfadmin.util.util"
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local admin = require "luascripts.wolfadmin.admin.admin"
function commandVoiceMute(clientId, cmdArguments)
if cmdArguments[1] == nil then
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dvmute usage: "..commands.get("vmute")["syntax"].."\";")
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dvmute usage: "..commands.getadmin("vmute")["syntax"].."\";")
return true
elseif tonumber(cmdArguments[1]) == nil then
@ -50,7 +50,7 @@ function commandVoiceMute(clientId, cmdArguments)
elseif cmdArguments[2] then
vmuteReason = table.concat(cmdArguments, " ", 2)
elseif et.G_shrubbot_permission(clientId, "8") ~= 1 then
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dvmute usage: "..commands.get("vmute")["syntax"].."\";")
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dvmute usage: "..commands.getadmin("vmute")["syntax"].."\";")
return true
end
@ -75,4 +75,4 @@ function commandVoiceMute(clientId, cmdArguments)
return true
end
commands.register("vmute", commandVoiceMute, "m", "voicemutes a player", "^9[^3name|slot#^9]")
commands.addadmin("vmute", commandVoiceMute, "m", "voicemutes a player", "^9[^3name|slot#^9]")

View file

@ -15,12 +15,12 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local admin = require "luascripts.wolfadmin.admin.admin"
function commandVoiceUnmute(clientId, cmdArguments)
if cmdArguments[1] == nil then
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dvunmute usage: "..commands.get("vunmute")["syntax"].."\";")
et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dvunmute usage: "..commands.getadmin("vunmute")["syntax"].."\";")
return true
elseif tonumber(cmdArguments[1]) == nil then
@ -51,4 +51,4 @@ function commandVoiceUnmute(clientId, cmdArguments)
return true
end
commands.register("vunmute", commandVoiceUnmute, "m", "unvoicemutes a player", "^9[^3name|slot#^9]")
commands.addadmin("vunmute", commandVoiceUnmute, "m", "unvoicemutes a player", "^9[^3name|slot#^9]")

View file

@ -16,7 +16,7 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
local settings = require "luascripts.wolfadmin.util.settings"
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local warns = require "luascripts.wolfadmin.admin.warns"
function commandAddWarn(clientId, cmdArguments)
@ -40,4 +40,4 @@ function commandAddWarn(clientId, cmdArguments)
return false
end
commands.register("warn", commandAddWarn, "R", "warns a player by displaying the reason", "^9[^3name|slot#^9] ^9[^3reason^9]", true)
commands.addadmin("warn", commandAddWarn, "R", "warns a player by displaying the reason", "^9[^3name|slot#^9] ^9[^3reason^9]", true)

View file

@ -26,19 +26,51 @@ local stats = require "luascripts.wolfadmin.players.stats"
local commands = {}
-- available shrubflags: lqyFHY
local data = {}
local clientcmds = {}
local servercmds = {}
local admincmds = {}
function commands.get(command)
function commands.getclient(command)
if command then
return data[command]
return clientcmds[command]
end
return data
return clientcmds
end
function commands.register(command, func, flag, help, syntax, hidden)
data[command] = {
["function"] = func,
function commands.getserver(command)
if command then
return servercmds[command]
end
return servercmds
end
function commands.getadmin(command)
if command then
return admincmds[command]
end
return admincmds
end
function commands.addclient(command, func, flag, syntax)
clientcmds[command] = {
["function"] = func,
["flag"] = flag,
["syntax"] = "^2!"..command..(syntax and " "..syntax or ""),
}
end
function commands.addserver(command, func)
servercmds[command] = {
["function"] = func,
}
end
function commands.addadmin(command, func, flag, help, syntax, hidden)
admincmds[command] = {
["function"] = func,
["flag"] = flag,
["help"] = help or "N/A",
["syntax"] = "^2!"..command..(syntax and " "..syntax or ""),
@ -46,24 +78,35 @@ function commands.register(command, func, flag, help, syntax, hidden)
}
end
function commands.load()
local functionStart = et.trap_Milliseconds()
local files = files.ls("commands/")
function commands.loadfiles(dir)
local amount = 0
local files = files.ls("commands/"..dir.."/")
for _, file in pairs(files) do
if string.match(string.lower(file), "^[a-z]+%.lua$") then
require("luascripts/wolfadmin/commands/"..string.sub(file, 1, string.len(file) - 4))
require("luascripts/wolfadmin/commands/"..dir.."/"..string.sub(file, 1, string.len(file) - 4))
amount = amount + 1
end
end
outputDebug("commands.load(): "..amount.." entries loaded in "..et.trap_Milliseconds() - functionStart.." ms")
return amount
end
function commands.load()
local functionStart = et.trap_Milliseconds()
local clientAmount = commands.loadfiles("client")
local serverAmount = commands.loadfiles("server")
local adminAmount = commands.loadfiles("admin")
local totalAmount = clientAmount + serverAmount + adminAmount
outputDebug("commands.load(): "..totalAmount.." entries loaded in "..et.trap_Milliseconds() - functionStart.." ms")
return totalAmount
end
function commands.log(clientId, command, cmdArguments)
local functionStart = et.trap_Milliseconds()
local fileDescriptor = files.open(et.trap_Cvar_Get("g_logAdmin"), et.FS_APPEND)
@ -168,14 +211,14 @@ function commands.onservercommand(cmdText)
shrubCmd = string.lower(string.sub(cmdText, 2, string.len(cmdText)))
end
if data[shrubCmd] and data[shrubCmd]["function"] and data[shrubCmd]["flag"] then
if admincmds[shrubCmd] and admincmds[shrubCmd]["function"] and admincmds[shrubCmd]["flag"] then
for i = 1, et.trap_Argc() - shrubArgumentsOffset do
shrubArguments[i] = et.trap_Argv(i + shrubArgumentsOffset - 1)
end
data[shrubCmd]["function"](-1337, shrubArguments)
admincmds[shrubCmd]["function"](-1337, shrubArguments)
if not data[shrubCmd]["hidden"] then
if not admincmds[shrubCmd]["hidden"] then
commands.log(-1, shrubCmd, shrubArguments)
end
end
@ -326,12 +369,12 @@ function commands.onclientcommand(clientId, cmdText)
if shrubCmd then
shrubCmd = string.lower(shrubCmd)
if data[shrubCmd] and data[shrubCmd]["function"] and data[shrubCmd]["flag"] then
if admincmds[shrubCmd] and admincmds[shrubCmd]["function"] and admincmds[shrubCmd]["flag"] then
if wolfCmd == "say" or (((wolfCmd == "say_team" and et.gentity_get(cmdClient, "sess.sessionTeam") ~= et.TEAM_SPECTATORS) or wolfCmd == "say_buddy") and et.G_shrubbot_permission(clientId, "9") == 1) or (wolfCmd == "!"..shrubCmd and et.G_shrubbot_permission(clientId, "3") == 1) then
if data[shrubCmd]["flag"] ~= "" and et.G_shrubbot_permission(clientId, data[shrubCmd]["flag"]) == 1 then
local isFinished = data[shrubCmd]["function"](clientId, shrubArguments)
if admincmds[shrubCmd]["flag"] ~= "" and et.G_shrubbot_permission(clientId, admincmds[shrubCmd]["flag"]) == 1 then
local isFinished = admincmds[shrubCmd]["function"](clientId, shrubArguments)
if not data[shrubCmd]["hidden"] then
if not admincmds[shrubCmd]["hidden"] then
commands.log(clientId, shrubCmd, shrubArguments)
end

View file

@ -30,7 +30,7 @@ local balancer = require "luascripts.wolfadmin.admin.balancer"
local rules = require "luascripts.wolfadmin.admin.rules"
local warns = require "luascripts.wolfadmin.admin.warns"
local commands = require "luascripts.wolfadmin.commands"
local commands = require "luascripts.wolfadmin.commands.commands"
local game = require "luascripts.wolfadmin.game.game"
local bots = require "luascripts.wolfadmin.game.bots"