我已经编程了一个不和谐的bot并尝试连接到我的服务器。但是,当我尝试连接时,仅显示了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。
答案 0 :(得分:0)
您或者在Discord Dev Site上错误地创建了漫游器,错误键入了令牌,或者甚至没有邀请漫游器进入不和谐的服务器(尽管我怀疑这会导致等待等待)。
此外,正如@ Anu6在评论中所说:
尝试在
connect()
中包装对Task.Run()
的呼叫---_ = Task.Run( () => discord.connect());
希望这会有所帮助!