【问题标题】:How to add a user to a channel in JDA? [closed]如何在 JDA 中将用户添加到频道? [关闭]
【发布时间】:2019-08-28 18:25:41
【问题描述】:

我正在使用最新版本的 JDA 创建 Discord 机器人,并希望创建频道,当频道中提到某人时,将其添加,以便他们查看频道。有谁知道如何解决这个问题?

【问题讨论】:

    标签: java discord-jda


    【解决方案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.getMentionedUsers()

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

    PermissionOverride override = channel.getPermissionOverride(member);
    override.getManager().grant(Permission.VIEW_CHANNEL).queue();
    

    如果不存在覆盖,getPermissionOverride(member) 将简单地返回 null。您可以使用它来确定是创建还是修改


    这在 JDA v4 中有所不同,其中 Channel 已重命名为 GuildChannel

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-19
      • 1970-01-01
      • 2012-11-08
      • 2021-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多