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());
希望对您有所帮助!
我编写了一个 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()
inTask.Run()
---_ = Task.Run( () => discord.connect());
希望对您有所帮助!