You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用DSharpPlus开发的C# Discord机器人命令无法在聊天提示中显示

解决DSharpPlus机器人命令不显示在聊天提示框的问题

你的命令能正常执行但不显示在聊天提示框,是因为当前用的是前缀触发命令,而Discord聊天提示框展示的是应用程序斜杠命令。要让命令出现在提示框里,需要把命令注册为斜杠命令,步骤如下:

1. 启用Slash Commands扩展

在初始化Discord客户端时,添加SlashCommands扩展:

var discord = new DiscordClient(new DiscordConfiguration
{
    Token = "你的机器人Token",
    TokenType = TokenType.Bot,
    Intents = DiscordIntents.AllUnprivileged | DiscordIntents.MessageContent
});

// 添加SlashCommands扩展
var slashCommands = discord.UseSlashCommands();

2. 修改命令类,添加斜杠命令属性

给你的命令添加[SlashCommand]属性,同时可以保留原[Command]属性来兼容前缀触发:

public class TestCommands : BaseCommandModule
{
    // 同时支持前缀命令和斜杠命令
    [Command("test"), Description("test command")]
    [SlashCommand("test", "test command")]
    public async Task Test(CommandContext ctx)
    {
        await ctx.Channel.SendMessageAsync($"Тестовое сообщение:\nПривет, {ctx.User.Username}");
    }

    [RequireRoles(RoleCheckMode.Any, "꧁ঔৣ死𝓐𝓹𝓮𝔁 𝓟𝓻𝓮𝓭𝓪𝓽𝓸𝓻ঔৣ꧂","Admin")]
    [Command("shutdown"), Description("Shutdown command")]
    [SlashCommand("shutdown", "Shutdown command")]
    public async Task Shutdown(CommandContext ctx)
    {
        await ctx.Channel.SendMessageAsync("Выключение...");
        Environment.Exit(0);
    }
}

3. 注册命令模块

在客户端就绪事件中,注册你的命令模块到指定服务器(全局注册需要等待1小时左右生效,测试建议先指定服务器):

discord.Ready += async (s, e) =>
{
    // 替换为你的服务器ID
    ulong guildId = 1234567890;
    // 注册命令到指定服务器
    await slashCommands.RegisterCommandsAsync<TestCommands>(guildId);
    // 如果要全局注册(所有服务器生效,需等待Discord审核):
    // await slashCommands.RegisterCommandsAsync<TestCommands>();
};

await discord.ConnectAsync();
await Task.Delay(-1);

注意事项

  • 斜杠命令的权限控制:[RequireRoles]属性对斜杠命令同样生效,但如果需要更精细的权限设置,可以在注册命令时配置SlashCommandBuilder的权限。
  • 全局注册的斜杠命令需要Discord处理,通常需要1小时左右才能在所有服务器生效,测试阶段优先用服务器级注册。
  • 确保机器人在Discord开发者门户中启用了applications.commands权限。

内容的提问来源于stack exchange,提问作者Hehe_Boy -

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 05:12:24