Discord.net获取用户

时间:2018-03-02 17:56:44

标签: c# discord discord.net

我正在尝试通过编写MessageReceived来获取(message.Author as SocketGuildUser).Roles内用户的角色列表。但是,强制转换始终返回null。我也尝试使用Context.User,但也返回null。我在这里缺少什么?

这是我在铸造线上放置断点时得到的例外:

System.InvalidCastException: Unable to cast object of type 'Discord.WebSocket.SocketGlobalUser' to type 'Discord.WebSocket.SocketGuildUser'

2 个答案:

答案 0 :(得分:2)

你可以这样做:

foreach(SocketRole role in ((SocketGuildUser)message.Author).Roles)
{
    Console.WriteLine(role.Name);
}

答案 1 :(得分:1)

我很蠢。当角色只属于特定服务器时,我试图将角色列表放在DM上下文中。在非DM上下文中运行时,代码本身就很好。