Discord.js ReferenceError:未定义bot

问题描述 投票:0回答:2

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

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"));
            }
        })
    })
});

我在互联网上查了很多答案,但这一切都没有用。所以,我不知道如何解决这个错误。

node.js discord.js
2个回答
0
投票

而不是bot使用client就像你之前所做过的那样。

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

如果你想学习如何制作自己的机器人,你可以使用qazxsw poi的成员和创建者创建的开源指南,可以在这里找到:qazxsw poi


0
投票

你必须将discord.js改为https://discordjs.guide/

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

bot

这就是你必须使用客户端的原因。您无法为非现有客户端创建侦听器。

有关Discord.js所有事件的更多详细信息,您可以查看官方discord.js文档:client

在那里,您还可以找到有关如何收听活动等的所有详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.