split this baby up
--HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40415
This commit is contained in:
parent
831344d353
commit
701cda8f0b
20
plugins/admin-base/admin-base.sp
Normal file
20
plugins/admin-base/admin-base.sp
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#include <sourcemod>
|
||||||
|
#include <textparse>
|
||||||
|
|
||||||
|
public Plugin:myinfo =
|
||||||
|
{
|
||||||
|
name = "Admin Base",
|
||||||
|
author = "AlliedModders LLC",
|
||||||
|
description = "Reads admin files",
|
||||||
|
version = "1.0.0.0",
|
||||||
|
url = "http://www.sourcemod.net/"
|
||||||
|
};
|
||||||
|
|
||||||
|
/** Various globals */
|
||||||
|
new AdminFlag:g_FlagLetters[26]; /* Maps the flag letters */
|
||||||
|
new bool:g_LoggedFileName = false; /* Whether or not the file name has been logged */
|
||||||
|
|
||||||
|
public OnRebuildAdminCache(cache_flags)
|
||||||
|
{
|
||||||
|
RefreshLevels();
|
||||||
|
}
|
@ -1,40 +1,20 @@
|
|||||||
#include <sourcemod>
|
|
||||||
#include <textparse>
|
|
||||||
|
|
||||||
public Plugin:myinfo =
|
|
||||||
{
|
|
||||||
name = "Admin Base",
|
|
||||||
author = "AlliedModders LLC",
|
|
||||||
description = "Reads admin files",
|
|
||||||
version = "1.0.0.0",
|
|
||||||
url = "http://www.sourcemod.net/"
|
|
||||||
};
|
|
||||||
|
|
||||||
#define LEVEL_STATE_NONE 0
|
#define LEVEL_STATE_NONE 0
|
||||||
#define LEVEL_STATE_LEVELS 1
|
#define LEVEL_STATE_LEVELS 1
|
||||||
#define LEVEL_STATE_FLAGS 2
|
#define LEVEL_STATE_FLAGS 2
|
||||||
#define LEVEL_STATE_OVERRIDES 3
|
|
||||||
|
|
||||||
|
|
||||||
/** Parser handles */
|
|
||||||
new Handle:g_hLevelParser = INVALID_HANDLE;
|
new Handle:g_hLevelParser = INVALID_HANDLE;
|
||||||
|
|
||||||
/** Parser states */
|
|
||||||
new g_LevelState = LEVEL_STATE_NONE;
|
new g_LevelState = LEVEL_STATE_NONE;
|
||||||
|
|
||||||
/** Globals for levels */
|
InitializeLevelParser()
|
||||||
new AdminFlag:g_FlagLetters[26]; /* Maps the flag letters */
|
|
||||||
new bool:g_ReadOverrides = false; /* Whether or not to read overrides */
|
|
||||||
new bool:g_LoggedFileName = false; /* Whether or not the file name has been logged */
|
|
||||||
|
|
||||||
|
|
||||||
public OnPluginStart()
|
|
||||||
{
|
{
|
||||||
g_hLevelParser = SMC_CreateParser();
|
if (g_hLevelParser == INVALID_HANDLE)
|
||||||
SMC_SetReaders(g_hLevelParser,
|
{
|
||||||
ReadLevels_NewSection,
|
g_hLevelParser = SMC_CreateParser();
|
||||||
ReadLevels_KeyValue,
|
SMC_SetReaders(g_hLevelParser,
|
||||||
ReadLevels_EndSection);
|
ReadLevels_NewSection,
|
||||||
|
ReadLevels_KeyValue,
|
||||||
|
ReadLevels_EndSection);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LoadDefaultLetters()
|
LoadDefaultLetters()
|
||||||
@ -69,8 +49,6 @@ public SMCResult:ReadLevels_NewSection(Handle:smc, const String:name[], bool:opt
|
|||||||
if (StrEqual(name, "Flags"))
|
if (StrEqual(name, "Flags"))
|
||||||
{
|
{
|
||||||
g_LevelState = LEVEL_STATE_FLAGS;
|
g_LevelState = LEVEL_STATE_FLAGS;
|
||||||
} else if (StrEqual(name, "Overrides")) {
|
|
||||||
g_LevelState = LEVEL_STATE_OVERRIDES;
|
|
||||||
} else {
|
} else {
|
||||||
/* :TODO: log error */
|
/* :TODO: log error */
|
||||||
}
|
}
|
||||||
@ -131,13 +109,6 @@ public SMCResult:ReadLevels_KeyValue(Handle:smc, const String:key[], const Strin
|
|||||||
}
|
}
|
||||||
|
|
||||||
g_FlagLetters[chr] = flag;
|
g_FlagLetters[chr] = flag;
|
||||||
|
|
||||||
|
|
||||||
} else if (g_LevelState == LEVEL_STATE_OVERRIDES) {
|
|
||||||
if (!g_ReadOverrides)
|
|
||||||
{
|
|
||||||
return SMCParse_Continue;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return SMCParse_Continue;
|
return SMCParse_Continue;
|
||||||
@ -148,30 +119,17 @@ public SMCResult:ReadLevels_EndSection(Handle:smc)
|
|||||||
if (g_LevelState == LEVEL_STATE_FLAGS)
|
if (g_LevelState == LEVEL_STATE_FLAGS)
|
||||||
{
|
{
|
||||||
g_LevelState = LEVEL_STATE_LEVELS;
|
g_LevelState = LEVEL_STATE_LEVELS;
|
||||||
} else if (g_LevelState == LEVEL_STATE_OVERRIDES) {
|
|
||||||
g_LevelState = LEVEL_STATE_OVERRIDES;
|
|
||||||
} else if (g_LevelState == LEVEL_STATE_LEVELS) {
|
} else if (g_LevelState == LEVEL_STATE_LEVELS) {
|
||||||
g_LevelState = LEVEL_STATE_NONE;
|
g_LevelState = LEVEL_STATE_NONE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public OnRebuildAdminCache(cache_flags)
|
|
||||||
{
|
|
||||||
if (cache_flags & ADMIN_CACHE_OVERRIDES)
|
|
||||||
{
|
|
||||||
g_ReadOverrides = true;
|
|
||||||
} else {
|
|
||||||
g_ReadOverrides = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
RefreshLevels();
|
|
||||||
}
|
|
||||||
|
|
||||||
RefreshLevels()
|
RefreshLevels()
|
||||||
{
|
{
|
||||||
new String:path[PLATFORM_MAX_PATH];
|
new String:path[PLATFORM_MAX_PATH];
|
||||||
|
|
||||||
LoadDefaultLetters();
|
LoadDefaultLetters();
|
||||||
|
InitializeLevelParser();
|
||||||
|
|
||||||
BuildPath(Path_SM, path, sizeof(path), "configs/admin_levels.cfg");
|
BuildPath(Path_SM, path, sizeof(path), "configs/admin_levels.cfg");
|
||||||
|
|
Loading…
Reference in New Issue
Block a user