使斜杠命令全局化时遇到问题

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

【讨论】:

以上是关于使斜杠命令全局化时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

在字符串中插入反斜杠时遇到问题

vue 全局引用jq(打包后可能会遇到的问题)

linux下命令行tab的时候,变量前自动多了个反斜杠

斜杠/和反斜杠 的区别

斜杠/和反斜杠的区别

(转载)路径中 斜杠/和反斜杠 的区别