java - Discord API (JDA) 从特定公会获取用户
问题描述
try {
final JDABuilder jdaBuilder = JDABuilder.createDefault(TOKEN_ID);
jdaBuilder.addEventListeners(new DiscordListener());
_jdaBuild = jdaBuilder.build();
} catch(final LoginException e) {
}
我尝试使用
_jdaBuild.getUserById(userId);
但它总是返回null。我还尝试对所有 Guild 然后对所有文本通道然后对所有成员执行一个 for,但在日志中它只显示来自所有文本通道的 Bot 的 ID。不是其他用户。
我如何从公会获取基于他的 ID 或名称的用户群并向他发送私人信息?
解决方案
您需要使用JDA#retrieveUserById(long)
,因为JDA#getUserById(long)
仅当用户被缓存时才有效:
try {
final JDABuilder jdaBuilder = JDABuilder.createDefault(TOKEN_ID);
jdaBuilder.addEventListeners(new DiscordListener());
_jdaBuild = jdaBuilder.build();
} catch(final LoginException e) {
//...
}
//...
User user = _jdaBuild.retrieveUserById("...").complete();
推荐阅读
- android - 如何在 VHAL android Automotive 中处理自定义车辆属性?
- firefox-developer-tools - Firefox - 如何查看打开新窗口的网络请求
- c# - 不使用 Virtual Comport 直接向客户端发送 modbus rtu 命令
- scala - 遍历 Scala 期货的 Seq 时如何减少上下文切换
- flutter - Flutter:防止抽屉在 FutureBuilder 内滑动时始终刷新
- installation - centOS7 aarch64如何安装mono
- elasticsearch - 如何在 Centos 7 中增加 elasticsearch 的堆内存?
- javascript - AFrame 1.0.3 相机不会重置为零旋转
- less - Nextjs、Ant Design 中不能使用 CSS 模块?
- python - Python循环遍历excel文件并使用pandas read_excel函数逐一读取