Added tracking of team locks (needed for issue #37)

This commit is contained in:
Timo Smit 2016-02-22 10:28:43 +01:00
parent abf57e2469
commit 27c62df026
4 changed files with 107 additions and 0 deletions

View file

@ -15,6 +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 constants = require "luascripts.wolfadmin.util.constants"
local events = require "luascripts.wolfadmin.util.events"
local settings = require "luascripts.wolfadmin.util.settings"
local files = require "luascripts.wolfadmin.util.files"
@ -23,6 +24,12 @@ local stats = require "luascripts.wolfadmin.players.stats"
local admin = {}
local teamLocks = {
[constants.TEAM_AXIS] = false,
[constants.TEAM_ALLIES] = false,
[constants.TEAM_SPECTATORS] = false,
}
function admin.isVoiceMuted(clientId)
if stats.get(clientId, "voiceMute") then
if stats.get(clientId, "voiceMute") - os.time() > 0 then
@ -51,6 +58,14 @@ function admin.unmuteVoice(clientId)
stats.set(clientId, "voiceMute", false)
end
function admin.lockTeam(teamId)
teamLocks[teamId] = false
end
function admin.unlockTeam(teamId)
teamLocks[teamId] = false
end
function admin.lockPlayer(clientId)
stats.set(clientId, "teamLock", true)
end

View file

@ -0,0 +1,40 @@
-- WolfAdmin module for Wolfenstein: Enemy Territory servers.
-- Copyright (C) 2015-2016 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 util = require "luascripts.wolfadmin.util.util"
local constants = require "luascripts.wolfadmin.util.constants"
local commands = require "luascripts.wolfadmin.commands.commands"
local admin = require "luascripts.wolfadmin.admin.admin"
function commandLock(clientId, cmdArguments)
if cmdArguments[1] == nil or (cmdArguments[1] ~= constants.TEAM_AXIS_SC and cmdArguments[1] ~= constants.TEAM_ALLIES_SC and cmdArguments[1] ~= constants.TEAM_SPECTATORS_SC and cmdArguments[1] ~= "all") then
return false
end
if cmdArguments[1] == "all" then
admin.lockTeam(constants.TEAM_AXIS)
admin.lockTeam(constants.TEAM_ALLIES)
admin.lockTeam(constants.TEAM_SPECTATORS)
return false
end
admin.lockTeam(util.getTeamFromCode(cmdArguments[1]))
return false
end
commands.addadmin("lock", commandLock, "K", "lock one or all of the teams from players joining", "^9[^3r|b|s|all#^9]", true)

View file

@ -0,0 +1,40 @@
-- WolfAdmin module for Wolfenstein: Enemy Territory servers.
-- Copyright (C) 2015-2016 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 util = require "luascripts.wolfadmin.util.util"
local constants = require "luascripts.wolfadmin.util.constants"
local commands = require "luascripts.wolfadmin.commands.commands"
local admin = require "luascripts.wolfadmin.admin.admin"
function commandUnlock(clientId, cmdArguments)
if cmdArguments[1] == nil or (cmdArguments[1] ~= constants.TEAM_AXIS_SC and cmdArguments[1] ~= constants.TEAM_ALLIES_SC and cmdArguments[1] ~= constants.TEAM_SPECTATORS_SC and cmdArguments[1] ~= "all") then
return false
end
if cmdArguments[1] == "all" then
admin.unlockTeam(constants.TEAM_AXIS)
admin.unlockTeam(constants.TEAM_ALLIES)
admin.unlockTeam(constants.TEAM_SPECTATORS)
return false
end
admin.unlockTeam(util.getTeamFromCode(cmdArguments[1]))
return false
end
commands.addadmin("unlock", commandUnlock, "K", "unlock one or all locked teams", "^9[^3r|b|s|all#^9]", true)

View file

@ -60,6 +60,18 @@ function util.getTeamName(teamId)
end
end
function util.getTeamFromCode(teamCode)
if teamCode == constants.TEAM_AXIS_SC then
return constants.TEAM_AXIS
elseif teamCode == constants.TEAM_ALLIES_SC then
return constants.TEAM_ALLIES
elseif teamCode == constants.TEAM_SPECTATORS_SC then
return constants.TEAM_SPECTATORS
else
return 0
end
end
function util.getTeamColor(teamId)
if teamId == constants.TEAM_AXIS then
return constants.TEAM_AXIS_COLOR