开发者问题收集

ReferenceError:bot 未定义

2018-01-23
5472

这是 const 或 var 的问题。我认为除非我重新编码,否则它不会起作用。这是我的问题:

bot.on('ready', () => {
^

ReferenceError: bot is not defined
    at C:\Users\Dylan\Desktop\discord bot\app.js:7:1
    at ContextifyScript.Script.runInThisContext (vm.js:50:33)
    at Object.runInThisContext (vm.js:139:38)
    at Module._compile (module.js:607:28)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)
    at tryModuleLoad (module.js:499:12)
    at Function.Module._load (module.js:491:3)
    at Function.Module.runMain (module.js:684:10)
    at startup (bootstrap_node.js:187:16)

这是我的代码:

const Discord = require('discord');
const bot = new Discord.Bot();
const fs = require('fs')
const commandsList = fs.readFileSync('Storage/commands.txt','utf8');
});

bot.on('ready', () => {
  // This event will run if the bot starts, and logs in, successfully.
  console.log(`Bot has started, with ${client.users.size} users, in ${client.channels.size} channels.`);
});

bot.on('message', message => {
    if (message.content === '!ping') {
    	message.channel.send('pong');
  	}
});

bot.on('message', message => {
    if (message.content === '!apply') {
    	message.channel.send('GOGLE STUFF');
  	}
});

bot.on('message', message => {
    if (message.content === '!server') {
    	message.channel.send('LA');
  	}
});

bot.on('message', message => {
    if (message.content === '!do you know dae wae') {
    	message.channel.send('Yes I know dae wae brother');
  	}
});

bot.on('message', message => {
    if (message.content === 'do you have a bot?') {
    	message.channel.send('no');
  	}
});

bot.on('message', message => {
    if (message.content === 'who is the owner') {
    	message.channel.send('FantasmicNerd, duh');
  	}
});

bot.on('message', message => {
    if (message.content === 'can i be staff' || message.content === 'can I be staff?' || message.content === 'can i be staff?') {
    	message.channel.send('Application - lalalalalala');
  	}
});

bot.on('message', message => {
    if (message.content === 'somebody touch my spaghet') {
    	message.channel.send('SOMEBODY TOUCH YOUR SPAGHET!');
  	}
});

bot.on('message', message => {
    if (message.content === 'so how about that airline food') {
    	message.channel.send('HAAHAHAHHAHAHAHHAHAHAHAHAHHAHAHHAHAHAHAHHAHAHAAHAHAHHAHAHAHHAHAHAHAHAHHAHAHHAHAHAHAHHAHA');
  	}
});

bot.on('ready',() => {
    console.log('Bot Launched...')

    bot.user.setStatus('Online')

    bot.user.setActivity('on The Magical')
});

bot.on('message', message => {
    if (message.content === '?help' || message.content === '?Help') {
    	message.channel.send('I have messaged you the commands and prefix.');
  	}
});

bot.on('message', message => {
    if (message.content === '?help' || message.content === '?Help') {
    	message.author.sendMessage(commandsList);
  	}
});

bot.on('ready', function() {
    bot.user.setUsername("The Magical");

// THIS  MUST  BE  THIS  WAY
bot.login('NDA0NjYzNzIwNDQzMzc5NzEy.DUapFw.zjDvPkG4QxZJ1rdxDYaPZEaVpiM');

我到处寻找答案,但似乎没有什么用。当我尝试运行它时,我在 cmd 提示符中看到这个

2个回答

当您需要库时,您需要将其更改为 discord.js 才能访问库。
此外,库不公开名为“Bot”的类,因此您需要将其更改为 “Client”

我猜第 5 行的 )}; 应该是关闭第 88 行的 ready 事件。
但我建议您只坚持使用一个就绪事件,因此将状态和活动方法放在第一个就绪事件中并删除其他方法。此外,如果您已将机器人用户名设置为您想要的用户名,我会删除该方法,或者检查用户名是否已设置为您想要的用户名,如果是,则不要更改它。

所有 message 事件与就绪事件相同,坚持一个 message 事件,并将所有 if 语句链接在该事件中。示例:

bot.on('message', message => {
    if (message.content === '!ping') {
        message.channel.send('pong');
    }
    else if (message.content === '!apply') {
        message.channel.send('GOGLE STUFF');
    }
    ...
});

您还需要记住您将变量定义为什么。在第一个 ready 事件中,您使用 client.users 而不是您定义的 bot

itsrvn
2018-01-23

根据 discord.js API 文档,没有 Bot 类。 也许你需要的是

const client = new Discord.Client();

我建议你查看你的应用程序的文档和示例。

melson.jao
2018-01-23