58 lines
2.3 KiB
C#
58 lines
2.3 KiB
C#
using Humanizer;
|
|
|
|
using Myriad.Types;
|
|
|
|
using PluralKit.Core;
|
|
|
|
namespace PluralKit.Bot;
|
|
|
|
public partial class CommandTree
|
|
{
|
|
private async Task PrintCommandNotFoundError(Context ctx, params Command[] potentialCommands)
|
|
{
|
|
var commandListStr = CreatePotentialCommandList(potentialCommands);
|
|
await ctx.Reply(
|
|
$"{Emojis.Error} Unknown command `pk;{ctx.FullCommand().Truncate(100)}`. Perhaps you meant to use one of the following commands?\n{commandListStr}\n\nFor a full list of possible commands, see <https://pluralkit.me/commands>.");
|
|
}
|
|
|
|
private async Task PrintCommandExpectedError(Context ctx, params Command[] potentialCommands)
|
|
{
|
|
var commandListStr = CreatePotentialCommandList(potentialCommands);
|
|
await ctx.Reply(
|
|
$"{Emojis.Error} You need to pass a command. Perhaps you meant to use one of the following commands?\n{commandListStr}\n\nFor a full list of possible commands, see <https://pluralkit.me/commands>.");
|
|
}
|
|
|
|
private static string CreatePotentialCommandList(params Command[] potentialCommands)
|
|
{
|
|
return string.Join("\n", potentialCommands.Select(cmd => $"- **pk;{cmd.Usage}** - *{cmd.Description}*"));
|
|
}
|
|
|
|
private async Task PrintCommandList(Context ctx, string subject, params Command[] commands)
|
|
{
|
|
var str = CreatePotentialCommandList(commands);
|
|
await ctx.Reply(
|
|
$"Here is a list of commands related to {subject}:",
|
|
embed: new Embed()
|
|
{
|
|
Description = $"{str}\nFor a full list of possible commands, see <https://pluralkit.me/commands>.",
|
|
Color = DiscordUtils.Blue,
|
|
}
|
|
);
|
|
}
|
|
|
|
private async Task<string> CreateSystemNotFoundError(Context ctx)
|
|
{
|
|
var input = ctx.PopArgument();
|
|
if (input.TryParseMention(out var id))
|
|
{
|
|
// Try to resolve the user ID to find the associated account,
|
|
// so we can print their username.
|
|
var user = await ctx.Rest.GetUser(id);
|
|
if (user != null)
|
|
return $"Account **{user.Username}#{user.Discriminator}** does not have a system registered.";
|
|
return $"Account with ID `{id}` not found.";
|
|
}
|
|
|
|
return $"System with ID {input.AsCode()} not found.";
|
|
}
|
|
} |