plugins/admin-flatfile/admin-flatfile.sp
author David Anderson <dvander@alliedmods.net>
Tue Feb 06 23:30:50 2007 +0000 (2007-02-06)
changeset 442 0ee8623fbc79
parent 439 0f0e53f49f5a
child 443 327328403741
permissions -rw-r--r--
ignores bad groups safely now
cleaned up code a bit, removed redundancy
dvander@437
     1
#include <sourcemod>
dvander@437
     2
#include <textparse>
dvander@437
     3
dvander@437
     4
public Plugin:myinfo = 
dvander@437
     5
{
dvander@437
     6
	name = "Admin Base",
dvander@437
     7
	author = "AlliedModders LLC",
dvander@437
     8
	description = "Reads admin files",
dvander@437
     9
	version = "1.0.0.0",
dvander@437
    10
	url = "http://www.sourcemod.net/"
dvander@437
    11
};
dvander@437
    12
dvander@442
    13
/** Various parsing globals */
dvander@439
    14
new bool:g_FlagsSet[26];					/* Maps whether flags are set */
dvander@437
    15
new AdminFlag:g_FlagLetters[26];			/* Maps the flag letters */		
dvander@437
    16
new bool:g_LoggedFileName = false;			/* Whether or not the file name has been logged */
dvander@442
    17
new g_ErrorCount = 0;						/* Current error count */
dvander@442
    18
new g_IgnoreLevel = 0;						/* Nested ignored section count, so users can screw up files safely */
dvander@442
    19
new String:g_Filename[PLATFORM_MAX_PATH];	/* Used for error messages */
dvander@437
    20
dvander@437
    21
#include "admin-levels.sp"
dvander@437
    22
#include "admin-overrides.sp"
dvander@437
    23
#include "admin-groups.sp"
dvander@437
    24
dvander@438
    25
public OnRebuildAdminCache(AdminCachePart:part)
dvander@437
    26
{
dvander@437
    27
	RefreshLevels();
dvander@438
    28
	if (part == AdminCache_Overrides)
dvander@437
    29
	{
dvander@437
    30
		ReadOverrides();
dvander@438
    31
	} else if (part == AdminCache_Groups)
dvander@437
    32
	{
dvander@437
    33
		ReadGroups();
dvander@437
    34
	}
dvander@437
    35
}
dvander@442
    36
dvander@442
    37
ParseError(const String:format[], {Handle,String,Float,_}:...)
dvander@442
    38
{
dvander@442
    39
	decl String:buffer[512];
dvander@442
    40
	
dvander@442
    41
	if (!g_LoggedFileName)
dvander@442
    42
	{
dvander@442
    43
		LogError("Error(s) detected parsing admin_levels.cfg:");
dvander@442
    44
		g_LoggedFileName = true;
dvander@442
    45
	}
dvander@442
    46
	
dvander@442
    47
	VFormat(buffer, sizeof(buffer), format, 2);
dvander@442
    48
	
dvander@442
    49
	LogError(" (%d) %s", ++g_ErrorCount, buffer);
dvander@442
    50
}
dvander@442
    51
dvander@442
    52
InitGlobalStates()
dvander@442
    53
{
dvander@442
    54
	g_ErrorCount = 0;
dvander@442
    55
	g_IgnoreLevel = 0;
dvander@442
    56
	g_LoggedFileName = false;
dvander@442
    57
}