From 56beeb446accd3379d1c32323789ae9117266dfd Mon Sep 17 00:00:00 2001 From: Zack Piispanen Date: Sat, 26 Nov 2011 00:28:46 -0500 Subject: [PATCH] Fixed modgroup to actually update the local( ram ) copies of the groups. Also set it up to properly delete from a group. --- TShockAPI/DB/GroupManager.cs | 10 +++++++--- TShockAPI/Group.cs | 8 ++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) 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