plugins/admin-flatfile/admin-flatfile.sp
author David Anderson <dvander@alliedmods.net>
Wed Feb 07 02:17:19 2007 +0000 (2007-02-07)
changeset 444 0c718808b5a2
parent 443 327328403741
child 460 0be67c5566c6
permissions -rw-r--r--
added user reading
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.
dvander@444
    19
 */
dvander@444
    20
dvander@444
    21
dvander@437
    22
#include <sourcemod>
dvander@437
    23
#include <textparse>
dvander@437
    24
dvander@437
    25
public Plugin:myinfo = 
dvander@437
    26
{
dvander@437
    27
	name = "Admin Base",
dvander@437
    28
	author = "AlliedModders LLC",
dvander@437
    29
	description = "Reads admin files",
dvander@437
    30
	version = "1.0.0.0",
dvander@437
    31
	url = "http://www.sourcemod.net/"
dvander@437
    32
};
dvander@437
    33
dvander@442
    34
/** Various parsing globals */
dvander@439
    35
new bool:g_FlagsSet[26];					/* Maps whether flags are set */
dvander@437
    36
new AdminFlag:g_FlagLetters[26];			/* Maps the flag letters */		
dvander@437
    37
new bool:g_LoggedFileName = false;			/* Whether or not the file name has been logged */
dvander@442
    38
new g_ErrorCount = 0;						/* Current error count */
dvander@442
    39
new g_IgnoreLevel = 0;						/* Nested ignored section count, so users can screw up files safely */
dvander@442
    40
new String:g_Filename[PLATFORM_MAX_PATH];	/* Used for error messages */
dvander@437
    41
dvander@437
    42
#include "admin-levels.sp"
dvander@437
    43
#include "admin-overrides.sp"
dvander@437
    44
#include "admin-groups.sp"
dvander@444
    45
#include "admin-users.sp"
dvander@437
    46
dvander@438
    47
public OnRebuildAdminCache(AdminCachePart:part)
dvander@437
    48
{
dvander@437
    49
	RefreshLevels();
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@437
    57
	}
dvander@437
    58
}
dvander@442
    59
dvander@442
    60
ParseError(const String:format[], {Handle,String,Float,_}:...)
dvander@442
    61
{
dvander@442
    62
	decl String:buffer[512];
dvander@442
    63
	
dvander@442
    64
	if (!g_LoggedFileName)
dvander@442
    65
	{
dvander@443
    66
		LogError("Error(s) detected parsing %s", g_Filename);
dvander@442
    67
		g_LoggedFileName = true;
dvander@442
    68
	}
dvander@442
    69
	
dvander@442
    70
	VFormat(buffer, sizeof(buffer), format, 2);
dvander@442
    71
	
dvander@442
    72
	LogError(" (%d) %s", ++g_ErrorCount, buffer);
dvander@442
    73
}
dvander@442
    74
dvander@442
    75
InitGlobalStates()
dvander@442
    76
{
dvander@442
    77
	g_ErrorCount = 0;
dvander@442
    78
	g_IgnoreLevel = 0;
dvander@442
    79
	g_LoggedFileName = false;
dvander@442
    80
}