C#中使用Discord.Net完成一個簡易的斜線指令(Slash Commands)
在這篇文章中,我們將介紹如何使用C#和Discord.Net來建立一個簡單的斜線指令(Slash Commands)功能。斜線指令是Discord的一項強大功能,允許用戶直接在訊息框中輸入斜線命令,而不必使用傳統的命令前綴。
註冊事件
首先,我們需要在C#中設置Discord Bot並註冊所需的事件。在這個步驟中,我們將設置機器人的就緒事件和互動事件,以便讓機器人能夠正確地響應用戶的指令。
private DiscordSocketClient Discord_Bot = new DiscordSocketClient();
public void Discord_註冊事件()
{
Discord_Bot.Ready += Client_Ready;
Discord_Bot.SlashCommandExecuted += SlashCommandHandler;
}
註冊斜線指令事件
在就緒事件中,我們註冊了斜線指令到伺服器。這包括建立一個指令建構器(Slash CommandBuilder),設置指令的名稱和描述,然後將指令註冊到伺服器。
public async Task Client_Ready()
{
// 在機器人準備就緒時,註冊 Slash Command 到伺服器
var guild = Discord_Bot.GetGuild(伺服器ID);
// 建立 Slash CommandBuilder
var helloCommand = new SlashCommandBuilder()
.WithName("hello") // 指令名稱
.WithDescription("Say hello!"); // 指令描述
try
{
// 註冊指令到伺服器
await guild.CreateApplicationCommandAsync(helloCommand.Build());
}
catch (ApplicationCommandException exception)
{
Console.WriteLine("Error registering slash command: " + exception.Message);
}
}
互動事件
最後,在互動事件中,我們處理用戶發送的斜線指令。這裡我們檢查指令的名稱,並根據不同的指令執行相應的操作,這裡我們示範了對 "/hello" 指令的回應。
private async Task SlashCommandHandler(SocketSlashCommand command)
{
// 根據指令名稱執行相應的操作
switch (command.CommandName)
{
case "hello":
// 使用 RespondAsync() 回覆,並設置 ephemeral 參數為 true,只有發送指令的人能看到
await command.RespondAsync($"Hello, {interaction.User.Mention}!", ephemeral: true);
break;
}
}
這樣,我們就完成了一個簡單的C# Discord Bot,可以接受並響應斜線指令了。希望這篇文章對你有所幫助,讓你更好地了解如何使用Discord.Net來實現這一功能。
留言
張貼留言