我正在 Discord.Net 中编写一个机器人来检查我的世界服务器上的在线玩家,但是当我调试我的机器人并将服务器从 Discord 提供给它时,我遇到了一个错误:MessageReceived 处理程序正在阻止网关任务。大约一分钟后,机器人断开连接:System.Exception:服务器在 Discord.ConnectionManager.<>c__DisplayClass29_0.<b__0>d.MoveNext()和下一个Disconnecting处错过了最后一次心跳我该如何解决?这是我的代码:
public async Task MessageReceivedAsync(SocketMessage message)
{
if (message.Author.Id == client.CurrentUser.Id)
return;
await message.Channel.SendMessageAsync("Adding server");
while (true)
{
if ((message.Content.StartsWith(@"\serwer ") || message.Content.StartsWith(@"\server ")) && !message.Content.EndsWith(".") && message.Content.Contains("."))
{
var url = message.Content.ToString();
if(url.StartsWith(@"\server "))
{
url = url.Replace(@"\server ", "");
}
else
{
url = url.Replace(@"\serwer ", "");
}
try
{
IMinecraftPinger pinger = new MinecraftPinger(url, 25565);
var status = await pinger.PingAsync();
if (status != null)
{
await client.SetGameAsync(status.Players.Online.ToString() + "/" + status.Players.Max.ToString());
}
}
catch
{
await client.SetGameAsync("Serwer offline :(");
}
await Task.Delay(15000);
}
}
}