Discord.NET c# SocketUser 返回 null
Posted
技术标签:
【中文标题】Discord.NET c# SocketUser 返回 null【英文标题】:Discord.NET c# SocketUser is returning null 【发布时间】:2021-05-04 08:28:26 【问题描述】:我正在编写一个 c# 机器人并尝试执行一个 !user @ 命令,该命令提供有关已标记用户的信息。
这就是我获取用户ID的方式
public async Task Info(string user)
这就是我将其转换为数字的方式
user = user.Substring(3);
int k = user.Length;
user = user.Substring(0, k - 1);
例如:!user 转换为 749020331187896410
这就是我为获取用户所做的事情,就像我为 Context.Message.Author 所做的那样
var client = Context.Client;
ulong id = Convert.ToUInt64(user);
var socketUser = client.GetUser(id);
我尝试在最后一行添加 as SocketUser 和 as SocketGuildUser 但仍然返回 null 帮助:/
【问题讨论】:
您的机器人中是否启用了Server Members Intent
?
是的,成功了,谢谢
我将其发布为答案,以便可以接受。
【参考方案1】:
这应该可以工作
[Command("user")]
public async Task blizz_con(IGuildUser user)
await ReplyAsync(user.Id.ToString());
或者如果您直接处理消息:
message.Author.id
【讨论】:
【参考方案2】:您应该在Discord Developer Console 中启用Server Members Intent:
【讨论】:
以上是关于Discord.NET c# SocketUser 返回 null的主要内容,如果未能解决你的问题,请参考以下文章
Discord.NET '对象引用未设置为对象的实例。 C# [重复]
Discord.NET C# MessageReceived 被调用太多次