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

Discord.NET中使用RespondAsync时隐藏用户命令及参数的方法问询

使用Discord.NET隐藏用户命令消息的解决方案

要解决既要调用RespondAsync()避免“应用未响应”提示,又要隐藏用户输入的命令及参数的问题,可通过以下几种方式实现:

方案1:调用响应后删除用户原始消息

先调用RespondAsync()完成交互回执,再删除用户发送的命令消息。需确保机器人拥有管理消息权限。

// 发送响应(可设置为仅用户可见的临时消息)
await RespondAsync("操作已完成", ephemeral: true);
// 删除用户的命令消息
await Context.Message.DeleteAsync();

方案2:修改用户原始消息内容

如果不想删除消息,可将用户的命令内容替换为无关文本,同样需要机器人拥有管理消息权限。

// 发送基础响应避免未提示
await RespondAsync("正在处理请求...");
// 修改用户消息内容,隐藏原始命令和参数
await Context.Message.ModifyAsync(msg => 
{
    msg.Content = "该命令已执行,原始内容已隐藏";
});

方案3:结合临时响应+消息处理

若希望响应也仅用户可见,同时隐藏原始命令,可将ephemeral参数设为true,再配合删除或修改原始消息:

// 发送仅用户可见的响应
await RespondAsync("操作已完成,原始命令已隐藏", ephemeral: true);
// 删除原始命令消息
await Context.Message.DeleteAsync();

注意:所有涉及删除/修改用户消息的操作,都需要机器人在对应服务器中拥有管理消息的权限,否则会抛出权限不足的异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 17:05:57