1
我想这代码,我已经从discord.net GitHub的页面复制这一工作完全正常:Discord.NET C#的messageReceived获取调用次数太多
using Discord;
using Discord.WebSocket;
using System;
using System.Threading.Tasks;
namespace Adivisor
{
public class Program
{
private DiscordSocketClient _client;
public static void Main(string[] args) => new Program().MainAsync().GetAwaiter().GetResult();
public async Task MainAsync()
{
_client = new DiscordSocketClient();
_client.Log += Log;
_client.MessageReceived += MessageReceived;
string token = ":P";
await _client.LoginAsync(TokenType.Bot, token);
await _client.StartAsync();
await Task.Delay(-1);
}
private async Task MessageReceived(SocketMessage message)
{
if (message.Content == "!hi")
{
await message.Channel.SendMessageAsync("Hello!");
}
}
private Task Log(LogMessage msg)
{
Console.WriteLine(msg.ToString());
return Task.CompletedTask;
}
}
}
后,我上了一个小编辑现在的messageReceived它看起来像这样:
private async Task MessageReceived(SocketMessage message)
{
await message.Channel.SendMessageAsync("Hello!");
}
pratically我只是删除了,如果,但有一个巨大的differnce,好像没有如果的messageReceived被称为永远...
这是因为“你好!”触发'MessageReceived',从而导致无限循环。 – Xiaoy312
谢谢你现在一切都有道理:D – Lyner
如果没有错误通常我应该从下面的列表中选择一个asnwer,但你没有回答,但一个评论,所以...是这样离开这个问题是好的吗? – Lyner