experimental commit of a menu attachment for sm_reloadadmins
--HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%401524
This commit is contained in:
parent
f8e2a09b39
commit
5600942b3c
@ -54,6 +54,7 @@ new Handle:hAdminMenu = INVALID_HANDLE;
|
|||||||
|
|
||||||
/* Top menu objects */
|
/* Top menu objects */
|
||||||
new TopMenuObject:obj_playercmds = INVALID_TOPMENUOBJECT;
|
new TopMenuObject:obj_playercmds = INVALID_TOPMENUOBJECT;
|
||||||
|
new TopMenuObject:obj_servercmds = INVALID_TOPMENUOBJECT;
|
||||||
|
|
||||||
public bool:AskPluginLoad(Handle:myself, bool:late, String:error[], err_max)
|
public bool:AskPluginLoad(Handle:myself, bool:late, String:error[], err_max)
|
||||||
{
|
{
|
||||||
@ -82,6 +83,12 @@ public OnAllPluginsLoaded()
|
|||||||
TopMenuObject_Category,
|
TopMenuObject_Category,
|
||||||
CategoryHandler,
|
CategoryHandler,
|
||||||
INVALID_TOPMENUOBJECT);
|
INVALID_TOPMENUOBJECT);
|
||||||
|
|
||||||
|
obj_servercmds = AddToTopMenu(hAdminMenu,
|
||||||
|
"ServerCommands",
|
||||||
|
TopMenuObject_Category,
|
||||||
|
CategoryHandler,
|
||||||
|
INVALID_TOPMENUOBJECT);
|
||||||
|
|
||||||
Call_StartForward(hOnAdminMenuCreated);
|
Call_StartForward(hOnAdminMenuCreated);
|
||||||
Call_PushCell(hAdminMenu);
|
Call_PushCell(hAdminMenu);
|
||||||
@ -109,6 +116,10 @@ public CategoryHandler(Handle:topmenu,
|
|||||||
{
|
{
|
||||||
Format(buffer, maxlength, "%T:", "Player Commands", param);
|
Format(buffer, maxlength, "%T:", "Player Commands", param);
|
||||||
}
|
}
|
||||||
|
else if (object_id == obj_servercmds)
|
||||||
|
{
|
||||||
|
Format(buffer, maxlength, "%T:", "Server Commands", param);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (action == TopMenuAction_DrawOption)
|
else if (action == TopMenuAction_DrawOption)
|
||||||
{
|
{
|
||||||
@ -116,6 +127,10 @@ public CategoryHandler(Handle:topmenu,
|
|||||||
{
|
{
|
||||||
Format(buffer, maxlength, "%T", "Player Commands", param);
|
Format(buffer, maxlength, "%T", "Player Commands", param);
|
||||||
}
|
}
|
||||||
|
else if (object_id == obj_servercmds)
|
||||||
|
{
|
||||||
|
Format(buffer, maxlength, "%T", "Server Commands", param);
|
||||||
|
}
|
||||||
return ITEMDRAW_DEFAULT;
|
return ITEMDRAW_DEFAULT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -174,3 +189,4 @@ stock UTIL_AddTargetsToMenu(Handle:menu, source_client, bool:in_game_only)
|
|||||||
|
|
||||||
return num_clients;
|
return num_clients;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,6 +49,7 @@ public Plugin:myinfo =
|
|||||||
new Handle:hTopMenu = INVALID_HANDLE;
|
new Handle:hTopMenu = INVALID_HANDLE;
|
||||||
|
|
||||||
#include "basecommands/kick.sp"
|
#include "basecommands/kick.sp"
|
||||||
|
#include "basecommands/reloadadmins.sp"
|
||||||
|
|
||||||
public OnPluginStart()
|
public OnPluginStart()
|
||||||
{
|
{
|
||||||
@ -95,6 +96,19 @@ public OnAdminMenuReady(Handle:topmenu)
|
|||||||
"sm_kick",
|
"sm_kick",
|
||||||
ADMFLAG_KICK);
|
ADMFLAG_KICK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
new TopMenuObject:server_commands = FindTopMenuCategory(hTopMenu, ADMINMENU_SERVERCOMMANDS);
|
||||||
|
|
||||||
|
if (server_commands != INVALID_TOPMENUOBJECT)
|
||||||
|
{
|
||||||
|
AddToTopMenu(hTopMenu,
|
||||||
|
"Reload Admins",
|
||||||
|
TopMenuObject_Item,
|
||||||
|
AdminMenu_ReloadAdmins,
|
||||||
|
server_commands,
|
||||||
|
"sm_reloadadmins",
|
||||||
|
ADMFLAG_BAN);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public OnLibraryRemoved(const String:name[])
|
public OnLibraryRemoved(const String:name[])
|
||||||
@ -105,18 +119,6 @@ public OnLibraryRemoved(const String:name[])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Action:Command_ReloadAdmins(client, args)
|
|
||||||
{
|
|
||||||
/* Dump it all! */
|
|
||||||
DumpAdminCache(AdminCache_Groups, true);
|
|
||||||
DumpAdminCache(AdminCache_Overrides, true);
|
|
||||||
|
|
||||||
LogAction(client, -1, "\"%L\" refreshed the admin cache.", client);
|
|
||||||
ReplyToCommand(client, "[SM] %t", "Admin cache refreshed");
|
|
||||||
|
|
||||||
return Plugin_Handled;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define FLAG_STRINGS 14
|
#define FLAG_STRINGS 14
|
||||||
new String:g_FlagNames[FLAG_STRINGS][20] =
|
new String:g_FlagNames[FLAG_STRINGS][20] =
|
||||||
{
|
{
|
||||||
|
37
plugins/basecommands/reloadadmins.sp
Normal file
37
plugins/basecommands/reloadadmins.sp
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
|
||||||
|
PerformReloadAdmins(client)
|
||||||
|
{
|
||||||
|
/* Dump it all! */
|
||||||
|
DumpAdminCache(AdminCache_Groups, true);
|
||||||
|
DumpAdminCache(AdminCache_Overrides, true);
|
||||||
|
|
||||||
|
LogAction(client, -1, "\"%L\" refreshed the admin cache.", client);
|
||||||
|
ReplyToCommand(client, "[SM] %t", "Admin cache refreshed");
|
||||||
|
}
|
||||||
|
|
||||||
|
public AdminMenu_ReloadAdmins(Handle:topmenu,
|
||||||
|
TopMenuAction:action,
|
||||||
|
TopMenuObject:object_id,
|
||||||
|
param,
|
||||||
|
String:buffer[],
|
||||||
|
maxlength)
|
||||||
|
{
|
||||||
|
if (action == TopMenuAction_DrawOption)
|
||||||
|
{
|
||||||
|
Format(buffer, maxlength, "%T", "Kick player", param);
|
||||||
|
}
|
||||||
|
else if (action == TopMenuAction_SelectOption)
|
||||||
|
{
|
||||||
|
PerformReloadAdmins(param);
|
||||||
|
RedisplayAdminMenu(topmenu, param);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Action:Command_ReloadAdmins(client, args)
|
||||||
|
{
|
||||||
|
PerformReloadAdmins(client);
|
||||||
|
|
||||||
|
return Plugin_Handled;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -52,6 +52,8 @@
|
|||||||
|
|
||||||
/** Category for player commands. */
|
/** Category for player commands. */
|
||||||
#define ADMINMENU_PLAYERCOMMANDS "PlayerCommands"
|
#define ADMINMENU_PLAYERCOMMANDS "PlayerCommands"
|
||||||
|
/** Category for server commands. */
|
||||||
|
#define ADMINMENU_SERVERCOMMANDS "ServerCommands"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the admin menu is created and 3rd party plugins can grab
|
* Called when the admin menu is created and 3rd party plugins can grab
|
||||||
@ -91,6 +93,24 @@ native Handle:GetAdminTopMenu();
|
|||||||
*/
|
*/
|
||||||
native AddTargetsToMenu(Handle:menu, source_client, bool:in_game_only=true);
|
native AddTargetsToMenu(Handle:menu, source_client, bool:in_game_only=true);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Re-displays the admin menu to a client after selecting an item.
|
||||||
|
* Auto-aborts if the Handle is invalid.
|
||||||
|
*
|
||||||
|
* @param topmenu TopMenu Handle.
|
||||||
|
* @param client Client index.
|
||||||
|
* @return True on success, false on failure.
|
||||||
|
*/
|
||||||
|
stock bool:RedisplayAdminMenu(Handle:topmenu, client)
|
||||||
|
{
|
||||||
|
if (topmenu == INVALID_HANDLE)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return DisplayTopMenu(topmenu, client, TopMenuPosition_LastCategory);
|
||||||
|
}
|
||||||
|
|
||||||
/* DO NOT EDIT BELOW THIS LINE */
|
/* DO NOT EDIT BELOW THIS LINE */
|
||||||
|
|
||||||
public SharedPlugin:__pl_adminmenu =
|
public SharedPlugin:__pl_adminmenu =
|
||||||
|
@ -256,5 +256,10 @@
|
|||||||
{
|
{
|
||||||
"en" "Player Commands"
|
"en" "Player Commands"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
"Server Commands"
|
||||||
|
{
|
||||||
|
"en" "Server Commands"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user