split this baby up
authorDavid Anderson <dvander@alliedmods.net>
Mon Jan 29 19:36:02 2007 +0000 (2007-01-29)
changeset 409737c149d8a26
parent 408 0e717b3f2e08
child 410 e6885cfd8aec
split this baby up
plugins/admin-base.sp
plugins/admin-base/admin-base.sp
plugins/admin-base/admin-levels.sp
     1.1 --- a/plugins/admin-base.sp	Mon Jan 29 19:34:28 2007 +0000
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,187 +0,0 @@
     1.4 -#include <sourcemod>
     1.5 -#include <textparse>
     1.6 -
     1.7 -public Plugin:myinfo = 
     1.8 -{
     1.9 -	name = "Admin Base",
    1.10 -	author = "AlliedModders LLC",
    1.11 -	description = "Reads admin files",
    1.12 -	version = "1.0.0.0",
    1.13 -	url = "http://www.sourcemod.net/"
    1.14 -};
    1.15 -
    1.16 -#define LEVEL_STATE_NONE		0
    1.17 -#define LEVEL_STATE_LEVELS		1
    1.18 -#define LEVEL_STATE_FLAGS		2
    1.19 -#define LEVEL_STATE_OVERRIDES	3
    1.20 -
    1.21 -
    1.22 -/** Parser handles */
    1.23 -new Handle:g_hLevelParser = INVALID_HANDLE;
    1.24 -
    1.25 -/** Parser states */
    1.26 -new g_LevelState = LEVEL_STATE_NONE;
    1.27 -
    1.28 -/** Globals for levels */
    1.29 -new AdminFlag:g_FlagLetters[26];			/* Maps the flag letters */		
    1.30 -new bool:g_ReadOverrides = false;			/* Whether or not to read overrides */
    1.31 -new bool:g_LoggedFileName = false;			/* Whether or not the file name has been logged */
    1.32 -
    1.33 -
    1.34 -public OnPluginStart()
    1.35 -{
    1.36 -	g_hLevelParser = SMC_CreateParser();
    1.37 -	SMC_SetReaders(g_hLevelParser, 
    1.38 -				   ReadLevels_NewSection,
    1.39 -				   ReadLevels_KeyValue,
    1.40 -				   ReadLevels_EndSection);
    1.41 -}
    1.42 -
    1.43 -LoadDefaultLetters()
    1.44 -{
    1.45 -	g_FlagLetters['a'-'a'] = Admin_Reservation;
    1.46 -	g_FlagLetters['b'-'a'] = Admin_Kick;
    1.47 -	g_FlagLetters['c'-'a'] = Admin_Ban;
    1.48 -	g_FlagLetters['d'-'a'] = Admin_Unban;
    1.49 -	g_FlagLetters['e'-'a'] = Admin_Slay;
    1.50 -	g_FlagLetters['f'-'a'] = Admin_Changemap;
    1.51 -	g_FlagLetters['g'-'a'] = Admin_Convars;
    1.52 -	g_FlagLetters['h'-'a'] = Admin_Configs;
    1.53 -	g_FlagLetters['i'-'a'] = Admin_Chat;
    1.54 -	g_FlagLetters['j'-'a'] = Admin_Vote;
    1.55 -	g_FlagLetters['h'-'a'] = Admin_Password;
    1.56 -	g_FlagLetters['i'-'a'] = Admin_RCON;
    1.57 -	g_FlagLetters['j'-'a'] = Admin_Cheats;
    1.58 -	g_FlagLetters['z'-'a'] = Admin_Root;
    1.59 -}
    1.60 -
    1.61 -public SMCResult:ReadLevels_NewSection(Handle:smc, const String:name[], bool:opt_quotes)
    1.62 -{
    1.63 -	if (g_LevelState == LEVEL_STATE_NONE)
    1.64 -	{
    1.65 -		if (StrEqual(name, "Levels"))
    1.66 -		{
    1.67 -			g_LevelState = LEVEL_STATE_LEVELS;
    1.68 -		} else {
    1.69 -			/* :TODO: log error */
    1.70 -		}
    1.71 -	} else if (g_LevelState == LEVEL_STATE_LEVELS) {
    1.72 -		if (StrEqual(name, "Flags"))
    1.73 -		{
    1.74 -			g_LevelState = LEVEL_STATE_FLAGS;
    1.75 -		} else if (StrEqual(name, "Overrides")) {
    1.76 -			g_LevelState = LEVEL_STATE_OVERRIDES;
    1.77 -		} else {
    1.78 -			/* :TODO: log error */
    1.79 -		}
    1.80 -	} else {
    1.81 -		/* :TODO: Log error */
    1.82 -	}
    1.83 -	
    1.84 -	return SMCParse_Continue;
    1.85 -}
    1.86 -
    1.87 -public SMCResult:ReadLevels_KeyValue(Handle:smc, const String:key[], const String:value[], bool:key_quotes, bool:value_quotes)
    1.88 -{
    1.89 -	if (g_LevelState == LEVEL_STATE_FLAGS)
    1.90 -	{
    1.91 -		new chr = value[0];
    1.92 -		
    1.93 -		if (chr < 'a' || chr > 'z')
    1.94 -		{
    1.95 -			/* :TODO: log error */
    1.96 -			return SMCParse_Continue;
    1.97 -		}
    1.98 -		
    1.99 -		chr -= 'a';
   1.100 -		
   1.101 -		new AdminFlag:flag = Admin_None;
   1.102 -		
   1.103 -		if (StrEqual(key, "reservation"))
   1.104 -		{
   1.105 -			flag = Admin_Reservation;
   1.106 -		} else if (StrEqual(key, "kick")) {
   1.107 -			flag = Admin_Kick;
   1.108 -		} else if (StrEqual(key, "ban")) {
   1.109 -			flag = Admin_Ban;
   1.110 -		} else if (StrEqual(key, "unban")) {
   1.111 -			flag = Admin_Unban;
   1.112 -		} else if (StrEqual(key, "slay")) {
   1.113 -			flag = Admin_Slay;
   1.114 -		} else if (StrEqual(key, "changemap")) {
   1.115 -			flag = Admin_Changemap;
   1.116 -		} else if (StrEqual(key, "cvars")) {
   1.117 -			flag = Admin_Convars;
   1.118 -		} else if (StrEqual(key, "configs")) {
   1.119 -			flag = Admin_Configs;
   1.120 -		} else if (StrEqual(key, "chat")) {
   1.121 -			flag = Admin_Chat;
   1.122 -		} else if (StrEqual(key, "vote")) {
   1.123 -			flag = Admin_Vote;
   1.124 -		} else if (StrEqual(key, "password")) {
   1.125 -			flag = Admin_Password;
   1.126 -		} else if (StrEqual(key, "rcon")) {
   1.127 -			flag = Admin_RCON;
   1.128 -		} else if (StrEqual(key, "cheats")) {
   1.129 -			flag = Admin_Cheats;
   1.130 -		} else if (StrEqual(key, "root")) {
   1.131 -			flag = Admin_Root;
   1.132 -		} else {
   1.133 -			/* :TODO: log error */
   1.134 -		}
   1.135 -		
   1.136 -		g_FlagLetters[chr] = flag;
   1.137 -		
   1.138 -	
   1.139 -	} else if (g_LevelState == LEVEL_STATE_OVERRIDES) {
   1.140 -		if (!g_ReadOverrides)
   1.141 -		{
   1.142 -			return SMCParse_Continue;
   1.143 -		}
   1.144 -	}
   1.145 -	
   1.146 -	return SMCParse_Continue;
   1.147 -}
   1.148 -
   1.149 -public SMCResult:ReadLevels_EndSection(Handle:smc)
   1.150 -{
   1.151 -	if (g_LevelState == LEVEL_STATE_FLAGS)
   1.152 -	{
   1.153 -		g_LevelState = LEVEL_STATE_LEVELS;
   1.154 -	} else if (g_LevelState == LEVEL_STATE_OVERRIDES) {
   1.155 -		g_LevelState = LEVEL_STATE_OVERRIDES;
   1.156 -	} else if (g_LevelState == LEVEL_STATE_LEVELS) {
   1.157 -		g_LevelState = LEVEL_STATE_NONE;
   1.158 -	}
   1.159 -}
   1.160 -
   1.161 -public OnRebuildAdminCache(cache_flags)
   1.162 -{
   1.163 -	if (cache_flags & ADMIN_CACHE_OVERRIDES)
   1.164 -	{
   1.165 -		g_ReadOverrides = true;
   1.166 -	} else {
   1.167 -		g_ReadOverrides = false;
   1.168 -	}
   1.169 -	
   1.170 -	RefreshLevels();
   1.171 -}
   1.172 -
   1.173 -RefreshLevels()
   1.174 -{
   1.175 -	new String:path[PLATFORM_MAX_PATH];
   1.176 -	
   1.177 -	LoadDefaultLetters();
   1.178 -	
   1.179 -	BuildPath(Path_SM, path, sizeof(path), "configs/admin_levels.cfg");
   1.180 -	
   1.181 -	/* Set states */
   1.182 -	g_LevelState = LEVEL_STATE_NONE;
   1.183 -	g_LoggedFileName = false;
   1.184 -		
   1.185 -	new SMCError:err = SMC_ParseFile(g_hLevelParser, path);
   1.186 -	if (err != SMCError_Okay)
   1.187 -	{
   1.188 -		/* :TODO: log error */
   1.189 -	}
   1.190 -}
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/plugins/admin-base/admin-base.sp	Mon Jan 29 19:36:02 2007 +0000
     2.3 @@ -0,0 +1,20 @@
     2.4 +#include <sourcemod>
     2.5 +#include <textparse>
     2.6 +
     2.7 +public Plugin:myinfo = 
     2.8 +{
     2.9 +	name = "Admin Base",
    2.10 +	author = "AlliedModders LLC",
    2.11 +	description = "Reads admin files",
    2.12 +	version = "1.0.0.0",
    2.13 +	url = "http://www.sourcemod.net/"
    2.14 +};
    2.15 +
    2.16 +/** Various globals */
    2.17 +new AdminFlag:g_FlagLetters[26];			/* Maps the flag letters */		
    2.18 +new bool:g_LoggedFileName = false;			/* Whether or not the file name has been logged */
    2.19 +
    2.20 +public OnRebuildAdminCache(cache_flags)
    2.21 +{
    2.22 +	RefreshLevels();
    2.23 +}
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/plugins/admin-base/admin-levels.sp	Mon Jan 29 19:36:02 2007 +0000
     3.3 @@ -0,0 +1,145 @@
     3.4 +#define LEVEL_STATE_NONE		0
     3.5 +#define LEVEL_STATE_LEVELS		1
     3.6 +#define LEVEL_STATE_FLAGS		2
     3.7 +
     3.8 +new Handle:g_hLevelParser = INVALID_HANDLE;
     3.9 +new g_LevelState = LEVEL_STATE_NONE;
    3.10 +
    3.11 +InitializeLevelParser()
    3.12 +{
    3.13 +	if (g_hLevelParser == INVALID_HANDLE)
    3.14 +	{
    3.15 +		g_hLevelParser = SMC_CreateParser();
    3.16 +		SMC_SetReaders(g_hLevelParser, 
    3.17 +				   	ReadLevels_NewSection,
    3.18 +				   	ReadLevels_KeyValue,
    3.19 +				   	ReadLevels_EndSection);
    3.20 +	}
    3.21 +}
    3.22 +
    3.23 +LoadDefaultLetters()
    3.24 +{
    3.25 +	g_FlagLetters['a'-'a'] = Admin_Reservation;
    3.26 +	g_FlagLetters['b'-'a'] = Admin_Kick;
    3.27 +	g_FlagLetters['c'-'a'] = Admin_Ban;
    3.28 +	g_FlagLetters['d'-'a'] = Admin_Unban;
    3.29 +	g_FlagLetters['e'-'a'] = Admin_Slay;
    3.30 +	g_FlagLetters['f'-'a'] = Admin_Changemap;
    3.31 +	g_FlagLetters['g'-'a'] = Admin_Convars;
    3.32 +	g_FlagLetters['h'-'a'] = Admin_Configs;
    3.33 +	g_FlagLetters['i'-'a'] = Admin_Chat;
    3.34 +	g_FlagLetters['j'-'a'] = Admin_Vote;
    3.35 +	g_FlagLetters['h'-'a'] = Admin_Password;
    3.36 +	g_FlagLetters['i'-'a'] = Admin_RCON;
    3.37 +	g_FlagLetters['j'-'a'] = Admin_Cheats;
    3.38 +	g_FlagLetters['z'-'a'] = Admin_Root;
    3.39 +}
    3.40 +
    3.41 +public SMCResult:ReadLevels_NewSection(Handle:smc, const String:name[], bool:opt_quotes)
    3.42 +{
    3.43 +	if (g_LevelState == LEVEL_STATE_NONE)
    3.44 +	{
    3.45 +		if (StrEqual(name, "Levels"))
    3.46 +		{
    3.47 +			g_LevelState = LEVEL_STATE_LEVELS;
    3.48 +		} else {
    3.49 +			/* :TODO: log error */
    3.50 +		}
    3.51 +	} else if (g_LevelState == LEVEL_STATE_LEVELS) {
    3.52 +		if (StrEqual(name, "Flags"))
    3.53 +		{
    3.54 +			g_LevelState = LEVEL_STATE_FLAGS;
    3.55 +		} else {
    3.56 +			/* :TODO: log error */
    3.57 +		}
    3.58 +	} else {
    3.59 +		/* :TODO: Log error */
    3.60 +	}
    3.61 +	
    3.62 +	return SMCParse_Continue;
    3.63 +}
    3.64 +
    3.65 +public SMCResult:ReadLevels_KeyValue(Handle:smc, const String:key[], const String:value[], bool:key_quotes, bool:value_quotes)
    3.66 +{
    3.67 +	if (g_LevelState == LEVEL_STATE_FLAGS)
    3.68 +	{
    3.69 +		new chr = value[0];
    3.70 +		
    3.71 +		if (chr < 'a' || chr > 'z')
    3.72 +		{
    3.73 +			/* :TODO: log error */
    3.74 +			return SMCParse_Continue;
    3.75 +		}
    3.76 +		
    3.77 +		chr -= 'a';
    3.78 +		
    3.79 +		new AdminFlag:flag = Admin_None;
    3.80 +		
    3.81 +		if (StrEqual(key, "reservation"))
    3.82 +		{
    3.83 +			flag = Admin_Reservation;
    3.84 +		} else if (StrEqual(key, "kick")) {
    3.85 +			flag = Admin_Kick;
    3.86 +		} else if (StrEqual(key, "ban")) {
    3.87 +			flag = Admin_Ban;
    3.88 +		} else if (StrEqual(key, "unban")) {
    3.89 +			flag = Admin_Unban;
    3.90 +		} else if (StrEqual(key, "slay")) {
    3.91 +			flag = Admin_Slay;
    3.92 +		} else if (StrEqual(key, "changemap")) {
    3.93 +			flag = Admin_Changemap;
    3.94 +		} else if (StrEqual(key, "cvars")) {
    3.95 +			flag = Admin_Convars;
    3.96 +		} else if (StrEqual(key, "configs")) {
    3.97 +			flag = Admin_Configs;
    3.98 +		} else if (StrEqual(key, "chat")) {
    3.99 +			flag = Admin_Chat;
   3.100 +		} else if (StrEqual(key, "vote")) {
   3.101 +			flag = Admin_Vote;
   3.102 +		} else if (StrEqual(key, "password")) {
   3.103 +			flag = Admin_Password;
   3.104 +		} else if (StrEqual(key, "rcon")) {
   3.105 +			flag = Admin_RCON;
   3.106 +		} else if (StrEqual(key, "cheats")) {
   3.107 +			flag = Admin_Cheats;
   3.108 +		} else if (StrEqual(key, "root")) {
   3.109 +			flag = Admin_Root;
   3.110 +		} else {
   3.111 +			/* :TODO: log error */
   3.112 +		}
   3.113 +		
   3.114 +		g_FlagLetters[chr] = flag;
   3.115 +	}
   3.116 +	
   3.117 +	return SMCParse_Continue;
   3.118 +}
   3.119 +
   3.120 +public SMCResult:ReadLevels_EndSection(Handle:smc)
   3.121 +{
   3.122 +	if (g_LevelState == LEVEL_STATE_FLAGS)
   3.123 +	{
   3.124 +		g_LevelState = LEVEL_STATE_LEVELS;
   3.125 +	} else if (g_LevelState == LEVEL_STATE_LEVELS) {
   3.126 +		g_LevelState = LEVEL_STATE_NONE;
   3.127 +	}
   3.128 +}
   3.129 +
   3.130 +RefreshLevels()
   3.131 +{
   3.132 +	new String:path[PLATFORM_MAX_PATH];
   3.133 +	
   3.134 +	LoadDefaultLetters();
   3.135 +	InitializeLevelParser();
   3.136 +	
   3.137 +	BuildPath(Path_SM, path, sizeof(path), "configs/admin_levels.cfg");
   3.138 +	
   3.139 +	/* Set states */
   3.140 +	g_LevelState = LEVEL_STATE_NONE;
   3.141 +	g_LoggedFileName = false;
   3.142 +		
   3.143 +	new SMCError:err = SMC_ParseFile(g_hLevelParser, path);
   3.144 +	if (err != SMCError_Okay)
   3.145 +	{
   3.146 +		/* :TODO: log error */
   3.147 +	}
   3.148 +}