Add a new access level flag 'v' for temporary bans (bug 3218, r=arkshine)
Former-commit-id: d09b92cf6c3ffa6ea82b4c4b005056e7875ee80f
This commit is contained in:
@ -54,6 +54,9 @@ new g_clcmdNum
|
||||
|
||||
new g_coloredMenus
|
||||
|
||||
new p_amx_tempban_maxtime;
|
||||
new Trie:g_tempBans;
|
||||
|
||||
public plugin_init()
|
||||
{
|
||||
register_plugin("Players Menu", AMXX_VERSION_STR, "AMXX Dev Team")
|
||||
@ -63,7 +66,7 @@ public plugin_init()
|
||||
register_dictionary("admincmd.txt")
|
||||
|
||||
register_clcmd("amx_kickmenu", "cmdKickMenu", ADMIN_KICK, "- displays kick menu")
|
||||
register_clcmd("amx_banmenu", "cmdBanMenu", ADMIN_BAN, "- displays ban menu")
|
||||
register_clcmd("amx_banmenu", "cmdBanMenu", ADMIN_BAN|ADMIN_BAN_TEMP, "- displays ban menu")
|
||||
register_clcmd("amx_slapmenu", "cmdSlapMenu", ADMIN_SLAY, "- displays slap/slay menu")
|
||||
register_clcmd("amx_teammenu", "cmdTeamMenu", ADMIN_LEVEL_A, "- displays team menu")
|
||||
register_clcmd("amx_clcmdmenu", "cmdClcmdMenu", ADMIN_LEVEL_A, "- displays client cmds menu")
|
||||
@ -82,6 +85,22 @@ public plugin_init()
|
||||
load_settings(clcmds_ini_file)
|
||||
}
|
||||
|
||||
public plugin_cfg()
|
||||
{
|
||||
new x = get_xvar_id("g_tempBans")
|
||||
if( x )
|
||||
{
|
||||
g_tempBans = Trie:get_xvar_num(x)
|
||||
}
|
||||
new amx_tempban_maxtime[] = "amx_tempban_maxtime";
|
||||
p_amx_tempban_maxtime = get_cvar_pointer(amx_tempban_maxtime);
|
||||
if( !p_amx_tempban_maxtime )
|
||||
{
|
||||
p_amx_tempban_maxtime = register_cvar(amx_tempban_maxtime, "4320");
|
||||
server_cmd("amx_cvar add %s", amx_tempban_maxtime);
|
||||
}
|
||||
}
|
||||
|
||||
/* Ban menu */
|
||||
|
||||
public actionBanMenu(id, key)
|
||||
@ -108,6 +127,14 @@ public actionBanMenu(id, key)
|
||||
|
||||
default:
|
||||
{
|
||||
new banTime = g_menuSettings[id]
|
||||
if( ~get_user_flags(id) & ( ADMIN_BAN | ADMIN_RCON ) && (banTime <= 0 || banTime > get_pcvar_num(p_amx_tempban_maxtime)) )
|
||||
{
|
||||
console_print(id, "%L", id, "NO_ACC_COM");
|
||||
displayBanMenu(id, g_menuPosition[id])
|
||||
return PLUGIN_HANDLED
|
||||
}
|
||||
|
||||
new player = g_menuPlayers[id][g_menuPosition[id] * 7 + key]
|
||||
|
||||
new name[32], name2[32], authid[32], authid2[32]
|
||||
@ -154,9 +181,19 @@ public actionBanMenu(id, key)
|
||||
new ipa[32]
|
||||
get_user_ip(player, ipa, 31, 1)
|
||||
server_cmd("addip %d %s;writeip", g_menuSettings[id], ipa)
|
||||
if( g_tempBans )
|
||||
{
|
||||
TrieSetString(g_tempBans, ipa, authid)
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
server_cmd("banid %d #%d kick;writeid", g_menuSettings[id], userid2)
|
||||
if( g_tempBans )
|
||||
{
|
||||
TrieSetString(g_tempBans, authid2, authid)
|
||||
}
|
||||
}
|
||||
|
||||
server_exec()
|
||||
|
||||
|
Reference in New Issue
Block a user