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

运行Discord Bot时出现'bot is not defined'错误,寻求技术帮助

问题原因及修复方案

核心问题

  1. 事件绑定错误:你把消息处理逻辑绑定到了ready事件上,ready事件触发时传入的参数是Discord客户端实例,不是消息对象,导致message.author等调用报错,进而引发程序崩溃。
  2. 变量名混淆:报错提示bot is not defined,但你的代码里用的是client,如果代码其他地方误写了bot而非client也会触发这个错误(当前提供的代码里未出现,但需注意变量名统一)。

修复后的完整代码

require('dotenv').config();
const { Client, IntentsBitField, EmbedBuilder } = require('discord.js');
const prefix = "!";
const client = new Client({
  intents: [
    IntentsBitField.Flags.Guilds,
    IntentsBitField.Flags.GuildMembers,
    IntentsBitField.Flags.GuildMessages,
    IntentsBitField.Flags.MessageContent,
  ],
});

client.on('ready', (c) => {
  console.log(`✅ ${c.user.tag} is online.`);
});

// 替换为messageCreate事件处理消息
client.on('messageCreate', (message) => {
    if (message.author.bot) {
        return;
    }
    let content = message.content;

    if (content === "!roll") { 
      const exampleEmbed = new EmbedBuilder()
        .setColor(0x0099FF)
        .setTitle('Some title')
        .setAuthor({ name: 'Some name', iconURL: 'https://i.imgur.com/AfFp7pu.png' })
        .setDescription('Some description here')
        .setThumbnail('https://i.imgur.com/AfFp7pu.png')
        .addFields(
            { name: 'Regular field title', value: 'Some value here' },
            { name: '\u200B', value: '\u200B' },
            { name: 'Inline field title', value: 'Some value here', inline: true },
            { name: 'Inline field title', value: 'Some value here', inline: true },
        )
        .addFields({ name: 'Inline field title', value: 'Some value here', inline: true })
        .setImage('https://i.imgur.com/AfFp7pu.png')
        .setTimestamp()
        .setFooter({ text: 'Some footer text here', iconURL: 'https://i.imgur.com/AfFp7pu.png' }); 
      message.reply({ embeds: [exampleEmbed] }); 
    }
});

client.login(process.env.TOKEN);

关键修复点

  • 将第二个client.on('ready')改为client.on('messageCreate'),这是Discord.js中处理用户消息的正确事件。
  • 确保代码中所有客户端实例的变量名统一为client,避免因误写bot导致未定义错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 21:05:25