plugins/admin-flatfile/admin-flatfile.sp
author Scott Ehlert <ds@alliedmods.net>
Wed Jun 20 08:51:40 2007 +0000 (2007-06-20)
changeset 989 365bacaddd5b
parent 908 cd411e8827c4
child 1298 9cddbed74581
permissions -rw-r--r--
Moved pragams above includes in plugins. Not too sure why.
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@439
    38
new bool:g_FlagsSet[26];					/* Maps whether flags are set */
dvander@437
    39
new AdminFlag:g_FlagLetters[26];			/* Maps the flag letters */		
dvander@437
    40
new bool:g_LoggedFileName = false;			/* Whether or not the file name has been logged */
dvander@442
    41
new g_ErrorCount = 0;						/* Current error count */
dvander@442
    42
new g_IgnoreLevel = 0;						/* Nested ignored section count, so users can screw up files safely */
dvander@442
    43
new String:g_Filename[PLATFORM_MAX_PATH];	/* Used for error messages */
dvander@437
    44
dvander@437
    45
#include "admin-levels.sp"
dvander@437
    46
#include "admin-overrides.sp"
dvander@437
    47
#include "admin-groups.sp"
dvander@444
    48
#include "admin-users.sp"
dvander@637
    49
#include "admin-simple.sp"
dvander@437
    50
dvander@438
    51
public OnRebuildAdminCache(AdminCachePart:part)
dvander@437
    52
{
dvander@437
    53
	RefreshLevels();
dvander@438
    54
	if (part == AdminCache_Overrides)
dvander@437
    55
	{
dvander@437
    56
		ReadOverrides();
dvander@444
    57
	} else if (part == AdminCache_Groups) {
dvander@437
    58
		ReadGroups();
dvander@444
    59
	} else if (part == AdminCache_Admins) {
dvander@444
    60
		ReadUsers();
dvander@637
    61
		ReadSimpleUsers();
dvander@437
    62
	}
dvander@437
    63
}
dvander@442
    64
dvander@442
    65
ParseError(const String:format[], {Handle,String,Float,_}:...)
dvander@442
    66
{
dvander@442
    67
	decl String:buffer[512];
dvander@442
    68
	
dvander@442
    69
	if (!g_LoggedFileName)
dvander@442
    70
	{
dvander@443
    71
		LogError("Error(s) detected parsing %s", g_Filename);
dvander@442
    72
		g_LoggedFileName = true;
dvander@442
    73
	}
dvander@442
    74
	
dvander@442
    75
	VFormat(buffer, sizeof(buffer), format, 2);
dvander@442
    76
	
dvander@442
    77
	LogError(" (%d) %s", ++g_ErrorCount, buffer);
dvander@442
    78
}
dvander@442
    79
dvander@442
    80
InitGlobalStates()
dvander@442
    81
{
dvander@442
    82
	g_ErrorCount = 0;
dvander@442
    83
	g_IgnoreLevel = 0;
dvander@442
    84
	g_LoggedFileName = false;
dvander@442
    85
}