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>
KeyValues g_Config;
bool g_Enabled = false;
public Plugin myinfo =
{
@ -20,16 +19,30 @@ public void OnPluginStart()
{
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];
BuildPath(Path_SM, sConfigFile, sizeof(sConfigFile), "configs/MapAdmin.cfg");
BuildPath(Path_SM, sConfigFile, sizeof(sConfigFile), "configs/mapadmin/%s.cfg", sMapName);
if(!FileExists(sConfigFile))
{
SetFailState("Could not find config: \"%s\"", sConfigFile);
LogMessage("Could not find mapconfig: \"%s\"", sConfigFile);
return;
}
g_Config = new KeyValues("maps");
LogMessage("Found mapconfig: \"%s\"", sConfigFile);
g_Config = new KeyValues("mapadmin");
if(!g_Config.ImportFromFile(sConfigFile))
{
delete g_Config;
@ -37,26 +50,11 @@ public void OnPluginStart()
return;
}
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)
{
if(!g_Enabled)
if(!g_Config)
{
ReplyToCommand(client, "[SM] The current map is not supported.");
return Plugin_Handled;
@ -118,7 +116,7 @@ public Action Command_AdminRoom(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.");
return Plugin_Handled;