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

我基本上想将此代码转换为 JDA

JavaScript

bot.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}


温温酱
浏览 94回答 2
2回答

慕妹3146593

要重命名 TextChannel,您必须使用管理器。例如这个:&nbsp;&nbsp;event.getGuild().getTextChannelById(573629024102776853L).getManager().setName("Total&nbsp;Users:"&nbsp;+&nbsp;event.getGuild().getMembers().size());查看Channel#getManager()了解更多信息。

冉冉说

要修改 JDA 中的实体,您通常必须使用管理器。getManager()您几乎可以在每个实体上获取管理器实例。TextChannel channel = guild.getTextChannelById(573629024102776853L);channel.getManager()&nbsp; &nbsp; &nbsp; &nbsp;.setName("Total Users:" + guild.getMemberCache().size())&nbsp; &nbsp; &nbsp; &nbsp;.queue(); // this is needed, otherwise the request won't be made to discord如果频道的 ID 不正确,它将引发 NPE,channel.getManager()因为getTextChannelById将返回 null。我使用getMemberCache()而不是getMembers()因为它对这种代码更有效。该大小可直接在缓存视图实例上使用,不需要将整个缓存复制到一个列表中,而这实际上是在做什么getMembers()。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java