added voting category and a menu option for cancelling votes

--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%401529
This commit is contained in:
David Anderson 2007-10-02 14:34:45 +00:00
parent 7cb4d7ae9c
commit ee90188103
4 changed files with 70 additions and 15 deletions

View File

@ -55,6 +55,7 @@ new Handle:hAdminMenu = INVALID_HANDLE;
/* Top menu objects */
new TopMenuObject:obj_playercmds = INVALID_TOPMENUOBJECT;
new TopMenuObject:obj_servercmds = INVALID_TOPMENUOBJECT;
new TopMenuObject:obj_votingcmds = INVALID_TOPMENUOBJECT;
public bool:AskPluginLoad(Handle:myself, bool:late, String:error[], err_max)
{
@ -89,6 +90,12 @@ public OnAllPluginsLoaded()
TopMenuObject_Category,
CategoryHandler,
INVALID_TOPMENUOBJECT);
obj_votingcmds = AddToTopMenu(hAdminMenu,
"VotingCommands",
TopMenuObject_Category,
CategoryHandler,
INVALID_TOPMENUOBJECT);
Call_StartForward(hOnAdminMenuCreated);
Call_PushCell(hAdminMenu);
@ -120,6 +127,10 @@ public CategoryHandler(Handle:topmenu,
{
Format(buffer, maxlength, "%T:", "Server Commands", param);
}
else if (object_id == obj_votingcmds)
{
Format(buffer, maxlength, "%T:", "Voting Commands", param);
}
}
else if (action == TopMenuAction_DrawOption)
{
@ -131,6 +142,10 @@ public CategoryHandler(Handle:topmenu,
{
Format(buffer, maxlength, "%T", "Server Commands", param);
}
else if (object_id == obj_votingcmds)
{
Format(buffer, maxlength, "%T", "Voting Commands", param);
}
return ITEMDRAW_DEFAULT;
}

View File

@ -50,6 +50,7 @@ new Handle:hTopMenu = INVALID_HANDLE;
#include "basecommands/kick.sp"
#include "basecommands/reloadadmins.sp"
#include "basecommands/cancelvote.sp"
public OnPluginStart()
{
@ -110,6 +111,19 @@ public OnAdminMenuReady(Handle:topmenu)
"sm_reloadadmins",
ADMFLAG_BAN);
}
new TopMenuObject:voting_commands = FindTopMenuCategory(hTopMenu, ADMINMENU_VOTINGCOMMANDS);
if (voting_commands != INVALID_TOPMENUOBJECT)
{
AddToTopMenu(hTopMenu,
"Cancel Vote",
TopMenuObject_Item,
AdminMenu_CancelVote,
voting_commands,
"sm_cancelvote",
ADMFLAG_VOTE);
}
}
public OnLibraryRemoved(const String:name[])
@ -415,18 +429,3 @@ public Action:Timer_ChangeMap(Handle:timer, Handle:dp)
return Plugin_Stop;
}
public Action:Command_CancelVote(client, args)
{
if (!IsVoteInProgress())
{
ReplyToCommand(client, "[SM] %t", "Vote Not In Progress");
return Plugin_Handled;
}
ShowActivity(client, "%t", "Cancelled Vote");
CancelVote();
return Plugin_Handled;
}

View File

@ -0,0 +1,39 @@
PerformCancelVote(client)
{
if (!IsVoteInProgress())
{
ReplyToCommand(client, "[SM] %t", "Vote Not In Progress");
return;
}
ShowActivity(client, "%t", "Cancelled Vote");
CancelVote();
}
public AdminMenu_CancelVote(Handle:topmenu,
TopMenuAction:action,
TopMenuObject:object_id,
param,
String:buffer[],
maxlength)
{
if (action == TopMenuAction_DrawOption)
{
Format(buffer, maxlength, "%T", "Cancel vote", param);
}
else if (action == TopMenuAction_SelectOption)
{
PerformCancelVote(param);
RedisplayAdminMenu(topmenu, param);
}
}
public Action:Command_CancelVote(client, args)
{
PerformCancelVote(client);
return Plugin_Handled;
}

View File

@ -54,6 +54,8 @@
#define ADMINMENU_PLAYERCOMMANDS "PlayerCommands"
/** Category for server commands. */
#define ADMINMENU_SERVERCOMMANDS "ServerCommands"
/** Category for voting commands. */
#define ADMINMENU_VOTINGCOMMANDS "VotingCommands"
/**
* Called when the admin menu is created and 3rd party plugins can grab