C# Discord.NET Guild.DefaultChannel不工作

C# Discord.NET Guild.DefaultChannel不工作,c#,discord,discord.net,C#,Discord,Discord.net,我正在编写一个discord bot,我希望它在bot加入新服务器时向服务器默认通道发送消息 这是我的密码 client.JoinedGuild += async guild => { var channel = guild.DefaultChannel; await channel.SendMessageAsync("test"); }; 错误发生在channel.SendMessageAsync上,当我调试程序时,它不断显示channel为空,即使我的服务器中确实有一个默认频道。几个

我正在编写一个discord bot,我希望它在bot加入新服务器时向服务器默认通道发送消息

这是我的密码

client.JoinedGuild += async guild =>
{
var channel = guild.DefaultChannel;
await channel.SendMessageAsync("test");
};

错误发生在
channel.SendMessageAsync
上,当我调试程序时,它不断显示
channel
为空,即使我的服务器中确实有一个默认频道。

几个月前的不一致更新删除了
defaultChannel
属性。这意味着服务器现在根本不需要有默认通道。
(您甚至可以删除服务器中的所有频道!)

这也意味着
Guild.DefaultChannel
属性将不再按预期工作。
(如果我错了,请纠正我,但如果服务器仍有
#general
频道,则该属性将按预期工作。)

Discord.NET v2+具有可工作的
DefaultChannel
属性。(它使用自己的一套算法来确定哪个频道是公会的默认频道。)

该算法的源代码是。(第66-69行)

查看该算法,您可能希望在使用它时稍微谨慎一点,如果您的bot允许在任何地方发送消息,
DefaultChannel
属性将只是服务器频道列表中的第一个频道。
(如果那是自述频道,那将是个坏消息)