【问题标题】:JDA getting all channelsJDA 获取所有渠道
【发布时间】:2021-08-08 23:58:40
【问题描述】:

我需要将我的机器人可以看到的所有频道放入一个字符串数组中,例如 {#general,#memes}。我该怎么做呢。我滚动浏览了 JDA 类方法,但一无所获。

【问题讨论】:

    标签: java discord discord-jda


    【解决方案1】:

    有很多方法可以做到这一点,没有任何代码很难帮助你。

    首先,如果你有一个 JDA 实例,你可以这样做 jda.getGuildById("your_guild_id").getChannels();

    其次,如果您有来自onMessageReceived 事件的event,您可以这样做:event.getGuild().getChannels()

         @Override
         public void onMessageReceived(MessageReceivedEvent event)
         {
             System.out.println(String.join(",", event.getGuild().getChannels()));
         }
    

    第三,如果你有来自onReady 事件的event,你可以这样做:event.getJDA()getGuildById("your_guild_id").getChannels()

         @Override
         public void onReady(ReadyEvent event)
         {
             System.out.println(String.join(",", event.getJDA().getGuildById("your_guild_id").getChannels()));
         }
    

    这是一个例子:

    public class Main implements EventListener{
        public static void main(String[] args) {
                JDABuilder builder = JDABuilder.createDefault("YOUR_BOT_TOKEN");
                builder.addEventListeners(new Main());
                builder.build();
        }
    
        @Override
        public void onReady(ReadyEvent event){
            JDA jda = event.getJDA();
            Guild guild = jda.getGuildById("YOUR_GUILD_ID");
            System.out.println(String.join(",", guild.getChannels());
        }
    }
    
    
    

    如果这没有帮助,请发布一些你所拥有的代码。

    【讨论】:

    • 不,这很有帮助。不过有一件事,我如何获得公会 ID?
    • @SecretAgent guild.getGuildId()。 JDA 是用对象正确组织的。如果你想要 guildId,它只是 guild.getId()。如果您的 IDE 提供自动补全功能,那么当您在公会对象后添加一个点时,它应该会显示所有可用的操作。
    • @SecretAgent 要在 discord 中找到您的公会 ID,请查看此链接:support.discord.com/hc/en-us/articles/…
    猜你喜欢
    • 2020-10-02
    • 2019-09-09
    • 2020-10-03
    • 2019-10-31
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 2021-08-29
    相关资源
    最近更新 更多