当前位置: 首页 > 知识库问答 >
问题:

如何在JDA通道中使用斜杠命令?

百里雅珺
2023-03-14
java prettyprint-override">public class HelloWorldBot extends ListenerAdapter
{
    public static void main(String[] args) throws LoginException
    {
        if (args.length < 1) {
            System.out.println("You have to provide a token as first argument!");
            System.exit(1);
        }
        // args[0] should be the token
        // We don't need any intents for this bot. Slash commands work without any intents!
        JDA jda = JDABuilder.createLight(args[0], Collections.emptyList())
                .addEventListeners(new HelloWorldBot())
                .setActivity(Activity.playing("Type /ping"))
                .build();

        jda.upsertCommand("ping", "Calculate ping of the bot").queue(); // This can take up to 1 hour to show up in the client
    }

    @Override
    public void onSlashCommand(SlashCommandEvent event)
    {
        if (!event.getName().equals("ping")) return; // make sure we handle the right command
        long time = System.currentTimeMillis();
        event.reply("Pong!").setEphemeral(true) // reply or acknowledge
                .flatMap(v ->
                        event.getHook().editOriginalFormat("Pong: %d ms", System.currentTimeMillis() - time) // then edit original
                ).queue(); // Queue both reply and edit
    }
}

有了上面的代码,我可以通过DM bot使用slash命令。但是,如何在通道中使用斜杠命令?

它在不和谐的开发者文档中说:

为了使斜杠命令在公会中起作用,公会必须使用应用程序授权您的应用程序。命令范围。bot的范围还不够。

如何使用JDA实现这一点?

共有1个答案

华建同
2023-03-14

要生成这样的授权URL,请遵循以下步骤:

  1. 打开应用程序仪表板

请注意,正如这里的注释正确指出的那样,全局命令需要长达1小时的时间来传播。如果你想测试你的机器人,你可以使用公会命令,它会立即出现。

要创建帮会命令,请使用jda。getGuildById(guildId)获取公会,然后使用相同的方法在该guild实例而不是JDA实例上创建命令。请注意,获得一个公会需要JDA准备就绪,因此请确保在构建JDA实例后首先调用awaitReady()

 类似资料:
  • 问题内容: 我正在为Nginx访问日志测试ELK堆栈。看起来不错,除非我没有找到在Kibana Discovery(v5.3.2)中以开头的路径搜索记录的方法。如果我删除了斜杠,搜索就会起作用,但是在这种情况下,我得到了我不需要的东西- 我尝试了不同的请求: 但没有什么能像我期望的那样。 记录: 对应: 有没有办法使用斜杠作为模式的一部分进行搜索? 更新: 这些模式也不起作用: 问题答案: 您需要

  • 问题内容: 我正在将CSV文件导入MySQL数据库。可以通过支持文件路径中的正斜杠来实现。如果用户给出路径 MySQL不支持这种类型的路径模式。我想在路径中搜索反斜杠并将其替换为正斜杠,以实现以下目的: 怎么做? 问题答案: 在Java中,使用以下命令: 注意,这里不需要replace的正则表达式版本,即;仍会替换所有出现的搜索词,但会搜索 文字 字符串,而不是正则表达式匹配项。

  • 我尝试了许多方法从已执行的(我不是指从输入)中获得单个反斜杠。 我可以将特殊字符作为tab、new line和许多其他字符,然后将它们转义为或或,但当非特殊字符在旁边时,我不能获得单个反斜杠。 我不想要这样的东西: 如果我尝试在0处获取字符,则得到而不是。

  • 本文向大家介绍Python中的左斜杠、右斜杠(正斜杠和反斜杠),包括了Python中的左斜杠、右斜杠(正斜杠和反斜杠)的使用技巧和注意事项,需要的朋友参考一下 首先,"/"左倾斜是正斜杠,"\"右倾斜是反斜杠,可以记为:除号是正斜杠一般来说对于目录分隔符,Unix和Web用正斜杠/,Windows用反斜杠,但是现在Windows (一)目录中的斜杠们 python读文件需要输入的目录参数,列出以下

  • 所以,我在Node.js中使用multer,它给出了上传图像的反斜杠路径,但这不起作用,因为我需要将其转换为URL。 这是我得到的输出: 但是,我想用正斜杠替换图像前的反斜杠。 我试过这个: 但是,它只是去掉了反斜杠: 附:我知道这个网站上有这样的问题,但他们没有帮助我。例如,multer:文件的路径是不对的对我没有帮助,所以请不要将此标记为重复问题。多谢了。