1 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個贊
要允許用戶查看頻道,您必須為該用戶創(chuàng)建權(quán)限覆蓋。
public static void addUserToChannel(Channel channel, User user) {
Guild guild = channel.getGuild();
Member member = guild.getMember(user);
channel.createPermissionOverride(member)
.setAllow(Permission.VIEW_CHANNEL)
.queue();
}
這將為特定用戶創(chuàng)建權(quán)限覆蓋,并允許他們查看頻道。要從消息中獲取提及的用戶,您只需調(diào)用 message.get 提及用戶()。
如果用戶已經(jīng)在通道上具有覆蓋,則必須通過管理器檢索它并對其進(jìn)行修改。channel.getPermissionOverride(member)
PermissionOverride override = channel.getPermissionOverride(member);
override.getManager().grant(Permission.VIEW_CHANNEL).queue();
如果沒有存在覆蓋,則將直接返回 。您可以使用它來確定是創(chuàng)建還是修改。getPermissionOverride(member)null
這在 JDA v4 中略有不同,其中已重命名為 。ChannelGuildChannel
在該版本中,您可以簡單地調(diào)用而不是使用管理器。channel.upsertPermissionOverride(member).grant(Permission.VIEW_CHANNEL).queue();
添加回答
舉報(bào)