Files
Lunaris2.0/Bot/SlashCommand/Command.cs
2025-02-18 01:15:55 +01:00

102 lines
2.9 KiB
C#

using Discord;
namespace Lunaris2.SlashCommand;
public static class Option
{
public const string Input = "input";
public const string Time = "time";
public const string IsRecurring = "repeating";
public const string Message = "message";
}
public static class Command
{
public static class Disconnect
{
public const string Name = "disconnect";
public const string Description = "Disconnect from the voice channel!";
}
public static class Clear
{
public const string Name = "clear";
public const string Description = "Clear the music queue!";
}
public static class Skip
{
public const string Name = "skip";
public const string Description = "Skip the current song!";
}
public static class Resume
{
public const string Name = "resume";
public const string Description = "Resume the music!";
}
public static class Pause
{
public const string Name = "pause";
public const string Description = "Pause the music!";
}
public static class Play
{
public const string Name = "play";
public const string Description = "Play a song!";
public static readonly List<SlashCommandOptionBuilder>? Options = new()
{
new SlashCommandOptionBuilder
{
Name = "input",
Description = "The song you want to play",
Type = ApplicationCommandOptionType.String,
IsRequired = true
},
};
}
public static class Scheduler
{
public const string Name = "scheduler";
public const string Description = "Schedule a message";
public static readonly List<SlashCommandOptionBuilder>? Options =
[
new SlashCommandOptionBuilder
{
Name = "message",
Description = "The message you want to schedule",
Type = ApplicationCommandOptionType.String,
IsRequired = true
},
new SlashCommandOptionBuilder
{
Name = "time",
Description = "The time you want to schedule the message",
Type = ApplicationCommandOptionType.String,
IsRequired = true
},
new SlashCommandOptionBuilder
{
Name = "repeating",
Description = "Whether the message should repeat",
Type = ApplicationCommandOptionType.Boolean,
IsRequired = false,
IsDefault = false
}
];
}
public static string[] GetAllCommands()
{
return typeof(Command)
.GetNestedTypes()
.Select(command => command.GetField("Name")?.GetValue(null)?.ToString())
.ToArray()!;
}
}