diff --git a/NadekoBot/Modules/Administration.cs b/NadekoBot/Modules/Administration.cs index 099f81d1..2e49b1f1 100644 --- a/NadekoBot/Modules/Administration.cs +++ b/NadekoBot/Modules/Administration.cs @@ -105,41 +105,46 @@ namespace NadekoBot.Modules } catch (Exception) { } }); - - - - - cgb.CreateCommand(".color").Alias(".c") - .Parameter("Rolename", ParameterType.Required) - .Parameter("r", ParameterType.Optional) - .Parameter("g", ParameterType.Optional) - .Parameter("b", ParameterType.Optional) - .Description("Set a role's color to the rgb(0-255 0-255 0-255) color value provided.") - .Do(async e => - { + cgb.CreateCommand(".rolecolor").Alias(".rc") + .Parameter("Rolename", ParameterType.Required) + .Parameter("r", ParameterType.Optional) + .Parameter("g", ParameterType.Optional) + .Parameter("b", ParameterType.Optional) + .Description("Set a role's color to the hex or 0-255 color value provided.\n**Usage*: .color Admin 255 200 100 or .color Admin ffba55") + .Do(async e => { + if (!e.User.ServerPermissions.ManageRoles) { + await e.Channel.SendMessage("You don't have permission to use this!"); + return; + } + var args = e.Args.Where(s => s != String.Empty); - if (!e.User.ServerPermissions.ManageRoles) - { - await e.Channel.SendMessage("You don't have permission to use this!"); - return; - } + if (args.Count() != 2 && args.Count() != 4) { + await e.Send("The parameters are invalid."); + return; + } + Role role = e.Server.FindRoles(e.Args[0]).FirstOrDefault(); + if (role == null) { + await e.Send("That role does not exist."); + return; + } + try { + bool rgb = args.Count() == 4; - if (e.Args.Count() == 2 || e.Args.Count() == 4) - { - bool rgb = e.Args.Count() == 4; - byte red = Convert.ToByte(rgb ? int.Parse(e.Args[1]) : Convert.ToInt32(e.Args[1].Substring(0, 2), 16)); - byte green = Convert.ToByte(rgb ? int.Parse(e.Args[2]) : Convert.ToInt32(e.Args[1].Substring(2, 2), 16)); - byte blue = Convert.ToByte(rgb ? int.Parse(e.Args[3]) : Convert.ToInt32(e.Args[1].Substring(4, 2), 16)); - Role role = e.Server.FindRoles(e.Args[0]).FirstOrDefault(); - await role.Edit(color: new Color(red, green, blue)); - await e.Channel.SendMessage($"Role {role.Name}'s color has been changed."); - } - else - await e.Channel.SendMessage("The parameters are invalid."); - }); + byte red = Convert.ToByte(rgb ? int.Parse(e.Args[1]) : Convert.ToInt32(e.Args[1].Substring(0,2), 16)); + byte green = Convert.ToByte(rgb ? int.Parse(e.Args[2]) : Convert.ToInt32(e.Args[1].Substring(2, 2), 16)); + byte blue = Convert.ToByte(rgb ? int.Parse(e.Args[3]) : Convert.ToInt32(e.Args[1].Substring(4, 2), 16)); + + await role.Edit(color: new Color(red, green, blue)); + await e.Channel.SendMessage($"Role {role.Name}'s color has been changed."); + } catch (Exception ex) { + await e.Send(":warning: Unspecified error, please report this."); + Console.WriteLine($".rolecolor error: {ex}"); + } + + }); cgb.CreateCommand(".b").Alias(".ban") @@ -369,8 +374,6 @@ namespace NadekoBot.Modules } output += "```"; await e.User.SendMessage(output); - - //await e.Send("```\n" + e.User.ServerPermissions.+"\n```"); }); Server commsServer = null;