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? 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? 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()!; } }