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

Discord.js的ready事件中能否访问message.guild.name设置Bot服务器昵称

问题原因分析
  • ready事件触发时没有消息交互上下文,不存在message对象,bot.Message.guild.name属于无效调用,自然无法执行。
  • 你调用的bot.user.setUsername()是修改Bot的全局用户名,全局用户名全局唯一,无法实现每个服务器显示不同名称的需求,你需要修改的是Bot在对应服务器内的独立昵称。
正确实现方案

你只需要在ready事件中遍历Bot已加入的所有服务器,逐个修改自身在对应服务器的昵称即可,同时要补充错误捕获处理权限不足的场景。另外建议额外监听guildCreate事件,实现Bot新加入服务器时自动修改昵称。

修正后的完整代码

bot.on('ready', async () => {
  console.log('|| MaRa Utilities, Console')
  console.log(`    Logged in as "#${bot.user.discriminator}"`)
  console.log(`\nBot "#${bot.user.discriminator}" has been loaded successfully...\n`)
  console.log(`The Prefix Is: ${PREFIX}`)
  console.log(`Bot "#${bot.user.discriminator}" Is in ${bot.guilds.cache.size} guild/s\n`)
  console.log(`|| Logs/Errors:`)
  db.get("Prefix").then(value => {if(value != PREFIX){
    console.log('A Dev has changed the "PREFIX" on startup.')
    db.set("Prefix", PREFIX);
  }})
  db.get("BotAuthorID").then(value => {if(value != BotAuthorID){
    console.log('A Dev has changed the "BotAuthorID" on startup.')
    db.set("BotAuthorID", BotAuthorID);
  }})
  db.get("TOKEN").then(value => {if(value != TOKEN){
    console.log('A Dev has changed the "TOKEN" on startup.')
    db.set("TOKEN", TOKEN);
  }})

  bot.user.setActivity(`DM For Help!`)

  // 遍历所有已加入服务器修改昵称
  for (const guild of bot.guilds.cache.values()) {
    try {
      // 获取bot在当前服务器的成员对象
      const botMember = await guild.members.fetch(bot.user.id)
      // 修改昵称
      await botMember.setNickname(`${guild.name} Utilities`)
    } catch (err) {
      // 权限不足/服务器未开启昵称功能等异常处理
      console.log(`无法修改在服务器 ${guild.name} 的昵称: ${err.message}`)
    }
  }
})

// 新增:新加入服务器时自动修改昵称
bot.on('guildCreate', async (guild) => {
  try {
    const botMember = await guild.members.fetch(bot.user.id)
    await botMember.setNickname(`${guild.name} Utilities`)
  } catch (err) {
    console.log(`新加入服务器 ${guild.name} 时修改昵称失败: ${err.message}`)
  }
})

注意事项

  • 确保Bot在对应服务器拥有更改昵称权限,否则会修改失败
  • 不要频繁触发昵称修改操作,避免触发Discord的接口速率限制

内容的提问来源于stack exchange,提问作者MaRa Games

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:06:04