diff --git a/luamods/wolfadmin/auth/auth.lua b/luamods/wolfadmin/auth/auth.lua index bbb9588..cb23d54 100644 --- a/luamods/wolfadmin/auth/auth.lua +++ b/luamods/wolfadmin/auth/auth.lua @@ -55,6 +55,7 @@ auth.PERM_THROW = "throw" auth.PERM_GLOW = "glow" auth.PERM_PANTS = "pants" auth.PERM_POP = "pop" +auth.PERM_NADE = "nade" auth.PERM_WARN = "warn" auth.PERM_MUTE = "mute" @@ -86,6 +87,9 @@ auth.PERM_UPTIME = "uptime" auth.PERM_SETLEVEL = "setlevel" auth.PERM_READCONFIG = "readconfig" +auth.PERM_CRAZYSETTINGS = "crazysettings" +auth.PERM_WARSETTINGS = "warsettings" + auth.PERM_CHEATS = "cheats" auth.PERM_DISGUISE = "disguise" -- legacy auth.PERM_AMMOPACK = "ammopack" -- legacy @@ -117,6 +121,8 @@ function auth.onGameInit() srv.readPermissions() else srv = require (wolfa_getLuaPath()..".auth.shrubbot") + + srv.loadFlags(et.trap_Cvar_Get("fs_game")) end if settings.get("g_standalone") == 1 and et.trap_Cvar_Get("g_shrubbot") ~= "" then diff --git a/luamods/wolfadmin/auth/shrubbot.lua b/luamods/wolfadmin/auth/shrubbot.lua index 499d878..8f8e373 100644 --- a/luamods/wolfadmin/auth/shrubbot.lua +++ b/luamods/wolfadmin/auth/shrubbot.lua @@ -15,99 +15,21 @@ -- 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 shrubbot = {} --- available shrubflags: lyFHY -local flags = { - [auth.PERM_ADMINTEST] = "a", - [auth.PERM_HELP] = "h", - [auth.PERM_TIME] = "C", - [auth.PERM_GREETING] = "Q", - - [auth.PERM_LISTPLAYERS] = "i", - [auth.PERM_LISTTEAMS] = "l", - [auth.PERM_LISTMAPS] = "C", - [auth.PERM_LISTSPREES] = "I", - [auth.PERM_LISTRULES] = "C", - [auth.PERM_LISTHISTORY] = "f", - [auth.PERM_LISTBANS] = "B", - [auth.PERM_LISTALIASES] = "f", - [auth.PERM_LISTSTATS] = "I", - [auth.PERM_FINGER] = "f", - - [auth.PERM_RESETXP] = "X", - [auth.PERM_RESETXP_SELF] = "M", - - [auth.PERM_ADMINCHAT] = "~", - - [auth.PERM_PUT] = "p", - [auth.PERM_DROPWEAPONS] = "D", - [auth.PERM_RENAME] = "N", - [auth.PERM_FREEZE] = "E", - [auth.PERM_DISORIENT] = "d", - [auth.PERM_BURN] = "U", - [auth.PERM_SLAP] = "A", - [auth.PERM_GIB] = "g", - [auth.PERM_THROW] = "L", - [auth.PERM_GLOW] = "o", - [auth.PERM_PANTS] = "t", - [auth.PERM_POP] = "z", - - [auth.PERM_WARN] = "R", - [auth.PERM_MUTE] = "m", - [auth.PERM_VOICEMUTE] = "m", - [auth.PERM_KICK] = "k", - [auth.PERM_BAN] = "b", - - [auth.PERM_SPEC999] = "P", - [auth.PERM_BALANCE] = "p", - [auth.PERM_LOCKPLAYER] = "L", - [auth.PERM_LOCKTEAM] = "L", - [auth.PERM_SHUFFLE] = "S", - [auth.PERM_SWAP] = "w", - - [auth.PERM_COINTOSS] = "q", - [auth.PERM_PAUSE] = "Z", - [auth.PERM_NEXTMAP] = "n", - [auth.PERM_RESTART] = "r", +local flags - [auth.PERM_BOTADMIN] = "O", - - [auth.PERM_ENABLEVOTE] = "c", - [auth.PERM_CANCELVOTE] = "c", - [auth.PERM_PASSVOTE] = "V", - - [auth.PERM_NEWS] = "W", - - [auth.PERM_UPTIME] = "u", - [auth.PERM_SETLEVEL] = "s", - [auth.PERM_READCONFIG] = "G", - - [auth.PERM_CHEATS] = "e", - [auth.PERM_DISGUISE] = "T", - [auth.PERM_AMMOPACK] = "J", - [auth.PERM_MEDPACK] = "J", - [auth.PERM_REVIVE] = "v", - - [auth.PERM_NOINACTIVITY] = "0", - [auth.PERM_NOVOTE] = "1", - [auth.PERM_NOCENSOR] = "2", - [auth.PERM_NOBALANCE] = "5", - [auth.PERM_NOVOTELIMIT] = "7", - [auth.PERM_NOREASON] = "6", - [auth.PERM_PERMA] = "8", +function shrubbot.loadFlags(mod) + flags = require (wolfa_getLuaPath()..".auth.shrubbot."..mod) +end - [auth.PERM_TEAMCMDS] = "9", - [auth.PERM_SILENTCMDS] = "3", +function shrubbot.isPlayerAllowed(clientId, permission) + if not flags[permission] then + outputDebug("shrubbot.isPlayerAllowed requested for unknown permission ("..tostring(permission)..")", 3) - [auth.PERM_SPY] = "4", - [auth.PERM_INCOGNITO] = "@", - [auth.PERM_IMMUNE] = "!", -} + return false + end -function shrubbot.isPlayerAllowed(clientId, permission) return et.G_shrubbot_permission(clientId, flags[permission]) == 1 end diff --git a/luamods/wolfadmin/auth/shrubbot/etpub.lua b/luamods/wolfadmin/auth/shrubbot/etpub.lua new file mode 100644 index 0000000..83eb33e --- /dev/null +++ b/luamods/wolfadmin/auth/shrubbot/etpub.lua @@ -0,0 +1,104 @@ + +-- WolfAdmin module for Wolfenstein: Enemy Territory servers. +-- Copyright (C) 2015-2018 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") + +-- ETPub shrubbot flags +-- left by mod: fjlovyDHJOTY +-- left by WA: flovyDHJTY +local flags = { + [auth.PERM_ADMINTEST] = "a", + [auth.PERM_HELP] = "h", + [auth.PERM_TIME] = "C", + [auth.PERM_GREETING] = "j", + + [auth.PERM_LISTPLAYERS] = "i", + [auth.PERM_LISTTEAMS] = "I", + [auth.PERM_LISTMAPS] = "C", + [auth.PERM_LISTSPREES] = "E", + [auth.PERM_LISTRULES] = "C", + [auth.PERM_LISTHISTORY] = "e", + [auth.PERM_LISTBANS] = "B", + [auth.PERM_LISTALIASES] = "e", + [auth.PERM_LISTSTATS] = "t", + [auth.PERM_FINGER] = "e", + + [auth.PERM_RESETXP] = "X", + [auth.PERM_RESETXP_SELF] = "M", + + [auth.PERM_ADMINCHAT] = "~", + + [auth.PERM_PUT] = "p", + [auth.PERM_RENAME] = "N", + [auth.PERM_FREEZE] = "F", + [auth.PERM_DISORIENT] = "d", + [auth.PERM_BURN] = "U", + [auth.PERM_SLAP] = "A", + [auth.PERM_GIB] = "Q", -- g: individual, Q: all players + [auth.PERM_THROW] = "L", -- l: individual, L: all players + [auth.PERM_POP] = "z", + [auth.PERM_NADE] = "x", + + [auth.PERM_WARN] = "R", + [auth.PERM_MUTE] = "m", + [auth.PERM_VOICEMUTE] = "m", + [auth.PERM_KICK] = "k", + [auth.PERM_BAN] = "b", + + [auth.PERM_SPEC999] = "P", + [auth.PERM_BALANCE] = "S", + [auth.PERM_LOCKPLAYER] = "K", + [auth.PERM_LOCKTEAM] = "K", + [auth.PERM_SHUFFLE] = "S", + [auth.PERM_SWAP] = "w", + + [auth.PERM_COINTOSS] = "Z", + [auth.PERM_PAUSE] = "Z", + [auth.PERM_NEXTMAP] = "n", + [auth.PERM_RESTART] = "r", + + [auth.PERM_BOTADMIN] = "O", + + [auth.PERM_ENABLEVOTE] = "c", + [auth.PERM_CANCELVOTE] = "c", + [auth.PERM_PASSVOTE] = "V", + + [auth.PERM_NEWS] = "W", + + [auth.PERM_UPTIME] = "u", + [auth.PERM_SETLEVEL] = "s", + [auth.PERM_READCONFIG] = "G", + + [auth.PERM_WARSETTINGS] = "q", + + [auth.PERM_NOINACTIVITY] = "0", + [auth.PERM_NOVOTE] = "1", + [auth.PERM_NOCENSOR] = "2", + [auth.PERM_NOBALANCE] = "5", + [auth.PERM_NOVOTELIMIT] = "7", + [auth.PERM_NOREASON] = "6", + [auth.PERM_PERMA] = "8", + + [auth.PERM_TEAMCMDS] = "9", + [auth.PERM_SILENTCMDS] = "3", + + [auth.PERM_SPY] = "4", + [auth.PERM_INCOGNITO] = "@", + [auth.PERM_IMMUNE] = "!", +} + +return flags diff --git a/luamods/wolfadmin/auth/shrubbot/nq.lua b/luamods/wolfadmin/auth/shrubbot/nq.lua new file mode 100644 index 0000000..05351af --- /dev/null +++ b/luamods/wolfadmin/auth/shrubbot/nq.lua @@ -0,0 +1,110 @@ + +-- WolfAdmin module for Wolfenstein: Enemy Territory servers. +-- Copyright (C) 2015-2018 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") + +-- NoQuarter shrubbot flags +-- left by mod: jlqyFHOQY +-- left by WA: lyFHQY +local flags = { + [auth.PERM_ADMINTEST] = "a", + [auth.PERM_HELP] = "h", + [auth.PERM_TIME] = "C", + [auth.PERM_GREETING] = "j", + + [auth.PERM_LISTPLAYERS] = "i", + [auth.PERM_LISTTEAMS] = "I", + [auth.PERM_LISTMAPS] = "C", + [auth.PERM_LISTSPREES] = "I", + [auth.PERM_LISTRULES] = "C", + [auth.PERM_LISTHISTORY] = "f", + [auth.PERM_LISTBANS] = "B", + [auth.PERM_LISTALIASES] = "f", + [auth.PERM_LISTSTATS] = "I", + [auth.PERM_FINGER] = "f", + + [auth.PERM_RESETXP] = "X", + [auth.PERM_RESETXP_SELF] = "M", + + [auth.PERM_ADMINCHAT] = "~", + + [auth.PERM_PUT] = "p", + [auth.PERM_DROPWEAPONS] = "D", + [auth.PERM_RENAME] = "N", + [auth.PERM_FREEZE] = "E", + [auth.PERM_DISORIENT] = "d", + [auth.PERM_BURN] = "U", + [auth.PERM_SLAP] = "A", + [auth.PERM_GIB] = "g", + [auth.PERM_THROW] = "L", + [auth.PERM_GLOW] = "o", + [auth.PERM_PANTS] = "t", + [auth.PERM_POP] = "z", + + [auth.PERM_WARN] = "R", + [auth.PERM_MUTE] = "m", + [auth.PERM_VOICEMUTE] = "m", + [auth.PERM_KICK] = "k", + [auth.PERM_BAN] = "b", + + [auth.PERM_SPEC999] = "P", + [auth.PERM_BALANCE] = "p", + [auth.PERM_LOCKPLAYER] = "L", + [auth.PERM_LOCKTEAM] = "L", + [auth.PERM_SHUFFLE] = "S", + [auth.PERM_SWAP] = "w", + + [auth.PERM_COINTOSS] = "Z", + [auth.PERM_PAUSE] = "Z", + [auth.PERM_NEXTMAP] = "n", + [auth.PERM_RESTART] = "r", + + [auth.PERM_BOTADMIN] = "O", + + [auth.PERM_ENABLEVOTE] = "c", + [auth.PERM_CANCELVOTE] = "c", + [auth.PERM_PASSVOTE] = "V", + + [auth.PERM_NEWS] = "W", + + [auth.PERM_UPTIME] = "u", + [auth.PERM_SETLEVEL] = "s", + [auth.PERM_READCONFIG] = "G", + + [auth.PERM_CHEATS] = "e", + [auth.PERM_DISGUISE] = "T", + [auth.PERM_AMMOPACK] = "J", + [auth.PERM_MEDPACK] = "J", + [auth.PERM_REVIVE] = "v", + + [auth.PERM_NOINACTIVITY] = "0", + [auth.PERM_NOVOTE] = "1", + [auth.PERM_NOCENSOR] = "2", + [auth.PERM_NOBALANCE] = "5", + [auth.PERM_NOVOTELIMIT] = "7", + [auth.PERM_NOREASON] = "6", + [auth.PERM_PERMA] = "8", + + [auth.PERM_TEAMCMDS] = "9", + [auth.PERM_SILENTCMDS] = "3", + + [auth.PERM_SPY] = "4", + [auth.PERM_INCOGNITO] = "@", + [auth.PERM_IMMUNE] = "!", +} + +return flags diff --git a/luamods/wolfadmin/auth/shrubbot/silent.lua b/luamods/wolfadmin/auth/shrubbot/silent.lua new file mode 100644 index 0000000..c99dab4 --- /dev/null +++ b/luamods/wolfadmin/auth/shrubbot/silent.lua @@ -0,0 +1,105 @@ + +-- WolfAdmin module for Wolfenstein: Enemy Territory servers. +-- Copyright (C) 2015-2018 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") + +-- silEnT shrubbot flags +-- left by mod: fhjovyDHJOTY +-- left by WA: fhovyDHJTY +local flags = { + [auth.PERM_ADMINTEST] = "a", + [auth.PERM_HELP] = "", -- left blank intentionally + [auth.PERM_TIME] = "", -- left blank intentionally + [auth.PERM_GREETING] = "j", + + [auth.PERM_LISTPLAYERS] = "i", + [auth.PERM_LISTTEAMS] = "I", + [auth.PERM_LISTMAPS] = "h", + [auth.PERM_LISTSPREES] = "E", + [auth.PERM_LISTRULES] = "h", + [auth.PERM_LISTHISTORY] = "e", + [auth.PERM_LISTBANS] = "B", + [auth.PERM_LISTALIASES] = "e", + [auth.PERM_LISTSTATS] = "t", + [auth.PERM_FINGER] = "e", + + [auth.PERM_RESETXP] = "X", + [auth.PERM_RESETXP_SELF] = "M", + + [auth.PERM_ADMINCHAT] = "~", + + [auth.PERM_PUT] = "p", + [auth.PERM_RENAME] = "N", + [auth.PERM_FREEZE] = "F", + [auth.PERM_DISORIENT] = "d", + [auth.PERM_BURN] = "U", + [auth.PERM_SLAP] = "A", + [auth.PERM_GIB] = "Q", -- g: individual, Q: all players + [auth.PERM_THROW] = "L", -- l: individual, L: all players + [auth.PERM_POP] = "z", + [auth.PERM_NADE] = "x", + + [auth.PERM_WARN] = "R", + [auth.PERM_MUTE] = "m", + [auth.PERM_VOICEMUTE] = "m", + [auth.PERM_KICK] = "k", + [auth.PERM_BAN] = "b", -- TODO: subnet ban, flag . (dot) + + [auth.PERM_SPEC999] = "P", + [auth.PERM_BALANCE] = "I", + [auth.PERM_LOCKPLAYER] = "K", + [auth.PERM_LOCKTEAM] = "K", + [auth.PERM_SHUFFLE] = "S", + [auth.PERM_SWAP] = "w", + + [auth.PERM_COINTOSS] = "Z", + [auth.PERM_PAUSE] = "Z", + [auth.PERM_NEXTMAP] = "n", + [auth.PERM_RESTART] = "r", + + [auth.PERM_BOTADMIN] = "O", + + [auth.PERM_ENABLEVOTE] = "c", + [auth.PERM_CANCELVOTE] = "c", + [auth.PERM_PASSVOTE] = "V", + + [auth.PERM_NEWS] = "W", + + [auth.PERM_UPTIME] = "u", + [auth.PERM_SETLEVEL] = "s", + [auth.PERM_READCONFIG] = "G", + + [auth.PERM_CRAZYSETTINGS] = "C", + [auth.PERM_WARSETTINGS] = "q", + + [auth.PERM_NOINACTIVITY] = "0", + [auth.PERM_NOVOTE] = "1", + [auth.PERM_NOCENSOR] = "2", + [auth.PERM_NOBALANCE] = "5", + [auth.PERM_NOVOTELIMIT] = "7", + [auth.PERM_NOREASON] = "6", + [auth.PERM_PERMA] = "8", + + [auth.PERM_TEAMCMDS] = "9", + [auth.PERM_SILENTCMDS] = "3", + + [auth.PERM_SPY] = "4", + [auth.PERM_INCOGNITO] = "@", + [auth.PERM_IMMUNE] = "!", +} + +return flags