Skip to content

Commit

Permalink
Added !spec999 and !cointoss command (refs #62)
Browse files Browse the repository at this point in the history
  • Loading branch information
Timo Smit committed Feb 6, 2017
1 parent e3345fa commit e473bae
Show file tree
Hide file tree
Showing 5 changed files with 94 additions and 2 deletions.
1 change: 1 addition & 0 deletions luamods/wolfadmin/auth/auth.lua
Expand Up @@ -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"
Expand Down
3 changes: 2 additions & 1 deletion luamods/wolfadmin/auth/shrubbot.lua
Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down
44 changes: 44 additions & 0 deletions 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 <http://www.gnu.org/licenses/>.

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")
46 changes: 46 additions & 0 deletions 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 <http://www.gnu.org/licenses/>.

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))
2 changes: 1 addition & 1 deletion luamods/wolfadmin/commands/commands.lua
Expand Up @@ -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
Expand Down

0 comments on commit e473bae

Please sign in to comment.