mirror of
https://github.com/Myxelium/Lunaris2.0.git
synced 2026-04-11 15:19:53 +00:00
52 lines
1.6 KiB
C#
52 lines
1.6 KiB
C#
using Discord;
|
|
using Discord.WebSocket;
|
|
using Lunaris2.Handler.MusicPlayer;
|
|
|
|
public static class MessageModule
|
|
{
|
|
private static Dictionary<ulong, List<ulong>> guildMessageIds = new Dictionary<ulong, List<ulong>>();
|
|
|
|
public static async Task SendMessageAsync(this SocketSlashCommand context, string message, DiscordSocketClient client)
|
|
{
|
|
var guildId = await StoreForRemoval(context, client);
|
|
|
|
await context.RespondAsync(message);
|
|
var sentMessage = await context.GetOriginalResponseAsync();
|
|
|
|
guildMessageIds[guildId].Add(sentMessage.Id);
|
|
}
|
|
|
|
public static async Task SendMessageAsync(this SocketSlashCommand context, Embed message, DiscordSocketClient client)
|
|
{
|
|
var guildId = await StoreForRemoval(context, client);
|
|
|
|
await context.RespondAsync(embed: message);
|
|
|
|
var sentMessage = await context.GetOriginalResponseAsync();
|
|
|
|
guildMessageIds[guildId].Add(sentMessage.Id);
|
|
}
|
|
|
|
private static async Task<ulong> StoreForRemoval(SocketSlashCommand context, DiscordSocketClient client)
|
|
{
|
|
var guildId = context.GetGuild(client).Id;
|
|
|
|
if (guildMessageIds.ContainsKey(guildId))
|
|
{
|
|
foreach (var messageId in guildMessageIds[guildId])
|
|
{
|
|
var messageToDelete = await context.Channel.GetMessageAsync(messageId);
|
|
if (messageToDelete != null)
|
|
await messageToDelete.DeleteAsync();
|
|
}
|
|
|
|
guildMessageIds[guildId].Clear();
|
|
}
|
|
else
|
|
{
|
|
guildMessageIds.Add(guildId, []);
|
|
}
|
|
|
|
return guildId;
|
|
}
|
|
} |