plugins/admin-flatfile/admin-groups.sp
changeset 1403 ecb9c66fd4bb
parent 1330 ab94316bb52b
child 1432 d5001413aba7
     1.1 --- a/plugins/admin-flatfile/admin-groups.sp	Mon Sep 10 22:28:22 2007 +0000
     1.2 +++ b/plugins/admin-flatfile/admin-groups.sp	Mon Sep 10 23:38:58 2007 +0000
     1.3 @@ -110,22 +110,7 @@
     1.4  					SetAdmGroupAddFlag(g_CurGrp, flag, true);
     1.5  				}
     1.6  			} else if (StrEqual(key, "immunity")) {
     1.7 -				/* If it's a value we know about, use it */
     1.8 -				if (StrEqual(value, "*"))
     1.9 -				{
    1.10 -					SetAdmGroupImmunity(g_CurGrp, Immunity_Global, true);
    1.11 -				} else if (StrEqual(value, "$")) {
    1.12 -					SetAdmGroupImmunity(g_CurGrp, Immunity_Default, true);
    1.13 -				} else {
    1.14 -					/* If we can't find the group, we'll need to schedule a reparse */
    1.15 -					new GroupId:id = FindAdmGroup(value);
    1.16 -					if (id != INVALID_GROUP_ID)
    1.17 -					{
    1.18 -						SetAdmGroupImmuneFrom(g_CurGrp, id);
    1.19 -					} else {
    1.20 -						g_NeedReparse = true;
    1.21 -					}
    1.22 -				}
    1.23 +				g_NeedReparse = true;
    1.24  			}
    1.25  		} else if (g_GroupState == GROUP_STATE_OVERRIDES) {
    1.26  			new OverrideRule:rule = Command_Deny;
    1.27 @@ -147,18 +132,31 @@
    1.28  		/* Check for immunity again, core should handle double inserts */
    1.29  		if (StrEqual(key, "immunity"))
    1.30  		{
    1.31 -			if (StrEqual(value, "$"))
    1.32 +			/* If it's a value we know about, use it */
    1.33 +			if (StrEqual(value, "*"))
    1.34  			{
    1.35 -				SetAdmGroupImmunity(g_CurGrp, Immunity_Default, true);
    1.36 -			} else if (StrEqual(value, "*")) {
    1.37 -				SetAdmGroupImmunity(g_CurGrp, Immunity_Global, true);
    1.38 +				SetAdmGroupImmunityLevel(g_CurGrp, 2);
    1.39 +			} else if (StrEqual(value, "$")) {
    1.40 +				SetAdmGroupImmunityLevel(g_CurGrp, 1);
    1.41  			} else {
    1.42 -				new GroupId:id = FindAdmGroup(value);
    1.43 -				if (id != INVALID_GROUP_ID)
    1.44 +				new level;
    1.45 +				if (StringToIntEx(value, level))
    1.46  				{
    1.47 -					SetAdmGroupImmuneFrom(g_CurGrp, id);
    1.48 +					SetAdmGroupImmunityLevel(g_CurGrp, level);
    1.49  				} else {
    1.50 -					ParseError("Unable to find group: \"%s\"", value);
    1.51 +					new GroupId:id;
    1.52 +					if (value[0] == '@')
    1.53 +					{
    1.54 +						id = FindAdmGroup(value[1]);
    1.55 +					} else {
    1.56 +						id = FindAdmGroup(value);
    1.57 +					}
    1.58 +					if (id != INVALID_GROUP_ID)
    1.59 +					{
    1.60 +						SetAdmGroupImmuneFrom(g_CurGrp, id);
    1.61 +					} else {
    1.62 +						ParseError("Unable to find group: \"%s\"", value);
    1.63 +					}
    1.64  				}
    1.65  			}
    1.66  		}