Discord.NET c# SocketUser 正在返回 null
Discord.NET c# SocketUser is returning null
我正在编写一个 c# 机器人,我正在尝试执行一个 !user @ 命令,它提供有关标记用户的信息。
这就是我获取用户 ID 的方式
public async Task Info(string user)
这就是我将其转换为数字的方式
user = user.Substring(3);
int k = user.Length;
user = user.Substring(0, k - 1);
例如:!用户<@!749020331187896410>转换为749020331187896410
这就是我为 Context.Message.Author
所做的吸引用户的工作
var client = Context.Client;
ulong id = Convert.ToUInt64(user);
var socketUser = client.GetUser(id);
我尝试在最后一行添加 as SocketUser 和 as SocketGuildUser 但它仍然返回 null
帮助:/
您应该在 Discord Developer Console:
中启用 Server Members Intent
这应该有效
[Command("user")]
public async Task blizz_con(IGuildUser user)
{
await ReplyAsync(user.Id.ToString());
}
或者如果您直接处理消息:
message.Author.id
我正在编写一个 c# 机器人,我正在尝试执行一个 !user @ 命令,它提供有关标记用户的信息。
这就是我获取用户 ID 的方式
public async Task Info(string user)
这就是我将其转换为数字的方式
user = user.Substring(3);
int k = user.Length;
user = user.Substring(0, k - 1);
例如:!用户<@!749020331187896410>转换为749020331187896410
这就是我为 Context.Message.Author
所做的吸引用户的工作var client = Context.Client;
ulong id = Convert.ToUInt64(user);
var socketUser = client.GetUser(id);
我尝试在最后一行添加 as SocketUser 和 as SocketGuildUser 但它仍然返回 null 帮助:/
您应该在 Discord Developer Console:
中启用 Server Members Intent这应该有效
[Command("user")]
public async Task blizz_con(IGuildUser user)
{
await ReplyAsync(user.Id.ToString());
}
或者如果您直接处理消息:
message.Author.id