Move admin natives from core to logic (bug 4406 part 2, r=ds).

--HG--
rename : core/smn_admin.cpp => core/logic/smn_admin.cpp
This commit is contained in:
David Anderson 2010-05-14 17:46:19 -07:00
parent 0032fcaa66
commit 78f5b513c0
9 changed files with 61 additions and 51 deletions

View File

@ -30,7 +30,6 @@ for i in SM.sdkInfo:
'CDataPack.cpp',
'frame_hooks.cpp',
'NativeInvoker.cpp',
'smn_admin.cpp',
'smn_fakenatives.cpp',
'smn_nextmap.cpp',
'sourcemm_api.cpp',

View File

@ -22,7 +22,7 @@ OBJECTS = AdminCache.cpp CDataPack.cpp ConCmdManager.cpp ConVarManager.cpp CoreC
MenuStyle_Radio.cpp ChatTriggers.cpp ADTFactory.cpp MenuVoting.cpp \
frame_hooks.cpp concmd_cleaner.cpp PhraseCollection.cpp NextMap.cpp \
NativeOwner.cpp logic_bridge.cpp ConsoleDetours.cpp
OBJECTS += smn_admin.cpp smn_bitbuffer.cpp smn_console.cpp smn_core.cpp \
OBJECTS += smn_bitbuffer.cpp smn_console.cpp smn_core.cpp \
smn_datapacks.cpp smn_entities.cpp smn_events.cpp smn_fakenatives.cpp \
smn_filesystem.cpp smn_gameconfigs.cpp smn_halflife.cpp \
smn_handles.cpp smn_keyvalues.cpp smn_banning.cpp \

View File

@ -33,6 +33,7 @@ files = [
'smn_timers.cpp',
'smn_players.cpp',
'MemoryUtils.cpp',
'smn_admin.cpp',
'sm_crc32.cpp'
]
if AMBuild.target['platform'] == 'windows':

View File

@ -29,6 +29,7 @@ OBJECTS = \
sm_crc32.cpp \
smn_timers.cpp \
MemoryUtils.cpp \
smn_admin.cpp \
smn_players.cpp
##############################################

View File

@ -54,6 +54,7 @@ IForwardManager *forwardsys;
ITimerSystem *timersys;
ServerGlobals serverGlobals;
IPlayerManager *playerhelpers;
IAdminSystem *adminsys;
static sm_logic_t logic =
{
@ -83,6 +84,7 @@ static void logic_init(const sm_core_t* core, sm_logic_t* _logic)
forwardsys = core->forwardsys;
timersys = core->timersys;
playerhelpers = core->playerhelpers;
adminsys = core->adminsys;
}
PLATFORM_EXTERN_C ITextParsers *get_textparsers()

View File

@ -50,6 +50,7 @@ extern IForwardManager *forwardsys;
extern ITimerSystem *timersys;
extern ServerGlobals serverGlobals;
extern IPlayerManager *playerhelpers;
extern IAdminSystem *adminsys;
#endif /* _INCLUDE_SOURCEMOD_COMMON_LOGIC_H_ */

View File

@ -42,7 +42,7 @@ using namespace SourceMod;
* Add 1 to the RHS of this expression to bump the intercom file
* This is to prevent mismatching core/logic binaries
*/
#define SM_LOGIC_MAGIC (0x0F47C0DE - 6)
#define SM_LOGIC_MAGIC (0x0F47C0DE - 7)
#if defined SM_LOGIC
class IVEngineServer
@ -66,6 +66,7 @@ namespace SourceMod
class ITimerSystem;
class IPlayerManager;
class IMemoryUtils;
class IAdminSystem;
}
class IVEngineServer;
@ -92,6 +93,7 @@ struct sm_core_t
IForwardManager *forwardsys;
ITimerSystem *timersys;
IPlayerManager *playerhelpers;
IAdminSystem *adminsys;
/* Functions */
void (*AddNatives)(sp_nativeinfo_t* nlist);
ConVar * (*FindConVar)(const char*);

View File

