我正在尝试创建一个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"));
}
})
})
});
我在互联网上查了很多答案,但这一切都没有用。所以,我不知道如何解决这个错误。
而不是bot
使用client
就像你之前所做过的那样。
有人做const client = new Discord.Client();
,但也有人把它命名为bot
甚至是真正的东西。
如果你想学习如何制作自己的机器人,你可以使用qazxsw poi的成员和创建者创建的开源指南,可以在这里找到:qazxsw poi
你必须将discord.js
改为https://discordjs.guide/
您没有在以前的代码中定义bot.on(...)
,因此您无法使用它。您在以下行中将Discord客户端定义为client.on(...)
:
bot
这就是你必须使用客户端的原因。您无法为非现有客户端创建侦听器。
有关Discord.js所有事件的更多详细信息,您可以查看官方discord.js文档:client
在那里,您还可以找到有关如何收听活动等的所有详细信息。