react command added

This commit is contained in:
balos 2025-05-03 16:40:35 +02:00
parent 29de185cba
commit 8274a22f1b
8 changed files with 180 additions and 76 deletions

View file

@ -3,16 +3,18 @@ using DSharpPlus.CommandsNext.Attributes;
using System.Threading.Tasks;
using System.Linq;
public class HasAdminRole : CheckBaseAttribute
namespace T3k3rg0.Commands
{
public override async Task<bool> ExecuteCheckAsync(CommandContext ctx, bool help)
public class HasAdminRole : CheckBaseAttribute
{
bool hasAdminRole = ctx.Member?.Roles.Any(role => role.Name == "Admin") ?? false;
if (!hasAdminRole)
public override async Task<bool> ExecuteCheckAsync(CommandContext ctx, bool help)
{
await ctx.RespondAsync("Csicskáknak kuss van !");
bool hasAdminRole = ctx.Member?.Roles.Any(role => role.Name == "Admin") ?? false;
if (!hasAdminRole)
{
await ctx.RespondAsync("Csicskáknak kuss van !");
}
return (hasAdminRole);
}
return (hasAdminRole);
}
}

36
commands/react.cs Normal file
View file

@ -0,0 +1,36 @@
using DSharpPlus.CommandsNext;
using DSharpPlus.CommandsNext.Attributes;
using System.Threading.Tasks;
using T3k3rg0.Helpers;
namespace T3k3rg0.Commands
{
public class React : BaseCommandModule
{
[Command("react")]
[Description("Reagál egy üzenetre ! react <csatorna> <üzenet> <emoji>")]
[HasAdminRole]
public async Task ReactToMessage(CommandContext ctx, string channelInput, string messageInput, string emojiInput)
{
var channel = await IdExtractor.ExtractChannelId(channelInput, ctx.Client);
if (channel == null)
{
return;
}
var message = await IdExtractor.ExtractMessageId(messageInput, channel);
if (message == null)
{
return;
}
var emoji = await EmojiExtractor.ExtractAsync(emojiInput, ctx.Client);
if (emoji == null)
{
await ctx.RespondAsync("Nem sikerült felismerni az emojit.");
return;
}
await message.CreateReactionAsync(emoji);
}
}
}

View file

@ -1,26 +1,24 @@
using DSharpPlus.CommandsNext;
using DSharpPlus.CommandsNext.Attributes;
using System.Threading.Tasks;
using T3k3rg0.Helpers;
namespace T3k3rg0.Commands
{
public class Send : BaseCommandModule
{
[Command("sendmsg")]
[Description("Üzenetet küld ! sendmsg <csatorna> <üzenet>")]
[Command("send")]
[Description("Üzenetet küld ! send <csatorna> <szöveg>")]
[HasAdminRole]
public async Task SendAsync(CommandContext ctx, string channelParam, [RemainingText] string message)
public async Task SendAsync(CommandContext ctx, string channelInput, [RemainingText] string message)
{
// Használjuk a ChannelHelper-t a csatorna kezeléséhez
var channel = await IdExtractor.GetChannelAsync(ctx, channelParam);
var channel = await IdExtractor.ExtractChannelId(channelInput, ctx.Client);
if (channel == null)
{
// Ha a csatorna érvénytelen, a ChannelHelper már válaszolt, itt nem kell további kód.
return;
}
// Üzenet küldése a megtalált csatornára
await channel.SendMessageAsync(message);
}
}