plugins/admin-flatfile/admin-flatfile.sp
author David Anderson <dvander@alliedmods.net>
Fri Aug 10 04:53:30 2007 +0000 (2007-08-10)
changeset 1298 9cddbed74581
parent 989 365bacaddd5b
child 1330 ab94316bb52b
permissions -rw-r--r--
flag letter assignment is now handled by core
dvander@444
     1
/**
dvander@444
     2
 * admin-flatfile.sp
dvander@444
     3
 * Manages the standard flat files for admins.  This is the file to compile.
dvander@444
     4
 * This file is part of SourceMod, Copyright (C) 2004-2007 AlliedModders LLC
dvander@444
     5
 *
dvander@444
     6
 * This program is free software; you can redistribute it and/or
dvander@444
     7
 * modify it under the terms of the GNU General Public License
dvander@444
     8
 * as published by the Free Software Foundation; either version 2
dvander@444
     9
 * of the License, or (at your option) any later version.
dvander@444
    10
 *
dvander@444
    11
 * This program is distributed in the hope that it will be useful,
dvander@444
    12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
dvander@444
    13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
dvander@444
    14
 * GNU General Public License for more details.
dvander@444
    15
 * 
dvander@444
    16
 * You should have received a copy of the GNU General Public License
dvander@444
    17
 * along with this program; if not, write to the Free Software
dvander@444
    18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
ds@908
    19
 *
ds@908
    20
 * Version: $Id$
dvander@444
    21
 */
dvander@444
    22
ds@989
    23
/* We like semicolons */
ds@989
    24
#pragma semicolon 1
dvander@444
    25
dvander@437
    26
#include <sourcemod>
dvander@637
    27
dvander@437
    28
public Plugin:myinfo = 
dvander@437
    29
{
dvander@460
    30
	name = "Admin File Reader",
dvander@437
    31
	author = "AlliedModders LLC",
dvander@437
    32
	description = "Reads admin files",
dvander@902
    33
	version = SOURCEMOD_VERSION,
dvander@437
    34
	url = "http://www.sourcemod.net/"
dvander@437
    35
};
dvander@437
    36
dvander@442
    37
/** Various parsing globals */
dvander@437
    38
new bool:g_LoggedFileName = false;			/* Whether or not the file name has been logged */
dvander@442
    39
new g_ErrorCount = 0;						/* Current error count */
dvander@442
    40
new g_IgnoreLevel = 0;						/* Nested ignored section count, so users can screw up files safely */
dvander@442
    41
new String:g_Filename[PLATFORM_MAX_PATH];	/* Used for error messages */
dvander@437
    42
dvander@437
    43
#include "admin-overrides.sp"
dvander@437
    44
#include "admin-groups.sp"
dvander@444
    45
#include "admin-users.sp"
dvander@637
    46
#include "admin-simple.sp"
dvander@437
    47
dvander@438
    48
public OnRebuildAdminCache(AdminCachePart:part)
dvander@437
    49
{
dvander@438
    50
	if (part == AdminCache_Overrides)
dvander@437
    51
	{
dvander@437
    52
		ReadOverrides();
dvander@444
    53
	} else if (part == AdminCache_Groups) {
dvander@437
    54
		ReadGroups();
dvander@444
    55
	} else if (part == AdminCache_Admins) {
dvander@444
    56
		ReadUsers();
dvander@637
    57
		ReadSimpleUsers();
dvander@437
    58
	}
dvander@437
    59
}
dvander@442
    60
dvander@442
    61
ParseError(const String:format[], {Handle,String,Float,_}:...)
dvander@442
    62
{
dvander@442
    63
	decl String:buffer[512];
dvander@442
    64
	
dvander@442
    65
	if (!g_LoggedFileName)
dvander@442
    66
	{
dvander@443
    67
		LogError("Error(s) detected parsing %s", g_Filename);
dvander@442
    68
		g_LoggedFileName = true;
dvander@442
    69
	}
dvander@442
    70
	
dvander@442
    71
	VFormat(buffer, sizeof(buffer), format, 2);
dvander@442
    72
	
dvander@442
    73
	LogError(" (%d) %s", ++g_ErrorCount, buffer);
dvander@442
    74
}
dvander@442
    75
dvander@442
    76
InitGlobalStates()
dvander@442
    77
{
dvander@442
    78
	g_ErrorCount = 0;
dvander@442
    79
	g_IgnoreLevel = 0;
dvander@442
    80
	g_LoggedFileName = false;
dvander@442
    81
}