cleaned up levels in both the admin plugin and the source code
overrides use full flag bits now --HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40445
This commit is contained in:
parent
8860ff6224
commit
0c56f71a61
@ -18,12 +18,18 @@ Levels
|
||||
"slay" "e"
|
||||
"changemap" "f"
|
||||
"cvars" "g"
|
||||
"configs" "h"
|
||||
"config" "h"
|
||||
"chat" "i"
|
||||
"vote" "j"
|
||||
"password" "k"
|
||||
"rcon" "l"
|
||||
"cheats" "m"
|
||||
"custom1" "n"
|
||||
"custom2" "o"
|
||||
"custom3" "p"
|
||||
"custom4" "q"
|
||||
"custom5" "r"
|
||||
"custom6" "s"
|
||||
|
||||
//Custom flags START
|
||||
//Custom flags END
|
||||
|
@ -11,6 +11,7 @@ public Plugin:myinfo =
|
||||
};
|
||||
|
||||
/** Various globals */
|
||||
new bool:g_FlagsSet[26]; /* Maps whether flags are set */
|
||||
new AdminFlag:g_FlagLetters[26]; /* Maps the flag letters */
|
||||
new bool:g_LoggedFileName = false; /* Whether or not the file name has been logged */
|
||||
new g_ErrorCount = 0;
|
||||
|
@ -80,6 +80,10 @@ public SMCResult:ReadGroups_KeyValue(Handle:smc,
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (!g_FlagsSet[value[i] - 'a'])
|
||||
{
|
||||
continue;
|
||||
}
|
||||
flag = g_FlagLetters[value[i] - 'a'];
|
||||
SetAdmGroupAddFlag(g_CurGrp, flag, true);
|
||||
}
|
||||
|
@ -9,6 +9,11 @@ static g_LevelState = LEVEL_STATE_NONE;
|
||||
|
||||
LoadDefaultLetters()
|
||||
{
|
||||
for (new i='t'; i<'z'; i++)
|
||||
{
|
||||
g_FlagsSet[i-'a'] = false;
|
||||
}
|
||||
|
||||
g_FlagLetters['a'-'a'] = Admin_Reservation;
|
||||
g_FlagLetters['b'-'a'] = Admin_Kick;
|
||||
g_FlagLetters['c'-'a'] = Admin_Ban;
|
||||
@ -19,9 +24,15 @@ LoadDefaultLetters()
|
||||
g_FlagLetters['h'-'a'] = Admin_Config;
|
||||
g_FlagLetters['i'-'a'] = Admin_Chat;
|
||||
g_FlagLetters['j'-'a'] = Admin_Vote;
|
||||
g_FlagLetters['h'-'a'] = Admin_Password;
|
||||
g_FlagLetters['i'-'a'] = Admin_RCON;
|
||||
g_FlagLetters['j'-'a'] = Admin_Cheats;
|
||||
g_FlagLetters['k'-'a'] = Admin_Password;
|
||||
g_FlagLetters['l'-'a'] = Admin_RCON;
|
||||
g_FlagLetters['m'-'a'] = Admin_Cheats;
|
||||
g_FlagLetters['n'-'a'] = Admin_Custom1;
|
||||
g_FlagLetters['o'-'a'] = Admin_Custom2;
|
||||
g_FlagLetters['p'-'a'] = Admin_Custom3;
|
||||
g_FlagLetters['q'-'a'] = Admin_Custom4;
|
||||
g_FlagLetters['r'-'a'] = Admin_Custom5;
|
||||
g_FlagLetters['s'-'a'] = Admin_Custom6;
|
||||
g_FlagLetters['z'-'a'] = Admin_Root;
|
||||
}
|
||||
|
||||
@ -103,11 +114,24 @@ public SMCResult:ReadLevels_KeyValue(Handle:smc, const String:key[], const Strin
|
||||
flag = Admin_Cheats;
|
||||
} else if (StrEqual(key, "root")) {
|
||||
flag = Admin_Root;
|
||||
} else if (StrEqual(key, "custom1")) {
|
||||
flag = Admin_Custom1;
|
||||
} else if (StrEqual(key, "custom2")) {
|
||||
flag = Admin_Custom2;
|
||||
} else if (StrEqual(key, "custom3")) {
|
||||
flag = Admin_Custom3;
|
||||
} else if (StrEqual(key, "custom4")) {
|
||||
flag = Admin_Custom4;
|
||||
} else if (StrEqual(key, "custom5")) {
|
||||
flag = Admin_Custom5;
|
||||
} else if (StrEqual(key, "custom6")) {
|
||||
flag = Admin_Custom6;
|
||||
} else {
|
||||
LogLevelError("Unrecognized flag type: %s", key);
|
||||
}
|
||||
|
||||
g_FlagLetters[chr] = flag;
|
||||
g_FlagsSet[chr] = true;
|
||||
}
|
||||
|
||||
return SMCParse_Continue;
|
||||
|
@ -50,24 +50,33 @@ public SMCResult:ReadOverrides_KeyValue(Handle:smc,
|
||||
return SMCParse_Continue;
|
||||
}
|
||||
|
||||
new AdminFlag:flag;
|
||||
new AdminFlag:array[AdminFlags_TOTAL];
|
||||
new flags_total;
|
||||
|
||||
if (strlen(value) > 1)
|
||||
new len = strlen(value);
|
||||
for (new i=0; i<len; i++)
|
||||
{
|
||||
LogOverrideError("Unrecognized access level: %s", value);
|
||||
return SMCParse_Continue;
|
||||
if (value[i] < 'a' || value[i] > 'z')
|
||||
{
|
||||
LogOverrideError("Invalid flag detected: %c", value[i]);
|
||||
continue;
|
||||
}
|
||||
new val = value[i] - 'a';
|
||||
if (!g_FlagsSet[val])
|
||||
{
|
||||
LogOverrideError("Invalid flag detected: %c", value[i]);
|
||||
continue;
|
||||
}
|
||||
array[flags_total++] = g_FlagLetters[val];
|
||||
}
|
||||
|
||||
if (value[0] >= 'a' && value[0] <= 'z')
|
||||
{
|
||||
flag = g_FlagLetters[value[0] - 'a'];
|
||||
}
|
||||
new flags = FlagArrayToBits(array, flags_total);
|
||||
|
||||
if (key[0] == '@')
|
||||
{
|
||||
AddCommandOverride(key[1], Override_CommandGroup, FlagToBit(flag));
|
||||
AddCommandOverride(key[1], Override_CommandGroup, flags);
|
||||
} else {
|
||||
AddCommandOverride(key, Override_Command, FlagToBit(flag));
|
||||
AddCommandOverride(key, Override_Command, flags);
|
||||
}
|
||||
|
||||
return SMCParse_Continue;
|
||||
|
@ -44,9 +44,10 @@ enum AdminFlag
|
||||
Admin_Custom5, /**< Fifth custom flag type */
|
||||
Admin_Custom6, /**< Sixth custom flag type */
|
||||
/* --- */
|
||||
AdminFlags_TOTAL,
|
||||
};
|
||||
|
||||
#define AdminFlags_TOTAL 21
|
||||
|
||||
/**
|
||||
* These define bitwise values for bitstrings (numbers containing bitwise flags).
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user