|
123456789101112131415161718192021222324252627282930 |
- using Discord;
- using Discord.Interactions;
- using Discord.WebSocket;
- using System.Threading.Tasks;
-
- namespace InteractionFramework.Modules
- {
- // A transient module for executing commands. This module will NOT keep any information after the command is executed.
- internal class MessageCommandModule : InteractionModuleBase<SocketInteractionContext<SocketMessageCommand>>
- {
- // Pins a message in the channel it is in.
- [MessageCommand("pin")]
- public async Task PinMessageAsync(IMessage message)
- {
- // make a safety cast to check if the message is ISystem- or IUserMessage
- if (message is not IUserMessage userMessage)
- await RespondAsync(text: ":x: You cant pin system messages!");
-
- // if the pins in this channel are equal to or above 50, no more messages can be pinned.
- else if ((await Context.Channel.GetPinnedMessagesAsync()).Count >= 50)
- await RespondAsync(text: ":x: You cant pin any more messages, the max has already been reached in this channel!");
-
- else
- {
- await userMessage.PinAsync();
- await RespondAsync(":white_check_mark: Successfully pinned message!");
- }
- }
- }
- }
|