@ -29,13 +29,15 @@
* Version: $Id$
*/
#include "sm_globals.h"
#include "AdminCache.h"
#include "ForwardSys.h"
#include "common_logic.h"
#include <IAdminSystem.h>
#include <IForwardSys.h>
using namespace SourceMod;
static cell_t DumpAdminCache(IPluginContext *pContext, const cell_t *params)
{
g_Admins.DumpAdminCache((AdminCachePart)params[1], (params[2] == 1) ? true : false);
adminsys->DumpAdminCache((AdminCachePart)params[1], (params[2] == 1) ? true : false);
return 1;
}
@ -44,7 +46,7 @@ static cell_t AddCommandOverride(IPluginContext *pContext, const cell_t *params)
char *str;
pContext->LocalToString(params[1], &str);
g_Admins.AddCommandOverride(str, (OverrideType)params[2], (AdminFlag)params[3]);
adminsys->AddCommandOverride(str, (OverrideType)params[2], (AdminFlag)params[3]);
return 1;
}
@ -56,7 +58,7 @@ static cell_t GetCommandOverride(IPluginContext *pContext, const cell_t *params)
pContext->LocalToString(params[1], &cmd);
if (!g_Admins.GetCommandOverride(cmd, (OverrideType)params[2], &flags))
if (!adminsys->GetCommandOverride(cmd, (OverrideType)params[2], &flags))
{
return 0;
}
@ -75,7 +77,7 @@ static cell_t UnsetCommandOverride(IPluginContext *pContext, const cell_t *param
pContext->LocalToString(params[1], &cmd);
g_Admins.UnsetCommandOverride(cmd, (OverrideType)params[2]);
adminsys->UnsetCommandOverride(cmd, (OverrideType)params[2]);
return 1;
}
@ -86,7 +88,7 @@ static cell_t CreateAdmGroup(IPluginContext *pContext, const cell_t *params)
pContext->LocalToString(params[1], &str);
return g_Admins.AddGroup(str);
return adminsys->AddGroup(str);
}
static cell_t FindAdmGroup(IPluginContext *pContext, const cell_t *params)
@ -95,7 +97,7 @@ static cell_t FindAdmGroup(IPluginContext *pContext, const cell_t *params)
pContext->LocalToString(params[1], &str);
return g_Admins.FindGroupByName(str);
return adminsys->FindGroupByName(str);
}
static cell_t SetAdmGroupAddFlag(IPluginContext *pContext, const cell_t *params)
@ -104,7 +106,7 @@ static cell_t SetAdmGroupAddFlag(IPluginContext *pContext, const cell_t *params)
AdminFlag flag = (AdminFlag)params[2];
bool enabled = params[3] ? 1 : 0;
g_Admins.SetGroupAddFlag(id, flag, enabled);
adminsys->SetGroupAddFlag(id, flag, enabled);
return 1;
}
@ -114,7 +116,7 @@ static cell_t GetAdmGroupAddFlag(IPluginContext *pContext, const cell_t *params)
GroupId id = (GroupId)params[1];
AdminFlag flag = (AdminFlag)params[2];
return g_Admins.GetGroupAddFlag(id, flag) ? 1 : 0;
return adminsys->GetGroupAddFlag(id, flag) ? 1 : 0;
}
static cell_t SetAdmGroupImmunity(IPluginContext *pContext, const cell_t *params)
@ -123,7 +125,7 @@ static cell_t SetAdmGroupImmunity(IPluginContext *pContext, const cell_t *params
ImmunityType type = (ImmunityType)params[2];
bool enabled = params[3] ? 1 : 0;
g_Admins.SetGroupGenericImmunity(id, type, enabled);
adminsys->SetGroupGenericImmunity(id, type, enabled);
return 1;
}
@ -133,7 +135,7 @@ static cell_t GetAdmGroupImmunity(IPluginContext *pContext, const cell_t *params
GroupId id = (GroupId)params[1];
ImmunityType type = (ImmunityType)params[2];
return g_Admins.GetGroupGenericImmunity(id, type) ? 1 : 0;
return adminsys->GetGroupGenericImmunity(id, type) ? 1 : 0;
}
static cell_t SetAdmGroupImmuneFrom(IPluginContext *pContext, const cell_t *params)
@ -141,7 +143,7 @@ static cell_t SetAdmGroupImmuneFrom(IPluginContext *pContext, const cell_t *para
GroupId id = (GroupId)params[1];
GroupId other_id = (GroupId)params[2];
g_Admins.AddGroupImmunity(id, other_id);
adminsys->AddGroupImmunity(id, other_id);
return 1;
}
@ -150,14 +152,14 @@ static cell_t GetAdmGroupImmuneCount(IPluginContext *pContext, const cell_t *par
{
GroupId id = (GroupId)params[1];
return g_Admins.GetGroupImmunityCount(id);
return adminsys->GetGroupImmunityCount(id);
}
static cell_t GetAdmGroupImmuneFrom(IPluginContext *pContext, const cell_t *params)
{
GroupId id = (GroupId)params[1];
return g_Admins.GetGroupImmunity(id, params[2]);
return adminsys->GetGroupImmunity(id, params[2]);
}
static cell_t AddAdmGroupCmdOverride(IPluginContext *pContext, const cell_t *params)
@ -169,7 +171,7 @@ static cell_t AddAdmGroupCmdOverride(IPluginContext *pContext, const cell_t *par
pContext->LocalToString(params[2], &cmd);
g_Admins.AddGroupCommandOverride(id, cmd, type, rule);
adminsys->AddGroupCommandOverride(id, cmd, type, rule);
return 1;
}
@ -183,7 +185,7 @@ static cell_t GetAdmGroupCmdOverride(IPluginContext *pContext, const cell_t *par
pContext->LocalToString(params[2], &cmd);
if (!g_Admins.GetGroupCommandOverride(id, cmd, type, &rule))
if (!adminsys->GetGroupCommandOverride(id, cmd, type, &rule))
{
return 0;
}
@ -198,7 +200,7 @@ static cell_t GetAdmGroupCmdOverride(IPluginContext *pContext, const cell_t *par
static cell_t GetAdmGroupAddFlags(IPluginContext *pContext, const cell_t *params)
{
GroupId id = (GroupId)params[1];
return g_Admins.GetGroupAddFlags(id);
return adminsys->GetGroupAddFlags(id);
}
static cell_t RegisterAuthIdentType(IPluginContext *pContext, const cell_t *params)
@ -206,7 +208,7 @@ static cell_t RegisterAuthIdentType(IPluginContext *pContext, const cell_t *para
char *type;
pContext->LocalToString(params[1], &type);
g_Admins.RegisterAuthIdentType(type);
adminsys->RegisterAuthIdentType(type);
return 1;
}
@ -221,14 +223,14 @@ static cell_t CreateAdmin(IPluginContext *pContext, const cell_t *params)
admin = NULL;
}
return g_Admins.CreateAdmin(admin);
return adminsys->CreateAdmin(admin);
}
static cell_t GetAdminUsername(IPluginContext *pContext, const cell_t *params)
{
AdminId id = params[1];
size_t written;
const char *name = g_Admins.GetAdminName(id);
const char *name = adminsys->GetAdminName(id);
if (!name)
{
@ -248,7 +250,7 @@ static cell_t BindAdminIdentity(IPluginContext *pContext, const cell_t *params)
pContext->LocalToString(params[2], &auth);
pContext->LocalToString(params[3], &ident);
return g_Admins.BindAdminIdentity(id, auth, ident);
return adminsys->BindAdminIdentity(id, auth, ident);
}
static cell_t SetAdminFlag(IPluginContext *pContext, const cell_t *params)
@ -257,7 +259,7 @@ static cell_t SetAdminFlag(IPluginContext *pContext, const cell_t *params)
AdminFlag flag = (AdminFlag)params[2];
bool enabled = params[3] ? true : false;
g_Admins.SetAdminFlag(id, flag, enabled);
adminsys->SetAdminFlag(id, flag, enabled);
return 1;
}
@ -268,7 +270,7 @@ static cell_t GetAdminFlag(IPluginContext *pContext, const cell_t *params)
AdminFlag flag = (AdminFlag)params[2];
AccessMode mode = (AccessMode)params[3];
return g_Admins.GetAdminFlag(id, flag, mode);
return adminsys->GetAdminFlag(id, flag, mode);
}
static cell_t GetAdminFlags(IPluginContext *pContext, const cell_t *params)
@ -276,7 +278,7 @@ static cell_t GetAdminFlags(IPluginContext *pContext, const cell_t *params)
AdminId id = params[1];
AccessMode mode = (AccessMode)params[2];
return g_Admins.GetAdminFlags(id, mode);
return adminsys->GetAdminFlags(id, mode);
}
static cell_t AdminInheritGroup(IPluginContext *pContext, const cell_t *params)
@ -284,14 +286,14 @@ static cell_t AdminInheritGroup(IPluginContext *pContext, const cell_t *params)
AdminId id = params[1];
GroupId gid = params[2];
return g_Admins.AdminInheritGroup(id, gid);
return adminsys->AdminInheritGroup(id, gid);
}
static cell_t GetAdminGroupCount(IPluginContext *pContext, const cell_t *params)
{
AdminId id = params[1];
return g_Admins.GetAdminGroupCount(id);
return adminsys->GetAdminGroupCount(id);
}
static cell_t GetAdminGroup(IPluginContext *pContext, const cell_t *params)
@ -301,7 +303,7 @@ static cell_t GetAdminGroup(IPluginContext *pContext, const cell_t *params)
const char *name;
GroupId gid;
if ((gid=g_Admins.GetAdminGroup(id, index, &name)) == INVALID_GROUP_ID)
if ((gid=adminsys->GetAdminGroup(id, index, &name)) == INVALID_GROUP_ID)
{
return gid;
}
@ -323,7 +325,7 @@ static cell_t SetAdminPassword(IPluginContext *pContext, const cell_t *params)
pContext->LocalToString(params[2], &password);
g_Admins.SetAdminPassword(id, password);
adminsys->SetAdminPassword(id, password);
return 1;
}
@ -331,7 +333,7 @@ static cell_t SetAdminPassword(IPluginContext *pContext, const cell_t *params)
static cell_t GetAdminPassword(IPluginContext *pContext, const cell_t *params)
{
AdminId id = params[1];
const char *password = g_Admins.GetAdminPassword(id);
const char *password = adminsys->GetAdminPassword(id);
if (!password)
{
@ -350,14 +352,14 @@ static cell_t FindAdminByIdentity(IPluginContext *pContext, const cell_t *params
pContext->LocalToString(params[1], &auth);
pContext->LocalToString(params[2], &ident);
return g_Admins.FindAdminByIdentity(auth, ident);
return adminsys->FindAdminByIdentity(auth, ident);
}
static cell_t RemoveAdmin(IPluginContext *pContext, const cell_t *params)
{
AdminId id = params[1];
return g_Admins.InvalidateAdmin(id);
return adminsys->InvalidateAdmin(id);
}
static cell_t FlagBitsToBitArray(IPluginContext *pContext, const cell_t *params)
@ -365,7 +367,7 @@ static cell_t FlagBitsToBitArray(IPluginContext *pContext, const cell_t *params)
FlagBits bits = (FlagBits)params[1];
bool array[AdminFlags_TOTAL];
cell_t *addr;
unsigned int numWr = g_Admins.FlagBitsToBitArray(bits, array, AdminFlags_TOTAL);
unsigned int numWr = adminsys->FlagBitsToBitArray(bits, array, AdminFlags_TOTAL);
pContext->LocalToPhysAddr(params[2], &addr);
@ -391,7 +393,7 @@ static cell_t FlagBitArrayToBits(IPluginContext *pContext, const cell_t *params)
array[i] = addr[i] ? true : false;
}
return g_Admins.FlagBitArrayToBits(array, num);
return adminsys->FlagBitArrayToBits(array, num);
}
static cell_t FlagArrayToBits(IPluginContext *pContext, const cell_t *params)
@ -401,7 +403,7 @@ static cell_t FlagArrayToBits(IPluginContext *pContext, const cell_t *params)
if (sizeof(AdminFlag) == sizeof(cell_t))
{
return g_Admins.FlagArrayToBits((const AdminFlag *)addr, params[2]);
return adminsys->FlagArrayToBits((const AdminFlag *)addr, params[2]);
} else {
AdminFlag flags[AdminFlags_TOTAL];
unsigned int num = ((unsigned)params[2] > AdminFlags_TOTAL ? AdminFlags_TOTAL : params[2]);
@ -410,7 +412,7 @@ static cell_t FlagArrayToBits(IPluginContext *pContext, const cell_t *params)
{
flags[i] = (AdminFlag)addr[i];
}
return g_Admins.FlagArrayToBits(flags, num);
return adminsys->FlagArrayToBits(flags, num);
}
}
@ -421,11 +423,11 @@ static cell_t FlagBitsToArray(IPluginContext *pContext, const cell_t *params)
if (sizeof(AdminFlag) == sizeof(cell_t))
{
return g_Admins.FlagBitsToArray(params[1], (AdminFlag *)addr, params[3]);
return adminsys->FlagBitsToArray(params[1], (AdminFlag *)addr, params[3]);
} else {
AdminFlag flags[AdminFlags_TOTAL];
unsigned int num = ((unsigned)params[2] > AdminFlags_TOTAL ? AdminFlags_TOTAL : params[2]);
num = g_Admins.FlagBitsToArray(params[1], flags, num);
num = adminsys->FlagBitsToArray(params[1], flags, num);
for (unsigned int i=0; i<num; i++)
{
@ -438,36 +440,36 @@ static cell_t FlagBitsToArray(IPluginContext *pContext, const cell_t *params)
static cell_t CanAdminTarget(IPluginContext *pContext, const cell_t *params)
{
return g_Admins.CanAdminTarget(params[1], params[2]) ? 1 : 0;
return adminsys->CanAdminTarget(params[1], params[2]) ? 1 : 0;
}
static cell_t CreateAuthMethod(IPluginContext *pContext, const cell_t *params)
{
char *name;
pContext->LocalToString(params[1], &name);
g_Admins.RegisterAuthIdentType(name);
adminsys->RegisterAuthIdentType(name);
return 1;
}
static cell_t SetAdmGroupImmunityLevel(IPluginContext *pContext, const cell_t *params)
{
return g_Admins.SetGroupImmunityLevel(params[1], params[2]);
return adminsys->SetGroupImmunityLevel(params[1], params[2]);
}
static cell_t GetAdmGroupImmunityLevel(IPluginContext *pContext, const cell_t *params)
{
return g_Admins.GetGroupImmunityLevel(params[1]);
return adminsys->GetGroupImmunityLevel(params[1]);
}
static cell_t SetAdminImmunityLevel(IPluginContext *pContext, const cell_t *params)
{
return g_Admins.SetAdminImmunityLevel(params[1], params[2]);
return adminsys->SetAdminImmunityLevel(params[1], params[2]);
}
static cell_t GetAdminImmunityLevel(IPluginContext *pContext, const cell_t *params)
{
return g_Admins.GetAdminImmunityLevel(params[1]);
return adminsys->GetAdminImmunityLevel(params[1]);
}
static cell_t FindFlagByName(IPluginContext *pContext, const cell_t *params)
@ -479,7 +481,7 @@ static cell_t FindFlagByName(IPluginContext *pContext, const cell_t *params)
pContext->LocalToPhysAddr(params[2], &addr);
AdminFlag admflag;
if (!g_Admins.FindFlag(flag, &admflag))
if (!adminsys->FindFlag(flag, &admflag))
{
return 0;
}
@ -495,7 +497,7 @@ static cell_t FindFlagByChar(IPluginContext *pContext, const cell_t *params)
pContext->LocalToPhysAddr(params[2], &addr);
AdminFlag admflag;
if (!g_Admins.FindFlag((char)params[1], &admflag))
if (!adminsys->FindFlag((char)params[1], &admflag))
{
return 0;
}
@ -514,7 +516,7 @@ static cell_t ReadFlagString(IPluginContext *pContext, const cell_t *params)
pContext->LocalToPhysAddr(params[2], &addr);
const char *end = flag;
FlagBits bits = g_Admins.ReadFlagString(flag, &end);
FlagBits bits = adminsys->ReadFlagString(flag, &end);
*addr = end - flag;

View File

@ -47,6 +47,7 @@
#include "logic_bridge.h"
#include "DebugReporter.h"
#include "PlayerManager.h"
#include "AdminCache.h"
static ILibrary *g_pLogic = NULL;
static LogicInitFunction logic_init_fn;
@ -116,6 +117,7 @@ static sm_core_t core_bridge =
&g_Forwards,
&g_Timers,
&g_Players,
&g_Admins,
/* Functions */
add_natives,
find_convar,