client.GetChannel(%channelID%) return 空
client.GetChannel(%channelID%) return null
Im creting discord bot via discord.Net v 1.0.2
而且我想从我的服务器获取特定频道 我试图通过 Client.GetChannel(%channelID%)
获取该频道(我的客户端是 属性 类型的 DiscordSocketClient bot class) 但那个方法 return 我只有空,我只是想不通为什么。我在互联网上搜索了很多类似的 post 但没有任何效果。有我的机器人的启动方法和我尝试获取频道的方法:
public async Task StartAsync()
{
await Client.StartAsync();
Client.MessageReceived += Client_MessageReceived;
Client.Connected += Client_Connected;
Logger.WriteLog("Bot started");
await Task.Delay(-1);
}
private async Task Client_Connected()
{
var channel = Client.GetChannel(414543303187496962);
}
改为使用 Client.Ready
事件处理程序,并确保机器人确实在该特定频道中,这次它应该可以正常工作。
所以它看起来像这样:
public async Task StartAsync()
{
await Client.StartAsync();
Client.MessageReceived += Client_MessageReceived;
Client.Ready += Client_Ready;
Logger.WriteLog("Bot started");
await Task.Delay(-1);
}
private async Task Client_Ready()
{
var channel = Client.GetChannel(414543303187496962);
}
Im creting discord bot via discord.Net v 1.0.2
而且我想从我的服务器获取特定频道 我试图通过 Client.GetChannel(%channelID%)
获取该频道(我的客户端是 属性 类型的 DiscordSocketClient bot class) 但那个方法 return 我只有空,我只是想不通为什么。我在互联网上搜索了很多类似的 post 但没有任何效果。有我的机器人的启动方法和我尝试获取频道的方法:
public async Task StartAsync()
{
await Client.StartAsync();
Client.MessageReceived += Client_MessageReceived;
Client.Connected += Client_Connected;
Logger.WriteLog("Bot started");
await Task.Delay(-1);
}
private async Task Client_Connected()
{
var channel = Client.GetChannel(414543303187496962);
}
改为使用 Client.Ready
事件处理程序,并确保机器人确实在该特定频道中,这次它应该可以正常工作。
所以它看起来像这样:
public async Task StartAsync()
{
await Client.StartAsync();
Client.MessageReceived += Client_MessageReceived;
Client.Ready += Client_Ready;
Logger.WriteLog("Bot started");
await Task.Delay(-1);
}
private async Task Client_Ready()
{
var channel = Client.GetChannel(414543303187496962);
}