For context, this is how I am running my event listeners/handlers
//handle events
const eventsPath = path.join(__dirname, "events");
const eventFiles = fs
.readdirSync(eventsPath)
.filter((file) => file.endsWith(".event.js"));
for (const file of eventFiles) {
const filePath = path.join(eventsPath, file);
const event = require(filePath);
if (event.once) {
client.once(event.name, (...args) => event.execute(...args));
} else {
client.on(event.name, (...args) => event.execute(...args));
}
}
And this is how my events are written:
const { Events, EmbedBuilder } = require("discord.js");
const { id } = require("../config/botlogs.channel");
module.exports = {
name: Events.GuildMemberUpdate,
once: true,
async execute(oldMember, newMember) {
//send message in botlogs channel
const channel = newMember.client.channels.cache.get(id);
//embed log
const embed = new EmbedBuilder()
.setColor("#0099ff")
.setTitle("Member Updated")
.setDescription(`Member ${newMember} updated.`)
.addFields(
{ name: "Old Nickname", value: oldMember.nickname },
{ name: "New Nickname", value: newMember.nickname }
)
.setTimestamp()
.setFooter({
text: "ApexBot",
iconURL: "https://apexpartner.app/img/apexbird.png",
});
await channel.send({ embeds: [embed] });
},
};
I have the GatewayIntentBits enabled for every possibility enabled in my new Client. I have all of the Gateway Intents checked off in the bot section of my Discord Developer Portal. I attempted turning them all off and back on, then restarting the bot. I attempted doing a simple console.log of oldMember. I have cached all members in the server in a variable on client ready. None of this has worked for me. How do I pick up the guildMemberUpdate, or as discord.js now uses Events.GuildMemberUpdate, under these circumstances?
Via Active questions tagged javascript - Stack Overflow https://ift.tt/YcnQmzt
Comments
Post a Comment