hello and send messages
This commit is contained in:
parent
61b0fdf733
commit
4187f4269a
4 changed files with 89 additions and 0 deletions
14
Commands/HelloModule.cs
Normal file
14
Commands/HelloModule.cs
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
using DSharpPlus.CommandsNext;
|
||||
using DSharpPlus.CommandsNext.Attributes;
|
||||
|
||||
namespace KBot;
|
||||
|
||||
public class HelloModule : BaseCommandModule
|
||||
{
|
||||
[Command("greet")]
|
||||
[RequireRoles(RoleCheckMode.All, "Admin")]
|
||||
public async Task GreetCommand(CommandContext ctx)
|
||||
{
|
||||
await ctx.RespondAsync("Greetings! Thank you for executing me!");
|
||||
}
|
||||
}
|
||||
43
Commands/SendModule.cs
Normal file
43
Commands/SendModule.cs
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
using DSharpPlus.CommandsNext;
|
||||
using DSharpPlus.CommandsNext.Attributes;
|
||||
using DSharpPlus.Entities;
|
||||
|
||||
namespace KBot;
|
||||
|
||||
public class SendModule : BaseCommandModule
|
||||
{
|
||||
[
|
||||
Command("send"),
|
||||
Description("Lets you send a message to a channel, user, or in reply to a message"),
|
||||
RequireRoles(RoleCheckMode.All, "Admin")
|
||||
]
|
||||
public async Task SendChannelCommand(
|
||||
CommandContext ctx,
|
||||
[Description("The channel the message will be sent to")] DiscordChannel channel,
|
||||
[RemainingText, Description("The message sent")] string content
|
||||
)
|
||||
{
|
||||
await ctx.Client.SendMessageAsync(channel, content);
|
||||
}
|
||||
|
||||
[Command("send"), RequireRoles(RoleCheckMode.All, "Admin")]
|
||||
public async Task SendDmCommand(
|
||||
CommandContext ctx,
|
||||
[Description("The member you want to send the message to")] DiscordMember member,
|
||||
[RemainingText, Description("The message sent")] string content
|
||||
)
|
||||
{
|
||||
var channel = await member.CreateDmChannelAsync();
|
||||
await ctx.Client.SendMessageAsync(channel, content);
|
||||
}
|
||||
|
||||
[Command("send"), RequireRoles(RoleCheckMode.All, "Admin")]
|
||||
public async Task SendReplyCommand(
|
||||
CommandContext ctx,
|
||||
[Description("The message you want to reply to")] DiscordMessage message,
|
||||
[RemainingText, Description("The message sent")] string content
|
||||
)
|
||||
{
|
||||
await message.RespondAsync(content);
|
||||
}
|
||||
}
|
||||
31
Program.cs
31
Program.cs
|
|
@ -1,6 +1,8 @@
|
|||
using dotenv.net;
|
||||
using dotenv.net.Utilities;
|
||||
using DSharpPlus;
|
||||
using DSharpPlus.CommandsNext;
|
||||
using DSharpPlus.CommandsNext.Exceptions;
|
||||
|
||||
namespace KBot;
|
||||
|
||||
|
|
@ -19,6 +21,35 @@ class Program
|
|||
}
|
||||
);
|
||||
|
||||
var commands = discord.UseCommandsNext(
|
||||
new CommandsNextConfiguration() { StringPrefixes = new[] { "," } }
|
||||
);
|
||||
|
||||
commands.RegisterCommands<HelloModule>();
|
||||
commands.RegisterCommands<SendModule>();
|
||||
|
||||
commands.CommandErrored += async (s, e) =>
|
||||
{
|
||||
if (e.Exception is CommandNotFoundException)
|
||||
{
|
||||
await e.Context.RespondAsync("Unknown command!");
|
||||
}
|
||||
else if (e.Exception is ChecksFailedException checksFailed)
|
||||
{
|
||||
await e.Context.RespondAsync("You don't have permission to use this command!");
|
||||
}
|
||||
else if (e.Exception is ArgumentException)
|
||||
{
|
||||
var command = commands.FindCommand("help " + e.Command?.Name, out string? str);
|
||||
var ctx = commands.CreateContext(e.Context.Message, "", command, str);
|
||||
await command?.ExecuteAsync(ctx);
|
||||
}
|
||||
else
|
||||
{
|
||||
await e.Context.RespondAsync($"An error occurred: {e.Exception.GetType().Name}");
|
||||
}
|
||||
};
|
||||
|
||||
await discord.ConnectAsync(new DSharpPlus.Entities.DiscordActivity("bing chillin"));
|
||||
await Task.Delay(-1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
<ItemGroup>
|
||||
<PackageReference Include="dotenv.net" Version="3.2.1" />
|
||||
<PackageReference Include="DSharpPlus" Version="4.5.1" />
|
||||
<PackageReference Include="DSharpPlus.CommandsNext" Version="4.5.1" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue