From da8ce502bca0c0abac5c8270c2bacdb0ce8b7824 Mon Sep 17 00:00:00 2001 From: Lucas Nicodemus Date: Wed, 11 Mar 2015 09:10:40 -0600 Subject: [PATCH] Add replacement for string AddGroup Add deprecation warnings to previous methods --- TShockAPI/DB/GroupManager.cs | 40 ++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/TShockAPI/DB/GroupManager.cs b/TShockAPI/DB/GroupManager.cs index 1772dc9c..c817705d 100755 --- a/TShockAPI/DB/GroupManager.cs +++ b/TShockAPI/DB/GroupManager.cs @@ -110,6 +110,45 @@ namespace TShockAPI.DB return 1 == ret.Count() ? ret.ElementAt(0) : null; } + /// + /// Adds group with name and permissions if it does not exist. + /// + /// name of group + /// parent of group + /// permissions + /// chatcolor + public void AddGroup(String name, string parentname, String permissions, String chatcolor) + { + if (GroupExists(name)) + { + throw new GroupExistsException(name); + } + + var group = new Group(name, null, chatcolor); + group.Permissions = permissions; + if (!string.IsNullOrWhiteSpace(parentname)) + { + var parent = groups.FirstOrDefault(gp => gp.Name == parentname); + if (parent == null || name == parentname) + { + var error = "Invalid parent {0} for group {1}".SFormat(parentname, group.Name); + TShock.Log.ConsoleError(error); + throw new GroupManagerException(error); + } + group.Parent = parent; + } + + string query = (TShock.Config.StorageType.ToLower() == "sqlite") + ? "INSERT OR IGNORE INTO GroupList (GroupName, Parent, Commands, ChatColor) VALUES (@0, @1, @2, @3);" + : "INSERT IGNORE INTO GroupList SET GroupName=@0, Parent=@1, Commands=@2, ChatColor=@3"; + if (database.Query(query, name, parentname, permissions, chatcolor) == 1) + { + groups.Add(group); + } + else + throw new GroupManagerException("Failed to add group '" + name + ".'"); + } + /// /// Adds group with name and permissions if it does not exist. /// @@ -118,6 +157,7 @@ namespace TShockAPI.DB /// permissions /// chatcolor /// exceptions true indicates use exceptions for errors false otherwise + [Obsolete("Use AddGroup(name, parentname, permissions, chatcolor) instead.")] public String AddGroup(String name, string parentname, String permissions, String chatcolor = Group.defaultChatColor, bool exceptions = false) { if (GroupExists(name))