c# - 如何让我的 Discord C# 响应提及?
问题描述
我正在开发一个 C# discord 机器人,我已经成功地让机器人响应以“c!”开头的短语并使用正确的命令进行响应,但是我希望机器人在机器人回复时使用 GIF提到。如果有人可以帮助解释为什么这不起作用以及如何解决它会很好。这是我现在的代码:
private async Task HandleCommandAsync(SocketMessage arg)
{
var message = arg as SocketUserMessage;
if (message is null || message.Author.IsBot) return;
int argPos = 0;
if (message.HasStringPrefix("", ref argPos))
{
var context = new SocketCommandContext(_client, message);
var result = await _commands.ExecuteAsync(context, argPos, _services);
if (!result.IsSuccess)
Console.WriteLine(result.ErrorReason);
}
if (message.HasMentionPrefix(_client.CurrentUser, ref argPos))
{
var embed = new EmbedBuilder();
embed.WithImageUrl("https://cdn.discordapp.com/attachments/138522037181349888/438774275546152960/Ping_Discordapp_GIF-downsized_large.gif");
await ReplyAsync("", false, embed.Build());
}
解决方案
我同意 Solarcloud 关于分离模块的说法,但这就是您必须将代码修改为:
private async Task HandleCommandAsync(SocketMessage arg)
{
var message = arg as SocketUserMessage;
if (message is null || message.Author.IsBot) return;
int argPos = 0;
if (message.HasStringPrefix("", ref argPos))
{
var context = new SocketCommandContext(_client, message);
var result = await _commands.ExecuteAsync(context, argPos, _services);
if (!result.IsSuccess)
Console.WriteLine(result.ErrorReason);
}
if (message.content.contains(_client.CurrentUser.Mention.Replace("!", "")))
{
var embed = new EmbedBuilder();
embed.WithImageUrl("https://cdn.discordapp.com/attachments/138522037181349888/438774275546152960/Ping_Discordapp_GIF-downsized_large.gif");
await ReplyAsync("", false, embed.Build());
}
替换只是以防您的机器人 ID 返回@<!123456789>
,摆脱它可以正常工作。
推荐阅读
- html - 实体上的 A-Frame 静态主体
- yarnpkg - 使用 Yarn Plug'n'Play 复制库的资产
- rust - 替换 RwLockWriteGuard 的内容
- excel - VBA:.Text 和 .Formula 的用途(写作时)?
- php - 浏览另一个网页后,cookie 过期在 codeigniter 中显示 N/A
- python - 错误:(-215) scn == 3 || 函数 cv::cvtColor 中的 scn == 4
- python - Google Colaboratory 中的错误 - AttributeError:模块“PIL.Image”没有属性“register_decoder”
- flutter - 一些时间延迟的功能在颤动中分流
- c# - 为什么使用 System.Data.Entity 只需要引用实体框架?
- npm - npm prune 路径不好?执行安装脚本失败