MapAdmin: Split configs per map, instead of one big one.

I'm more of a basic kind of guy. This is easier to manage.
This commit is contained in:
zaCade 2019-01-05 16:59:12 +01:00
parent d9cc25bb19
commit 485542f317

View File

@ -5,7 +5,6 @@
#include <sdktools> #include <sdktools>
KeyValues g_Config; KeyValues g_Config;
bool g_Enabled = false;
public Plugin myinfo = public Plugin myinfo =
{ {
@ -20,16 +19,30 @@ public void OnPluginStart()
{ {
LoadTranslations("common.phrases"); LoadTranslations("common.phrases");
RegAdminCmd("sm_adminroom", Command_AdminRoom, ADMFLAG_GENERIC, "sm_adminroom [#userid|name]");
RegAdminCmd("sm_stage", Command_Stage, ADMFLAG_GENERIC, "sm_stage <stage>");
}
public void OnMapStart()
{
if(g_Config)
delete g_Config;
char sMapName[PLATFORM_MAX_PATH];
GetCurrentMap(sMapName, sizeof(sMapName));
char sConfigFile[PLATFORM_MAX_PATH]; char sConfigFile[PLATFORM_MAX_PATH];
BuildPath(Path_SM, sConfigFile, sizeof(sConfigFile), "configs/MapAdmin.cfg"); BuildPath(Path_SM, sConfigFile, sizeof(sConfigFile), "configs/mapadmin/%s.cfg", sMapName);
if(!FileExists(sConfigFile)) if(!FileExists(sConfigFile))
{ {
SetFailState("Could not find config: \"%s\"", sConfigFile); LogMessage("Could not find mapconfig: \"%s\"", sConfigFile);
return; return;
} }
g_Config = new KeyValues("maps"); LogMessage("Found mapconfig: \"%s\"", sConfigFile);
g_Config = new KeyValues("mapadmin");
if(!g_Config.ImportFromFile(sConfigFile)) if(!g_Config.ImportFromFile(sConfigFile))
{ {
delete g_Config; delete g_Config;
@ -37,26 +50,11 @@ public void OnPluginStart()
return; return;
} }
g_Config.Rewind(); g_Config.Rewind();
RegAdminCmd("sm_adminroom", Command_AdminRoom, ADMFLAG_GENERIC, "sm_adminroom [#userid|name]");
RegAdminCmd("sm_stage", Command_Stage, ADMFLAG_GENERIC, "sm_stage <stage>");
}
public void OnMapStart()
{
g_Enabled = false;
g_Config.Rewind();
char sMapName[PLATFORM_MAX_PATH];
GetCurrentMap(sMapName, sizeof(sMapName));
if(g_Config.JumpToKey(sMapName, false))
g_Enabled = true;
} }
public Action Command_AdminRoom(int client, int argc) public Action Command_AdminRoom(int client, int argc)
{ {
if(!g_Enabled) if(!g_Config)
{ {
ReplyToCommand(client, "[SM] The current map is not supported."); ReplyToCommand(client, "[SM] The current map is not supported.");
return Plugin_Handled; return Plugin_Handled;
@ -118,7 +116,7 @@ public Action Command_AdminRoom(int client, int argc)
public Action Command_Stage(int client, int argc) public Action Command_Stage(int client, int argc)
{ {
if(!g_Enabled) if(!g_Config)
{ {
ReplyToCommand(client, "[SM] The current map is not supported."); ReplyToCommand(client, "[SM] The current map is not supported.");
return Plugin_Handled; return Plugin_Handled;