【问题标题】: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}

我将如何使用这些来使命令全局化,以便在发布更新时每个服务器都可以使用这些命令。

【问题讨论】:

    标签: discord.js


    【解决方案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 中刷新。更新时请记住这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 2022-11-19
      • 2020-02-28
      • 2017-10-09
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多