HasMentionPrefix在使用Linux启动机器人时不起作用,但是在Windows上启动时却起作用

时间:2019-04-28 14:17:36

标签: c# discord.net

我正在使用discord.Net库开发C#机器人,并且发现当我在Linux(Debian 4.9.144-3.1)(带有mono)下启动bot时,该机器人没有响应提及他并将命令放在后面时的命令。但是在Windows 10计算机上启动时确实可以工作。如果有人知道为什么以及如何解决此问题

Discord.NET版本:2.0.1 Debian版本:Debian 4.9.144-3.1 Windows 10版本:17763.437

我尝试回退到Discord.NET 2.0.0,但是问题仍然存在

            var message = arg as SocketUserMessage;
            var context = new SocketCommandContext(DiscordClient, message);
            var prefixPos = 0;
            if (message.HasStringPrefix("b!", ref prefixPos) ||
                  message.HasMentionPrefix(DiscordClient.CurrentUser, ref prefixPos))
            {
                var result = await _commands.ExecuteAsync(context, prefixPos, null);
                if (!result.IsSuccess)
                    Console.WriteLine(
                        $"[Erreur] : à {DateTime.Now}, une erreur s'est produite avec la commande {context.Message.Content} | Stracktrace : {result.ErrorReason}");
            }

我希望机器人能够做出反应

1 个答案:

答案 0 :(得分:0)

在Discord.Net文档中,明确提到了Mono is not supported。使用Mono或非Core运行时可能会导致意外行为。改用.NET Core。