You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Discord.js V13机器人加入服务器时自动注册斜杠命令

实现Discord.js V13机器人加入服务器自动注册斜杠命令

核心思路

借助discord.js的guildCreate事件实现——机器人被邀请加入服务器时会触发这个事件,把你原本手动部署命令的逻辑迁移到该事件处理函数中,就能完成自动注册。

具体操作步骤

1. 开启正确的Intents

初始化Discord客户端时,必须启用Guilds intent,否则无法接收guildCreate事件:

const { Client, Intents } = require('discord.js');
const client = new Client({
  intents: [
    Intents.FLAGS.GUILDS, // 这个intent必须开启
    // 其他你需要的intent(比如GUILD_MESSAGES)按需添加
  ]
});

2. 监听guildCreate事件

把手动部署命令的逻辑移到这个事件里,移除和message相关的代码,改用事件参数里的guild对象:

// 假设你的commands数组和之前手动部署时用的是同一个
client.on('guildCreate', async (guild) => {
  console.log(`刚加入服务器 ${guild.name},开始部署斜杠命令...`);
  
  try {
    await guild.commands.set(commands);
    console.log(`斜杠命令成功部署到服务器 ${guild.name}!`);
  } catch (err) {
    console.error(`给服务器 ${guild.name} 部署命令失败:`, err);
  }
});

3. 可选:移除手动部署前缀命令

如果不再需要!deploy guild这个手动触发的命令,可以直接删除原来的那段前缀命令代码,避免冗余。

注意事项

  • 机器人在目标服务器必须拥有Manage Guild权限,否则无法创建斜杠命令
  • 若命令数量较多,部署可能需要几秒时间,添加try-catch可以避免机器人因部署崩溃
  • 若需要更新已部署的命令,机器人重新加入服务器会自动覆盖旧命令,也可以单独编写更新逻辑

内容的提问来源于stack exchange,提问作者Jacy Harrington

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 19:35:20