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

如何在JDA中将用户添加到频道?

如何在JDA中将用户添加到频道?

守着星空守着你 2022-09-22 19:52:44

我正在最新版本上使用JDA创建一个Discord机器人,并希望创建频道,当频道中提到某人时,请添加他们,以便他们可以查看频道。有人知道一种方法吗?


查看完整描述

1 回答

?
芜湖不芜

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

要允许用户查看频道,您必须为该用户创建权限覆盖。


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();

}

这将为特定用户创建权限覆盖,并允许他们查看频道。要从消息中获取提及的用户,您只需调用 message.get 提及用户()。


如果用户已经在通道上具有覆盖,则必须通过管理器检索它并对其进行修改。channel.getPermissionOverride(member)


PermissionOverride override = channel.getPermissionOverride(member);

override.getManager().grant(Permission.VIEW_CHANNEL).queue();

如果没有存在覆盖,则将直接返回 。您可以使用它来确定是创建还是修改。getPermissionOverride(member)null


这在 JDA v4 中略有不同,其中已重命名为 。ChannelGuildChannel


在该版本中,您可以简单地调用而不是使用管理器。channel.upsertPermissionOverride(member).grant(Permission.VIEW_CHANNEL).queue();


查看完整回答
反对 回复 6天前

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信