【问题标题】:Discord.NET c# SocketUser is returning nullDiscord.NET c# SocketUser 返回 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 SocketUseras SocketGuildUser 但仍然返回 null 帮助:/

【问题讨论】:

  • 您的机器人中是否启用了Server Members Intent
  • 是的,成功了,谢谢
  • 我将其发布为答案,以便可以接受。

标签: c# discord bots discord.net


【解决方案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

    【讨论】:

      猜你喜欢
      • 2019-05-10
      • 2021-02-20
      • 2023-03-07
      • 1970-01-01
      • 2014-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多