diff --git a/luamods/wolfadmin/auth/auth.lua b/luamods/wolfadmin/auth/auth.lua index cf1ebee..3848528 100644 --- a/luamods/wolfadmin/auth/auth.lua +++ b/luamods/wolfadmin/auth/auth.lua @@ -81,6 +81,7 @@ auth.PERM_ENABLEVOTE = "enablevote" auth.PERM_CANCELVOTE = "cancelvote" auth.PERM_PASSVOTE = "passvote" +auth.PERM_COINTOSS = "cointoss" auth.PERM_NEWS = "news" auth.PERM_UPTIME = "uptime" diff --git a/luamods/wolfadmin/auth/shrubbot.lua b/luamods/wolfadmin/auth/shrubbot.lua index 294c402..fb6b502 100644 --- a/luamods/wolfadmin/auth/shrubbot.lua +++ b/luamods/wolfadmin/auth/shrubbot.lua @@ -22,7 +22,7 @@ local auth = require (wolfa_getLuaPath()..".auth.auth") local shrubbot = {} --- available shrubflags: lqyFHY +-- available shrubflags: lyFHY local flags = { [auth.PERM_ADMINTEST] = "a", [auth.PERM_HELP] = "h", @@ -72,6 +72,7 @@ local flags = { [auth.PERM_SHUFFLE] = "S", [auth.PERM_SWAP] = "w", + [auth.PERM_COINTOSS] = "q", [auth.PERM_PAUSE] = "Z", [auth.PERM_NEXTMAP] = "n", [auth.PERM_RESTART] = "r", diff --git a/luamods/wolfadmin/commands/admin/cointoss.lua b/luamods/wolfadmin/commands/admin/cointoss.lua new file mode 100644 index 0000000..16e6a4a --- /dev/null +++ b/luamods/wolfadmin/commands/admin/cointoss.lua @@ -0,0 +1,44 @@ + +-- WolfAdmin module for Wolfenstein: Enemy Territory servers. +-- Copyright (C) 2015-2017 Timo 'Timothy' Smit + +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- at your option any later version. + +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. + +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . + +local auth = require (wolfa_getLuaPath()..".auth.auth") + +local commands = require (wolfa_getLuaPath()..".commands.commands") + +local players = require (wolfa_getLuaPath()..".players.players") + +function commandCoinToss(clientId, command) + math.randomseed(os.time()) + + local number = math.random(0, 99) + local result + + if number < 49 then + result = "heads." + elseif number > 50 then + result = "tails." + elseif number == 49 then + result = "the coin falls on its side!" + elseif number == 50 then + result = "the coin got lost." + end + + et.trap_SendConsoleCommand(et.EXEC_APPEND, "cchat -1 \"^dcointoss: ^7"..players.getName(clientId).." ^9tossed a coin..."..result.."\";") + + return true +end +commands.addadmin("cointoss", commandCoinToss, auth.PERM_COINTOSS, "flips a coin") diff --git a/luamods/wolfadmin/commands/admin/spec999.lua b/luamods/wolfadmin/commands/admin/spec999.lua new file mode 100644 index 0000000..105654d --- /dev/null +++ b/luamods/wolfadmin/commands/admin/spec999.lua @@ -0,0 +1,46 @@ + +-- WolfAdmin module for Wolfenstein: Enemy Territory servers. +-- Copyright (C) 2015-2017 Timo 'Timothy' Smit + +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- at your option any later version. + +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. + +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . + +local admin = require (wolfa_getLuaPath()..".admin.admin") + +local auth = require (wolfa_getLuaPath()..".auth.auth") + +local commands = require (wolfa_getLuaPath()..".commands.commands") + +local players = require (wolfa_getLuaPath()..".players.players") + +local constants = require (wolfa_getLuaPath()..".util.constants") +local settings = require (wolfa_getLuaPath()..".util.settings") + +function commandSpec999(clientId, command) + local count = 0 + + for playerId = 0, et.trap_Cvar_Get("sv_maxclients") - 1 do + if players.isConnected(playerId) then + if et.gentity_get(playerId, "ps.ping") > 500 and et.gentity_get(playerId, "ps.ping") <= 999 then + admin.putPlayer(playerId, constants.TEAM_SPECTATORS) + + count = count + 1 + end + end + end + + et.trap_SendConsoleCommand(et.EXEC_APPEND, "csay "..clientId.." \"^dspec999: ^9"..count.." players were put to spectators.\";") + + return true +end +commands.addadmin("spec999", commandSpec999, auth.PERM_SPEC999, "moves 999 pingers to the spectator team", nil, nil, (settings.get("g_standalone") == 0)) diff --git a/luamods/wolfadmin/commands/commands.lua b/luamods/wolfadmin/commands/commands.lua index 34687c8..894ac99 100644 --- a/luamods/wolfadmin/commands/commands.lua +++ b/luamods/wolfadmin/commands/commands.lua @@ -95,7 +95,7 @@ function commands.loadFiles(dir) local files = files.ls("commands/"..dir.."/") for _, file in pairs(files) do - if string.match(string.lower(file), "^[a-z]+%.lua$") then + if string.match(string.lower(file), "^[a-z0-9]+%.lua$") then require (wolfa_getLuaPath()..".commands."..dir.."."..string.sub(file, 1, string.len(file) - 4)) amount = amount + 1