108 lines
3.2 KiB
SourcePawn
108 lines
3.2 KiB
SourcePawn
// *************************************************************************
|
|
// This file is part of SourceBans++.
|
|
//
|
|
// Copyright (C) 2014-2016 SourceBans++ Dev Team <https://github.com/sbpp>
|
|
//
|
|
// SourceBans++ is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, per version 3 of the License.
|
|
//
|
|
// SourceBans++ is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with SourceBans++. If not, see <http://www.gnu.org/licenses/>.
|
|
//
|
|
// This file is based off work(s) covered by the following copyright(s):
|
|
//
|
|
// SourceMod Admin File Reader Plugin
|
|
// Copyright (C) 2004-2008 AlliedModders LLC
|
|
// Licensed under GNU GPL version 3
|
|
// Page: <http://www.sourcemod.net/>
|
|
//
|
|
// *************************************************************************
|
|
|
|
#pragma semicolon 1
|
|
|
|
#include <sourcemod>
|
|
|
|
#if SOURCEMOD_V_MAJOR >= 1 && SOURCEMOD_V_MINOR >= 7
|
|
public Plugin:myinfo =
|
|
#else
|
|
public Plugin myinfo =
|
|
#endif
|
|
{
|
|
name = "SourceBans++: Admin Config Loader",
|
|
author = "AlliedModders LLC, SourceBans++ Dev Team",
|
|
description = "Reads Admin Files",
|
|
version = "1.6.4",
|
|
url = "https://sbpp.github.io"
|
|
};
|
|
|
|
|
|
/** Various parsing globals */
|
|
#if SOURCEMOD_V_MAJOR >= 1 && SOURCEMOD_V_MINOR >= 7
|
|
new bool:g_LoggedFileName = false; /* Whether or not the file name has been logged */
|
|
new g_ErrorCount = 0; /* Current error count */
|
|
new g_IgnoreLevel = 0; /* Nested ignored section count, so users can screw up files safely */
|
|
new g_CurrentLine = 0; /* Current line we're on */
|
|
new String:g_Filename[PLATFORM_MAX_PATH]; /* Used for error messages */
|
|
#else
|
|
bool g_LoggedFileName = false; /* Whether or not the file name has been logged */
|
|
int g_ErrorCount = 0; /* Current error count */
|
|
int g_IgnoreLevel = 0; /* Nested ignored section count, so users can screw up files safely */
|
|
int g_CurrentLine = 0; /* Current line we're on */
|
|
char g_Filename[PLATFORM_MAX_PATH]; /* Used for error messages */
|
|
#endif
|
|
|
|
#include "sbpp_admcfg/sbpp_admin_groups.sp"
|
|
#include "sbpp_admcfg/sbpp_admin_users.sp"
|
|
|
|
#if SOURCEMOD_V_MAJOR >= 1 && SOURCEMOD_V_MINOR >= 7
|
|
public OnRebuildAdminCache(AdminCachePart:part)
|
|
#else
|
|
public void OnRebuildAdminCache(AdminCachePart part)
|
|
#endif
|
|
{
|
|
if (part == AdminCache_Groups) {
|
|
ReadGroups();
|
|
} else if (part == AdminCache_Admins) {
|
|
ReadUsers();
|
|
}
|
|
}
|
|
|
|
#if SOURCEMOD_V_MAJOR >= 1 && SOURCEMOD_V_MINOR >= 7
|
|
ParseError(const String:format[], any:...)
|
|
#else
|
|
void ParseError(const char[] format, any...)
|
|
#endif
|
|
{
|
|
#if SOURCEMOD_V_MAJOR >= 1 && SOURCEMOD_V_MINOR >= 7
|
|
decl String:buffer[512];
|
|
#else
|
|
char buffer[512];
|
|
#endif
|
|
|
|
if (!g_LoggedFileName)
|
|
{
|
|
LogError("Error(s) Detected Parsing %s", g_Filename);
|
|
g_LoggedFileName = true;
|
|
}
|
|
|
|
VFormat(buffer, sizeof(buffer), format, 2);
|
|
|
|
LogError(" (line %d) %s", g_CurrentLine, buffer);
|
|
|
|
g_ErrorCount++;
|
|
}
|
|
|
|
void InitGlobalStates()
|
|
{
|
|
g_ErrorCount = 0;
|
|
g_IgnoreLevel = 0;
|
|
g_CurrentLine = 0;
|
|
g_LoggedFileName = false;
|
|
}
|