为了账号安全,请及时绑定邮箱和手机立即绑定

JDA进入公会后如何更新语音通道

JDA进入公会后如何更新语音通道

温温酱 2022-12-15 16:18:15
我基本上想将此代码转换为 JDAJavaScriptbot.channels.get(serverStats.totalUserID).setName(`Total Users: ${member.guild.memberCount}`);Java(错误)public void onGuildJoin(GuildJoinEvent event) {      event.getGuild().getTextChannelById(573629024102776853L).setName("Total Users:" + event.getGuild().getMembers().size()); //<---- Error}
查看完整描述

2 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

要重命名 TextChannel,您必须使用管理器。例如这个:

  event.getGuild().getTextChannelById(573629024102776853L).getManager().setName("Total Users:" + event.getGuild().getMembers().size());

查看Channel#getManager()了解更多信息。


查看完整回答
反对 回复 2022-12-15
?
冉冉说

TA贡献1877条经验 获得超1个赞

要修改 JDA 中的实体,您通常必须使用管理器。getManager()您几乎可以在每个实体上获取管理器实例。


TextChannel channel = guild.getTextChannelById(573629024102776853L);

channel.getManager()

       .setName("Total Users:" + guild.getMemberCache().size())

       .queue(); // this is needed, otherwise the request won't be made to discord

如果频道的 ID 不正确,它将引发 NPE,channel.getManager()因为getTextChannelById将返回 null。我使用getMemberCache()而不是getMembers()因为它对这种代码更有效。该大小可直接在缓存视图实例上使用,不需要将整个缓存复制到一个列表中,而这实际上是在做什么getMembers()。


查看完整回答
反对 回复 2022-12-15
  • 2 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号