Discord 机器人只显示不和谐版本

Discord bot just show discord version

我编写了一个 discord 机器人并尝试连接到我的服务器。但是当我尝试连接时,我只看到了 Discord 版本 Discord.Net v2.1.1 (API v6),程序永远停留在 await _client.LoginAsync(TokenType.Bot, bot_token); 行。 完整代码如下:

    public class discord
    {
        private const string bot_token = "<token>";

        public delegate void getMessage(string message);
        public event getMessage ongetmessage;

        private DiscordSocketClient _client;

        public async Task MainAsync()
        {
            _client = new DiscordSocketClient(new DiscordSocketConfig() { LogLevel = LogSeverity.Verbose });
            _client.Log += Log;
            await _client.LoginAsync(TokenType.Bot, bot_token);
            await _client.StartAsync();

            // Block this task until the program is closed.
            await Task.Delay(-1);
        }

        private Task Log(LogMessage msg)
        {
            ongetmessage(msg.ToString());
            return Task.CompletedTask;
        }

        public void connect()
        {
            MainAsync().GetAwaiter().GetResult();
        }
    }

下面是表格中的代码:

    private void Discord_ongetmessage(string message)
    {
        if (InvokeRequired)
        {
            this.Invoke(new Action<string>(Discord_ongetmessage), new object[] { message }); 
            return;
        } 
        this.richTextBox1.AppendText(DateTime.Now + ": " + message + "\n");
    }

    private void btn_connect_Click(object sender, EventArgs e)
    {            
        discord.connect();
    }

我正在使用 nuget 包 Discord.net v2.1.1 和 Discord.net.core v2.1.1.

您要么在 Discord Dev Site 错误地创建了机器人,输入了错误的令牌,要么甚至没有邀请机器人加入您的 discord 服务器(尽管我怀疑这会导致等待暂停)。

此外,正如@Anu6is 在评论中所说:

Try wrapping your call to connect() in Task.Run() --- _ = Task.Run( () => discord.connect());

希望对您有所帮助!