Add prefix, suffix, color to group command.
Fix stupid chat color getter returning the hex color.
This commit is contained in:
parent
1df0129919
commit
e246183108
4 changed files with 151 additions and 7 deletions
|
|
@ -2025,7 +2025,7 @@ namespace TShockAPI
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TShock.Groups.UpdateGroup(groupName, newParentGroupName, group.Permissions, group.ChatColor);
|
TShock.Groups.UpdateGroup(groupName, newParentGroupName, group.Permissions, group.ChatColor, group.Suffix, group.Prefix);
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(newParentGroupName))
|
if (!string.IsNullOrWhiteSpace(newParentGroupName))
|
||||||
args.Player.SendSuccessMessage("Parent of group \"{0}\" set to \"{1}\".", groupName, newParentGroupName);
|
args.Player.SendSuccessMessage("Parent of group \"{0}\" set to \"{1}\".", groupName, newParentGroupName);
|
||||||
|
|
@ -2047,6 +2047,146 @@ namespace TShockAPI
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
return;
|
return;
|
||||||
|
case "suffix":
|
||||||
|
#region Suffix
|
||||||
|
{
|
||||||
|
if (args.Parameters.Count < 2)
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage("Invalid syntax! Proper syntax: /group suffix <group name> [new suffix]");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
string groupName = args.Parameters[1];
|
||||||
|
Group group = TShock.Groups.GetGroupByName(groupName);
|
||||||
|
if (group == null)
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage("No such group \"{0}\".", groupName);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.Parameters.Count > 2)
|
||||||
|
{
|
||||||
|
string newSuffix = string.Join(" ", args.Parameters.Skip(2));
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
TShock.Groups.UpdateGroup(groupName, group.ParentName, group.Permissions, group.ChatColor, newSuffix, group.Prefix);
|
||||||
|
|
||||||
|
if (!string.IsNullOrWhiteSpace(newSuffix))
|
||||||
|
args.Player.SendSuccessMessage("Suffix of group \"{0}\" set to \"{1}\".", groupName, newSuffix);
|
||||||
|
else
|
||||||
|
args.Player.SendSuccessMessage("Removed suffix of group \"{0}\".", groupName);
|
||||||
|
}
|
||||||
|
catch (GroupManagerException ex)
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage(ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrWhiteSpace(group.Suffix))
|
||||||
|
args.Player.SendSuccessMessage("Suffix of \"{0}\" is \"{1}\".", group.Name, group.Suffix);
|
||||||
|
else
|
||||||
|
args.Player.SendSuccessMessage("Group \"{0}\" has no suffix.", group.Name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
return;
|
||||||
|
case "prefix":
|
||||||
|
#region Suffix
|
||||||
|
{
|
||||||
|
if (args.Parameters.Count < 2)
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage("Invalid syntax! Proper syntax: /group prefix <group name> [new prefix]");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
string groupName = args.Parameters[1];
|
||||||
|
Group group = TShock.Groups.GetGroupByName(groupName);
|
||||||
|
if (group == null)
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage("No such group \"{0}\".", groupName);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.Parameters.Count > 2)
|
||||||
|
{
|
||||||
|
string newPrefix = string.Join(" ", args.Parameters.Skip(2));
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
TShock.Groups.UpdateGroup(groupName, group.ParentName, group.Permissions, group.ChatColor, group.Suffix, newPrefix);
|
||||||
|
|
||||||
|
if (!string.IsNullOrWhiteSpace(newPrefix))
|
||||||
|
args.Player.SendSuccessMessage("Prefix of group \"{0}\" set to \"{1}\".", groupName, newPrefix);
|
||||||
|
else
|
||||||
|
args.Player.SendSuccessMessage("Removed prefix of group \"{0}\".", groupName);
|
||||||
|
}
|
||||||
|
catch (GroupManagerException ex)
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage(ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrWhiteSpace(group.Prefix))
|
||||||
|
args.Player.SendSuccessMessage("Prefix of \"{0}\" is \"{1}\".", group.Name, group.Prefix);
|
||||||
|
else
|
||||||
|
args.Player.SendSuccessMessage("Group \"{0}\" has no prefix.", group.Name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
return;
|
||||||
|
case "color":
|
||||||
|
#region Suffix
|
||||||
|
{
|
||||||
|
if (args.Parameters.Count < 2 || args.Parameters.Count > 3)
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage("Invalid syntax! Proper syntax: /group color <group name> [new color(000,000,000)]");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
string groupName = args.Parameters[1];
|
||||||
|
Group group = TShock.Groups.GetGroupByName(groupName);
|
||||||
|
if (group == null)
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage("No such group \"{0}\".", groupName);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.Parameters.Count == 3)
|
||||||
|
{
|
||||||
|
string newColor = args.Parameters[2];
|
||||||
|
|
||||||
|
String[] parts = newColor.Split(',');
|
||||||
|
byte r;
|
||||||
|
byte g;
|
||||||
|
byte b;
|
||||||
|
if (parts.Length == 3 && byte.TryParse(parts[0], out r) && byte.TryParse(parts[1], out g) && byte.TryParse(parts[2], out b))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
TShock.Groups.UpdateGroup(groupName, group.ParentName, group.Permissions, newColor, group.Suffix, group.Prefix);
|
||||||
|
|
||||||
|
args.Player.SendSuccessMessage("Color of group \"{0}\" set to \"{1}\".", groupName, newColor);
|
||||||
|
}
|
||||||
|
catch (GroupManagerException ex)
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage(ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage("Invalid syntax for color, expected \"rrr,ggg,bbb\"");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
args.Player.SendSuccessMessage("Color of \"{0}\" is \"{1}\".", group.Name, group.ChatColor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
return;
|
||||||
case "del":
|
case "del":
|
||||||
#region Delete group
|
#region Delete group
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -181,7 +181,7 @@ namespace TShockAPI.DB
|
||||||
/// <param name="parentname">parent of group</param>
|
/// <param name="parentname">parent of group</param>
|
||||||
/// <param name="permissions">permissions</param>
|
/// <param name="permissions">permissions</param>
|
||||||
/// <param name="chatcolor">chatcolor</param>
|
/// <param name="chatcolor">chatcolor</param>
|
||||||
public void UpdateGroup(string name, string parentname, string permissions, string chatcolor)
|
public void UpdateGroup(string name, string parentname, string permissions, string chatcolor, string suffix, string prefix)
|
||||||
{
|
{
|
||||||
Group group = GetGroupByName(name);
|
Group group = GetGroupByName(name);
|
||||||
if (group == null)
|
if (group == null)
|
||||||
|
|
@ -210,13 +210,17 @@ namespace TShockAPI.DB
|
||||||
|
|
||||||
// Ensure any group validation is also persisted to the DB.
|
// Ensure any group validation is also persisted to the DB.
|
||||||
var newGroup = new Group(name, parent, chatcolor, permissions);
|
var newGroup = new Group(name, parent, chatcolor, permissions);
|
||||||
string query = "UPDATE GroupList SET Parent=@0, Commands=@1, ChatColor=@2 WHERE GroupName=@3";
|
newGroup.Prefix = prefix;
|
||||||
if (database.Query(query, parentname, newGroup.Permissions, string.Format("{0},{1},{2}", newGroup.R, newGroup.G, newGroup.B), name) != 1)
|
newGroup.Suffix = suffix;
|
||||||
|
string query = "UPDATE GroupList SET Parent=@0, Commands=@1, ChatColor=@2, Suffix=@3, Prefix=@4 WHERE GroupName=@5";
|
||||||
|
if (database.Query(query, parentname, newGroup.Permissions, newGroup.ChatColor, suffix, prefix, name) != 1)
|
||||||
throw new GroupManagerException(string.Format("Failed to update group \"{0}\".", name));
|
throw new GroupManagerException(string.Format("Failed to update group \"{0}\".", name));
|
||||||
|
|
||||||
group.ChatColor = chatcolor;
|
group.ChatColor = chatcolor;
|
||||||
group.Permissions = permissions;
|
group.Permissions = permissions;
|
||||||
group.Parent = parent;
|
group.Parent = parent;
|
||||||
|
group.Prefix = prefix;
|
||||||
|
group.Suffix = suffix;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if COMPAT_SIGS
|
#if COMPAT_SIGS
|
||||||
|
|
|
||||||
|
|
@ -70,11 +70,11 @@ namespace TShockAPI
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The chat color of the group.
|
/// The chat color of the group.
|
||||||
/// Returns "255255255", sets "255,255,255"
|
/// Returns "255,255,255", sets "255,255,255"
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string ChatColor
|
public string ChatColor
|
||||||
{
|
{
|
||||||
get { return string.Format("{0}{1}{2}", R.ToString("X2"), G.ToString("X2"), B.ToString("X2")); }
|
get { return string.Format("{0},{1},{2}", R.ToString("D3"), G.ToString("D3"), B.ToString("D3")); }
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
if (null != value)
|
if (null != value)
|
||||||
|
|
|
||||||
|
|
@ -719,7 +719,7 @@ namespace TShockAPI
|
||||||
var permissions = (null == parameters["permissions"]) ? group.Permissions : parameters["permissions"];
|
var permissions = (null == parameters["permissions"]) ? group.Permissions : parameters["permissions"];
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
TShock.Groups.UpdateGroup(group.Name, parent, permissions, chatcolor);
|
TShock.Groups.UpdateGroup(group.Name, parent, permissions, chatcolor, group.Suffix, group.Prefix);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue