作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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 机器人的斜线命令。但是,如何在 channel 中使用斜杠命令?
In order to make Slash Commands work within a guild, the guild mustauthorize your application with the applications.commands scope. Thebot scope is not enough.
最佳答案
要生成这样的授权 URL,请执行以下步骤:
bot
的授权 URL和 applications.commands
勾选 jda.getGuildById(guildId)
获取公会,然后使用相同的方法在该
Guild
上创建命令实例而不是
JDA
实例。请注意,获得公会需要 JDA 准备就绪,因此请务必调用
awaitReady()
首先在您构建 JDA 实例之后。
关于discord-jda - 如何在 JDA channel 中使用斜杠命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68292025/
我是一名优秀的程序员,十分优秀!