Discord.js ReferenceError:未定义漫游器

时间:2019-03-10 04:54:53

标签: node.js discord.js

我正在尝试创建一个机器人,当用户通过链接加入服务器时,该机器人将被赋予角色,但这不起作用。 错误:

C:\DGhostsBot\bot.js:45
bot.on("guildMemberAdd", (member) => {
^

ReferenceError: bot is not defined
    at Object.<anonymous> (C:\DGhostsBot\bot.js:45:1)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)

我的代码在这里:

const Discord = require('discord.js');

const client = new Discord.Client();

var prefix = "dg!"

client.login(`**************************************************************`);

client.on("message", (message) => {
    if(message.content == prefix + "test") {
        message.reply("just a command that is used for performance testing. Do not pay attention.");
     }
});

client.on("message", (message) => {
    if(message.content == prefix + "cake") {
        message.reply("here's your cake :3 :cake: ");
     }
});

client.on("message", (message) => {
    if(message.content == prefix + "help") {
        message.reply("it's in development");
}     
});

client.on("message", (message) => {
    if(message.content == prefix + "kick") {
if(message.member.roles.some(r=>["Developer", "devadmin"].includes(r.name)) ) {
     const user = message.mentions.users.first();
    if (user) {
      const member = message.guild.member(user);
      if (member) {
       member.kick()
}
}
} else {
 message.reply("!!!!ACCESS_DENIED!!!!").then(sentMessage => sentMessage.delete("delete"));

}
}     
});


bot.on("guildMemberAdd", (member) => {

    if (member.id == bot.user.id) {
        return;
    }
    let guild = member.guild
    guild.fetchInvites().then(invdat => {
        invdat.forEach((invite, key, map) => {
            console.log(invite.code)
            if (invite.code === "qQAkqFQ") {
                return member.addRole(member.guild.roles.find(role => role.name === "Member"));
            }
        })
    })
});

我在互联网上检查了很多答案,但是所有这些都没有用。 因此,我不知道如何解决此错误。

2 个答案:

答案 0 :(得分:0)

您必须将bot.on(...)更改为client.on(...)

您没有在先前的代码中定义bot,因此无法使用它。您在以下行中将Discord客户端定义为client

const client = new Discord.Client();

这就是为什么您必须使用客户端。您无法为不存在的客户端创建侦听器。

有关Discord.js所有事件的更多详细信息,请查看正式的discord.js文档:documentation

您还可以在其中找到有关如何收听事件等的所有详细信息。

答案 1 :(得分:0)

您可以像以前一样使用bot来代替client

有些人做const client = new Discord.Client();,但也有人把它命名为bot甚至是很奇怪的东西。

如果您想学习如何制作自己的机器人,可以使用discord.js的成员和创建者创建的开源指南:https://discordjs.guide/