我正在尝试为我的机器人创建一个 guildMemberAdd 函数,但是当第一个成员加入时,它只向他们发送一次消息,当第二个人加入时向他们发送两次消息,依此类推。
所以我做了一些测试,当我把它放在我的主文件中时它工作得很好,当我把它放在自己的文件中时它开始起作用。
module.exports = (Discord, client) => {
client.on("guildMemberAdd", (guildMember) => {
const colors = require("../../colors.json");
const config = require("../../config.json");
const guild = client.guilds.cache.get(config.serverID);
const memberCount = guild.memberCount;
const WelcomeEmbed = new Discord.MessageEmbed()
.setTitle(`Welcome to the Official Lightyear's Mods Discord server!`)
.setColor(colors.purple)
.setDescription(
`Please make sure to read the rules, they can be found in <#819913883828879361> and have a great time here in **${guild.name}**!\nBe sure to check out <#819914570784309258> for some weet deals, and <#819914774446866442> for daily free money drops!`
)
.setFooter("©Lightyear's Mods", guild.iconURL({ dynamic: true }));
guildMember.send(WelcomeEmbed).catch((err) => console.log(err));
});
};
答案 0 :(得分:0)
我将假设每次有新成员加入时,您都在执行模块中的代码。
发生这种情况是因为每次 guildMemberAdd
加入 GuildMember
时,您都会为 Guild
事件创建一个新侦听器。
相反,您应该将 GuildMember
与 Discord
和 client
一起传递,而不是每次都创建一个新的侦听器。