public async Task HelpCommand([Remainder] string command = null) { var AvailableCommands = new List <Command>(); foreach (Command c in Core.Commands) { if (c.Listed == false) { continue; } else if (c.Rank > await MiXLib.GetRank(Context.User.Id, Context.Guild)) { continue; } else if (c.Guild != 0 && c.Guild != Context.Guild.Id) { continue; } AvailableCommands.Add(c); } if (command == null) { await ReplyAsync("", false, MiXLib.GetEmbed( $"Rank: **{MiXLib.GetRankName(await MiXLib.GetRank(Context.User.Id, Context.Guild))}**\n" + $"Available Commands (**{AvailableCommands.Count.ToString()}**): {(new Func<string>(() => { var cmds = new List<string>(); foreach (Command c in AvailableCommands) cmds.Add(c.Name); return MiXLib.Concat(cmds, ", ", "**", "**"); }))()}\n\n" + $"Run **{Core.Guilds[Context.Guild.Id].Config.Prefix}help <command>** for more info")); } else { var Command = Core.GetCommand(command); if (Command == null || Command.Listed == false || (Command.Guild != 0 && Command.Guild != Context.Guild.Id)) { await ReplyAsync("", false, MiXLib.GetEmbed($"**Error**: Could not find command **{command}**.", null, new Color(200, 0, 0))); return; } await ReplyAsync("", false, MiXLib.GetEmbed( $"Command Name: **{Command.Name}**\n" + $"Description: **{Command.Description}**\n" + $"Aliases: {MiXLib.Concat(Command.Aliases, ", ", "**", "**")}\n" + $"Usage: **{Command.Usage}**\n" + $"Minimum Rank: **{MiXLib.GetRankName(Command.Rank)}**\n" + $"User can run: **{MiXLib.BoolToYesNo(await MiXLib.GetRank(Context.User.Id, Context.Guild) >= Command.Rank)}**" )); } }
public async Task SetRank(SocketUser user, [Remainder] string rankstr) { var rank = MiXLib.Rank.User; try { rank = (MiXLib.Rank)Convert.ToInt32(rankstr); } catch (Exception ex) { rankstr = rankstr.ToLower(); if (rankstr.Contains("owner")) { rank = MiXLib.Rank.GuildOwner; } else if (rankstr.Contains("admin")) { rank = MiXLib.Rank.Administrator; } else if ((rankstr.Contains("sr") || rankstr.Contains("senior")) && rankstr.Contains("mod")) { rank = MiXLib.Rank.SeniorModerator; } else if (!(rankstr.Contains("sr") || rankstr.Contains("senior")) && !(rankstr.Contains("jr") || rankstr.Contains("junior")) && rankstr.Contains("mod")) { rank = MiXLib.Rank.Moderator; } else if ((rankstr.Contains("jr") || rankstr.Contains("junior")) && rankstr.Contains("mod")) { rank = MiXLib.Rank.JuniorModerator; } else { rank = MiXLib.Rank.User; } }; if (rank > await MiXLib.GetRank(Context.User.Id, Context.Guild)) { await ReplyAsync("", false, MiXLib.GetEmbed("**Error:** You cannot set peoples ranks to a rank higher than your own.", null, new Color(200, 0, 0))); return; } Core.Guilds[Context.Guild.Id].Users[user.Id] = (int)rank; await ReplyAsync("", false, MiXLib.GetEmbed($"Successfully set {user.Mention}'s rank to **{MiXLib.GetRankName(rank)}**!")); }