diff --git a/TShockAPI/Group.cs b/TShockAPI/Group.cs
index b3375ab5..fb4b6a5c 100644
--- a/TShockAPI/Group.cs
+++ b/TShockAPI/Group.cs
@@ -50,6 +50,16 @@ namespace TShockAPI
}
return false;
}
+
+ public void NegatePermission(string permission)
+ {
+ negatedPermissions.Add(permission);
+ }
+
+ public void AddPermission(string permission)
+ {
+ permissions.Add(permission);
+ }
}
public class SuperAdminGroup : Group
diff --git a/TShockAPI/TShockAPI.csproj b/TShockAPI/TShockAPI.csproj
index 3eede161..d2813301 100644
--- a/TShockAPI/TShockAPI.csproj
+++ b/TShockAPI/TShockAPI.csproj
@@ -60,7 +60,6 @@
-
diff --git a/TShockAPI/Tools.cs b/TShockAPI/Tools.cs
index 064567f8..9c79e0ec 100644
--- a/TShockAPI/Tools.cs
+++ b/TShockAPI/Tools.cs
@@ -338,11 +338,10 @@ namespace TShockAPI
string[] args = lines[i].Split(' ');
string name = args[0];
string parent = args[1];
- Group group;
+ Group group = null;
if (parent.Equals("null"))
{
group = new Group(name);
- groups.Add(group);
}
else
{
@@ -355,6 +354,25 @@ namespace TShockAPI
}
}
}
+ if (group == null)
+ {
+ throw new System.Exception("Something in the groups.txt is fucked up");
+ }
+ else
+ {
+ for (int j = 2; j < args.Length; j++)
+ {
+ string permission = args[j];
+ if (permission.StartsWith("!"))
+ {
+ group.NegatePermission(args[j].Replace("!", ""));
+ }
+ else
+ {
+ group.AddPermission(args[j]);
+ }
+ }
+ }
}
}