获取用户的存在 - discord JDA 库
Get a user's presence - discord JDA library
我正在尝试使用 JDA 编写一个 discord 机器人,虽然我可以很容易地获得该机器人的存在,但我无法获得选定用户的存在。一个示例用例可能是用户输入 !game
之类的命令,然后机器人发送一条消息告诉用户他们正在玩什么游戏。据我所知,机器人无法在用户不在场的情况下获取用户的游戏 activity,而且我看不到这样做的方法。如果我在文档中遗漏了它,请 link method/class.
经过大量的挖掘和文档阅读,我找到了解决方案。没有办法像我想的那样获得存在感,但由于我的初衷是获得游戏 activity,因此此解决方案有效。首先,机器人必须具有通过开发人员门户授予的公会存在权限。然后我们需要在调用 main 方法中的 build 方法之前包含 jdaBuilder.enableIntents(GatewayIntent.GUILD_PRESENCES);
行。最后,要获取会员活动,我们需要包含 jdaBuilder.enableCache(CacheFlag.ACTIVITY);
。这让我们可以使用 member.getActivities()
方法。一般来说,获取与特定用户关联的数据需要启用公会存在。
我正在尝试使用 JDA 编写一个 discord 机器人,虽然我可以很容易地获得该机器人的存在,但我无法获得选定用户的存在。一个示例用例可能是用户输入 !game
之类的命令,然后机器人发送一条消息告诉用户他们正在玩什么游戏。据我所知,机器人无法在用户不在场的情况下获取用户的游戏 activity,而且我看不到这样做的方法。如果我在文档中遗漏了它,请 link method/class.
经过大量的挖掘和文档阅读,我找到了解决方案。没有办法像我想的那样获得存在感,但由于我的初衷是获得游戏 activity,因此此解决方案有效。首先,机器人必须具有通过开发人员门户授予的公会存在权限。然后我们需要在调用 main 方法中的 build 方法之前包含 jdaBuilder.enableIntents(GatewayIntent.GUILD_PRESENCES);
行。最后,要获取会员活动,我们需要包含 jdaBuilder.enableCache(CacheFlag.ACTIVITY);
。这让我们可以使用 member.getActivities()
方法。一般来说,获取与特定用户关联的数据需要启用公会存在。