From 53008daacb5960ecf8cb68c2fa879ac48a472e43 Mon Sep 17 00:00:00 2001 From: MarioE Date: Fri, 8 Jun 2012 21:36:34 -0400 Subject: [PATCH] Fixed storing chat colors incorrectly, and prefix/suffix resets --- TShockAPI/DB/GroupManager.cs | 8 +++++--- TShockAPI/Rest/RestManager.cs | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/TShockAPI/DB/GroupManager.cs b/TShockAPI/DB/GroupManager.cs index e140f268..1e0bdb1b 100644 --- a/TShockAPI/DB/GroupManager.cs +++ b/TShockAPI/DB/GroupManager.cs @@ -180,11 +180,13 @@ namespace TShockAPI.DB // NOTE: we use newgroup.XYZ to ensure any validation is also persisted to the DB var newgroup = new Group(name, parent, chatcolor, permissions); string query = "UPDATE GroupList SET Parent=@0, Commands=@1, ChatColor=@2 WHERE GroupName=@3"; - if (database.Query(query, parentname, newgroup.Permissions, newgroup.ChatColor, name) != 1) + if (database.Query(query, parentname, newgroup.Permissions, string.Format("{0},{1},{2}", newgroup.R, newgroup.G, newgroup.B), name) != 1) throw new GroupManagerException("Failed to update group '" + name + "'"); - groups.Remove(TShock.Utils.GetGroup(name)); - groups.Add(newgroup); + Group group = TShock.Utils.GetGroup(name); + group.ChatColor = chatcolor; + group.Permissions = permissions; + group.Parent = TShock.Utils.GetGroup(parentname); } #if COMPAT_SIGS diff --git a/TShockAPI/Rest/RestManager.cs b/TShockAPI/Rest/RestManager.cs index 160dad55..45cdb309 100644 --- a/TShockAPI/Rest/RestManager.cs +++ b/TShockAPI/Rest/RestManager.cs @@ -576,7 +576,7 @@ namespace TShockAPI return new RestObject() { {"name", group.Name}, {"parent", group.ParentName}, - {"chatcolor", group.ChatColor}, + {"chatcolor", string.Format("{0},{1},{2}", group.R, group.G, group.B)}, {"permissions", group.permissions}, {"negatedpermissions", group.negatedpermissions}, {"totalpermissions", group.TotalPermissions} @@ -627,7 +627,7 @@ namespace TShockAPI Group group = (Group)ret; var parent = (null == parameters["parent"]) ? group.ParentName : parameters["parent"]; - var chatcolor = (null == parameters["chatcolor"]) ? group.ChatColor : parameters["chatcolor"]; + var chatcolor = (null == parameters["chatcolor"]) ? string.Format("{0}.{1}.{2}", group.R, group.G, group.B) : parameters["chatcolor"]; var permissions = (null == parameters["permissions"]) ? group.Permissions : parameters["permissions"]; try {