【问题标题】:Discord.NET Guild.DefaultChannel does not workDiscord.NET Guild.DefaultChannel 不起作用
【发布时间】:2018-03-12 21:52:05
【问题描述】:
我正在编写一个不和谐机器人,我希望它在机器人加入新服务器时向服务器默认频道发送消息。
这是我的代码
client.JoinedGuild += async guild =>
{
var channel = guild.DefaultChannel;
await channel.SendMessageAsync("test");
};
错误发生在channel.SendMessageAsync,当我调试程序时,它一直显示channel 为空,即使我的服务器中有默认频道。
【问题讨论】:
标签:
c#
discord
discord.net
【解决方案1】:
几个月前的一次不和谐更新删除了defaultChannel 属性。这意味着服务器现在根本不需要默认频道。
(您甚至可以删除服务器中的所有频道!)
这也意味着Guild.DefaultChannel 属性将不再按预期工作。
(如果我错了,请纠正我,但如果服务器仍有#general 频道,则该属性将按预期工作。)
Discord.NET v2+ 有一个有效的 DefaultChannel 属性。 (它使用自己的一套算法来确定哪个是公会的默认频道。)
算法的源代码是here。 (第 66-69 行)
查看算法,您可能需要稍微谨慎使用它,如果您的机器人有权在任何地方发送消息,DefaultChannel 属性将只是服务器频道列表中的第一个频道。
(如果那是自述频道,那将是个坏消息)