我基本上想将此代码转换为 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()了解更多信息。

冉冉说
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()。
添加回答
举报
0/150
提交
取消