public async Task Gtn(CommandContext ctx, int number) { int computer = ThreadLocalRandom.Instance.Next(100); int guesses = 0; await ctx.RespondAsync(computer.ToString()); if (computer == number) { await ctx.RespondAsync("You guesses it! Nice Job"); } else { while ((computer != number) || (guesses < 5)) { if (computer < number) { await ctx.RespondAsync("Go lower. " + (5 - guesses) + " guesses remaining."); } else if (computer > number) { await ctx.RespondAsync("Go higher. " + (5 - guesses) + " guesses remaining."); } string num = Console.ReadLine(); number = Int32.Parse(num); guesses++; } if ((guesses < 5) && (computer == number)) { await ctx.RespondAsync("You guesses it! Nice Job"); } else if (guesses >= 10) { await ctx.RespondAsync("Bad Luck :( Try again later"); } } await ctx.RespondAsync("The Number was " + computer.ToString()); }
public async Task DefaultHelpAsync(CommandContext ctx, [Description("Command to provide help for.")] params string[] command) { var topLevel = ctx.CommandsNext.TopLevelCommands.Values.Distinct(); var helpBuilder = ctx.CommandsNext.HelpFormatter.Create(ctx); if (command != null && command.Any()) { Command cmd = null; var searchIn = topLevel; foreach (var c in command) { if (searchIn == null) { cmd = null; break; } if (ctx.Config.CaseSensitive) { cmd = searchIn.FirstOrDefault(xc => xc.Name == c || (xc.Aliases != null && xc.Aliases.Contains(c))); } else { cmd = searchIn.FirstOrDefault(xc => xc.Name.ToLowerInvariant() == c.ToLowerInvariant() || (xc.Aliases != null && xc.Aliases.Select(xs => xs.ToLowerInvariant()).Contains(c.ToLowerInvariant()))); } if (cmd == null) { break; } var failedChecks = await cmd.RunChecksAsync(ctx, true).ConfigureAwait(false); if (failedChecks.Any()) { throw new ChecksFailedException(cmd, ctx, failedChecks); } if (cmd is CommandGroup) { searchIn = (cmd as CommandGroup).Children; } else { searchIn = null; } } if (cmd == null) { throw new CommandNotFoundException(string.Join(" ", command)); } helpBuilder.WithCommand(cmd); if (cmd is CommandGroup group) { var commandsToSearch = group.Children.Where(xc => !xc.IsHidden); var eligibleCommands = new List <Command>(); foreach (var candidateCommand in commandsToSearch) { if (candidateCommand.ExecutionChecks == null || !candidateCommand.ExecutionChecks.Any()) { eligibleCommands.Add(candidateCommand); continue; } var candidateFailedChecks = await candidateCommand.RunChecksAsync(ctx, true).ConfigureAwait(false); if (!candidateFailedChecks.Any()) { eligibleCommands.Add(candidateCommand); } } if (eligibleCommands.Any()) { helpBuilder.WithSubcommands(eligibleCommands.OrderBy(xc => xc.Name)); } } } else { var commandsToSearch = topLevel.Where(xc => !xc.IsHidden); var eligibleCommands = new List <Command>(); foreach (var sc in commandsToSearch) { if (sc.ExecutionChecks == null || !sc.ExecutionChecks.Any()) { eligibleCommands.Add(sc); continue; } var candidateFailedChecks = await sc.RunChecksAsync(ctx, true).ConfigureAwait(false); if (!candidateFailedChecks.Any()) { eligibleCommands.Add(sc); } } if (eligibleCommands.Any()) { helpBuilder.WithSubcommands(eligibleCommands.OrderBy(xc => xc.Name)); } } var helpMessage = helpBuilder.Build(); if (!ctx.Config.DmHelp || ctx.Channel is DiscordDmChannel || ctx.Guild == null) { await ctx.RespondAsync(helpMessage.Content, embed : helpMessage.Embed).ConfigureAwait(false); } else { await ctx.Member.SendMessageAsync(helpMessage.Content, embed : helpMessage.Embed).ConfigureAwait(false); } }
public async Task DefaultHelpAsync(CommandContext ctx, [Description("Command to provide help for.")] params string[] command) { var toplevel = ctx.CommandsNext.TopLevelCommands.Values.Distinct(); var helpbuilder = ctx.CommandsNext.HelpFormatter.Create(ctx.Services, ctx.CommandsNext); if (command != null && command.Any()) { Command cmd = null; var search_in = toplevel; foreach (var c in command) { if (search_in == null) { cmd = null; break; } if (ctx.Config.CaseSensitive) { cmd = search_in.FirstOrDefault(xc => xc.Name == c || (xc.Aliases != null && xc.Aliases.Contains(c))); } else { cmd = search_in.FirstOrDefault(xc => xc.Name.ToLowerInvariant() == c.ToLowerInvariant() || (xc.Aliases != null && xc.Aliases.Select(xs => xs.ToLowerInvariant()).Contains(c.ToLowerInvariant()))); } if (cmd == null) { break; } var cfl = await cmd.RunChecksAsync(ctx, true).ConfigureAwait(false); if (cfl.Any()) { throw new ChecksFailedException(cmd, ctx, cfl); } if (cmd is CommandGroup) { search_in = (cmd as CommandGroup).Children; } else { search_in = null; } } if (cmd == null) { throw new CommandNotFoundException(string.Join(" ", command)); } helpbuilder.WithCommand(cmd); if (cmd is CommandGroup gx) { var sxs = gx.Children.Where(xc => !xc.IsHidden); var scs = new List <Command>(); foreach (var sc in sxs) { if (sc.ExecutionChecks == null || !sc.ExecutionChecks.Any()) { scs.Add(sc); continue; } var cfl = await sc.RunChecksAsync(ctx, true).ConfigureAwait(false); if (!cfl.Any()) { scs.Add(sc); } } if (scs.Any()) { helpbuilder.WithSubcommands(scs.OrderBy(xc => xc.Name)); } } } else { var sxs = toplevel.Where(xc => !xc.IsHidden); var scs = new List <Command>(); foreach (var sc in sxs) { if (sc.ExecutionChecks == null || !sc.ExecutionChecks.Any()) { scs.Add(sc); continue; } var cfl = await sc.RunChecksAsync(ctx, true).ConfigureAwait(false); if (!cfl.Any()) { scs.Add(sc); } } if (scs.Any()) { helpbuilder.WithSubcommands(scs.OrderBy(xc => xc.Name)); } } var hmsg = helpbuilder.Build(); await ctx.RespondAsync(hmsg.Content, embed : hmsg.Embed).ConfigureAwait(false); }