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