当前位置: 首页 > 知识库问答 >
问题:

获取用户的存在-不协调JDA库

葛烨
2023-03-14

我试图使用JDA编写一个discord bot,虽然我可以很容易地获得bot的存在,但我无法获得选定用户的存在。一个用例可能是用户输入类似!game的命令,然后机器人发送消息告诉用户他们正在玩什么游戏。据我所知,机器人不能在没有用户在场的情况下获得用户的游戏活动,我也看不到这样做的方法。如果我在文档中遗漏了它,请链接方法/类。

共有1个答案

公胤运
2023-03-14

经过大量的挖掘和文档阅读,我得出了一个解决方案。没有办法像我想的那样获得存在,但由于我的初衷是获得游戏活动,这个解决方案是有效的。首先,bot必须具有通过开发人员门户授予的guild presence权限。然后,在调用main方法中的构建方法之前,我们需要包含jdabuilder.enableintents(Gatewayintent.guild_presences);行。最后,要获得成员活动,我们需要包含jdabuilder.enableCache(cacheflag.activity);。这样我们就可以使用member.getactivities()方法。一般来说,获取与特定用户相关联的数据需要启用公会存在。

 类似资料:
  • 我正在制作一个不和谐的JDA机器人,当用户发送消息:前缀($)hastebin他们的代码时,机器人将创建一个请求hastebin并粘贴他们的代码,之后他将粘贴网址并打印到控制台(我将在解决问题后将其作为消息发送)。 这是我的HastebinCommand类: 这是我的Hastebin请求类: 我的错误: C:\Users\user\Documents\Java\Java Projects\Disc

  • 我正在尝试做我的第一个不和谐的JDA机器人与Java。(我找到的StackOverflow的大部分教程和问题都使用了Javascript,所以我认为应该提到它)。 我无法收到任何我发送到#通用频道的消息。我按照本教程编写了代码,并试图用此链接中的代码修复问题。 JDA版本:4.2.0240 IntelliJ版本:2020.3.2 JDK 11.0.9 Java SE 8 我的类: 输出中的一个警告

  • null 编辑: 我使用了jda.getUserCache();检查缓存是否工作,我是缓存,但它仍然不工作。

  • 我在某处读到,您每10分钟只能修改2个通道,但您发送的消息也是如此吗?或者您只能每10分钟执行更改/发送/创建两次这样的操作吗? 和之间有什么区别 提前致谢:D

  • 我正在制作一个JDA(Java Discord API)程序,它需要检查消息是否是由机器人本身发送的。我怎样才能做到这一点?我想检查消息发送者的用户ID是否等于机器人的用户ID,但我如何在程序中获得机器人本身的用户ID?

  • 我正在制作Minecraft插件,它将与discord进行通信,但当我试图通过id获取帮会时,它将返回null。 这是我建立JDA的地方。类Verify命令是命令执行器,我试图从它得到公会。