diff --git a/TShockAPI/DB/GroupManager.cs b/TShockAPI/DB/GroupManager.cs index 70e444d2..1fd408a3 100644 --- a/TShockAPI/DB/GroupManager.cs +++ b/TShockAPI/DB/GroupManager.cs @@ -154,8 +154,10 @@ namespace TShockAPI.DB permissions.AddRange(group.permissions.Where(s => !permissions.Contains(s))); if (database.Query("UPDATE GroupList SET Commands=@0 WHERE GroupName=@1", String.Join(",", permissions), name) != 0) + { message = "Group " + name + " has been modified successfully."; - + group.SetPermission( permissions ); + } return message; } @@ -168,11 +170,13 @@ namespace TShockAPI.DB var group = Tools.GetGroup(name); //Only get permissions that exist in the group. - var newperms = permissions.Where(s => group.permissions.Contains(s)); + var newperms = group.permissions.Except( permissions ); if (database.Query("UPDATE GroupList SET Commands=@0 WHERE GroupName=@1", String.Join(",", newperms), name) != 0) + { message = "Group " + name + " has been modified successfully."; - + group.SetPermission( newperms.ToList() ); + } return message; } diff --git a/TShockAPI/Group.cs b/TShockAPI/Group.cs index a7fbddb3..c089ff16 100644 --- a/TShockAPI/Group.cs +++ b/TShockAPI/Group.cs @@ -73,6 +73,14 @@ namespace TShockAPI { permissions.Add(permission); } + public void SetPermission( List permission) + { + permissions.Clear(); + foreach( string s in permission ) + { + permissions.Add( s ); + } + } } public class SuperAdminGroup : Group