plugins/admin-flatfile/admin-flatfile.sp
author Scott Ehlert <ds@alliedmods.net>
Thu Jun 07 06:08:16 2007 +0000 (2007-06-07)
changeset 908 cd411e8827c4
parent 902 7cf6f3696164
child 989 365bacaddd5b
permissions -rw-r--r--
Added SVN Id keyword to plugin headers
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
dvander@444
    23
dvander@437
    24
#include <sourcemod>
dvander@437
    25
#include <textparse>
dvander@437
    26
dvander@637
    27
/* We like semicolons */
dvander@637
    28
#pragma semicolon 1
dvander@637
    29
dvander@437
    30
public Plugin:myinfo = 
dvander@437
    31
{
dvander@460
    32
	name = "Admin File Reader",
dvander@437
    33
	author = "AlliedModders LLC",
dvander@437
    34
	description = "Reads admin files",
dvander@902
    35
	version = SOURCEMOD_VERSION,
dvander@437
    36
	url = "http://www.sourcemod.net/"
dvander@437
    37
};
dvander@437
    38
dvander@442
    39
/** Various parsing globals */
dvander@439
    40
new bool:g_FlagsSet[26];					/* Maps whether flags are set */
dvander@437
    41
new AdminFlag:g_FlagLetters[26];			/* Maps the flag letters */		
dvander@437
    42
new bool:g_LoggedFileName = false;			/* Whether or not the file name has been logged */
dvander@442
    43
new g_ErrorCount = 0;						/* Current error count */
dvander@442
    44
new g_IgnoreLevel = 0;						/* Nested ignored section count, so users can screw up files safely */
dvander@442
    45
new String:g_Filename[PLATFORM_MAX_PATH];	/* Used for error messages */
dvander@437
    46
dvander@437
    47
#include "admin-levels.sp"
dvander@437
    48
#include "admin-overrides.sp"
dvander@437
    49
#include "admin-groups.sp"
dvander@444
    50
#include "admin-users.sp"
dvander@637
    51
#include "admin-simple.sp"
dvander@437
    52
dvander@438
    53
public OnRebuildAdminCache(AdminCachePart:part)
dvander@437
    54
{
dvander@437
    55
	RefreshLevels();
dvander@438
    56
	if (part == AdminCache_Overrides)
dvander@437
    57
	{
dvander@437
    58
		ReadOverrides();
dvander@444
    59
	} else if (part == AdminCache_Groups) {
dvander@437
    60
		ReadGroups();
dvander@444
    61
	} else if (part == AdminCache_Admins) {
dvander@444
    62
		ReadUsers();
dvander@637
    63
		ReadSimpleUsers();
dvander@437
    64
	}
dvander@437
    65
}
dvander@442
    66
dvander@442
    67
ParseError(const String:format[], {Handle,String,Float,_}:...)
dvander@442
    68
{
dvander@442
    69
	decl String:buffer[512];
dvander@442
    70
	
dvander@442
    71
	if (!g_LoggedFileName)
dvander@442
    72
	{
dvander@443
    73
		LogError("Error(s) detected parsing %s", g_Filename);
dvander@442
    74
		g_LoggedFileName = true;
dvander@442
    75
	}
dvander@442
    76
	
dvander@442
    77
	VFormat(buffer, sizeof(buffer), format, 2);
dvander@442
    78
	
dvander@442
    79
	LogError(" (%d) %s", ++g_ErrorCount, buffer);
dvander@442
    80
}
dvander@442
    81
dvander@442
    82
InitGlobalStates()
dvander@442
    83
{
dvander@442
    84
	g_ErrorCount = 0;
dvander@442
    85
	g_IgnoreLevel = 0;
dvander@442
    86
	g_LoggedFileName = false;
dvander@442
    87
}