使斜杠命令全局化时遇到问题
Posted
技术标签:
【中文标题】使斜杠命令全局化时遇到问题【英文标题】:Trouble making slash commands global 【发布时间】:2021-11-24 13:24:44 【问题描述】:自从我的机器人新更新即将发布以来,我一直在尝试弄清楚如何使斜杠命令全球化。我一直在碰壁,我不知道下一步该做什么。下面是我创建命令的一些代码。
ready.js
const prefix = require("../../botconfig.json")
const createCmd = require("../../dataHandler.js")
module.exports = bot =>
console.log(`$bot.user.username is online`);
setInterval(() => bot.user.setActivity(`!help | Switch Support`, type: "WATCHING" ), 15000)
createCmd(bot, '781631298749726730') //second param is guildId
;
DataHandler(为命令创建数据)
async function createCmd(Client, guildId)
const data = [
//ping cmd
name: 'test',
description: 'test slash command'
]
await Client.guilds.cache.get(guildId).commands.set(data)
module.exports = createCmd
我将如何使用这些来使命令全局化,以便在发布更新时每个服务器都可以使用这些命令。
【问题讨论】:
【参考方案1】:请参阅文档here。以下所有代码均取自那里。
在你的createCmd
函数中添加
const rest = new REST( version: '9' ).setToken("your discord token");
try
console.log('Started refreshing application (/) commands.');
await rest.put(
Routes.applicationCommands("REPLACE_WITH_CLIENT_ID"),
body: data ,
);
console.log('Successfully reloaded application (/) commands.');
catch (error)
console.error(error);
在文件开头需要这些
const REST = require('@discordjs/rest');
const Routes = require('discord-api-types/v9');
请注意:全局命令需要一个小时才能在 Discord 中刷新。更新时请记住这一点。
【讨论】:
以上是关于使斜杠命令全局化时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章