JaBa/events/Guild/guildMemberUpdate.js

48 lines
1.2 KiB
JavaScript
Raw Normal View History

const BaseEvent = require("../../base/BaseEvent");
class GuildMemberUpdate extends BaseEvent {
constructor() {
super({
2024-10-03 11:07:02 +05:00
name: "guildMemberUpdate",
once: false,
});
2022-01-04 02:18:28 +05:00
}
/**
*
2023-11-05 16:03:23 +05:00
* @param {import("../../base/Client")} client
* @param {import("discord.js").GuildMember} oldMember
* @param {import("discord.js").GuildMember} newMember
*/
async execute(client, oldMember, newMember) {
2023-07-10 21:07:24 +05:00
if (oldMember.guild.id !== client.config.support.id) return;
2023-06-27 21:19:55 +05:00
if (oldMember.roles.cache.some(r => r.id === "940149470975365191")) return;
2023-06-27 21:19:55 +05:00
if (newMember?.roles.cache.some(r => r.id === "940149470975365191")) {
const userData = await client.getUserData(newMember.id);
2023-06-27 21:19:55 +05:00
2022-01-04 02:18:28 +05:00
userData.achievements.tip.progress.now = 1;
userData.achievements.tip.achieved = true;
2024-10-03 11:07:02 +05:00
await userData.save().catch(err => {
client.logger.error(`Failed to save user data for ${newMember.id}: ${err}`);
2022-01-04 02:18:28 +05:00
});
2024-10-03 11:07:02 +05:00
try {
await newMember.send({
files: [
{
name: "achievement_unlocked5.png",
attachment: "./assets/img/achievements/achievement_unlocked5.png",
},
],
});
} catch (err) {
client.logger.error(`Failed to send achievement message to ${newMember.id}: ${err}`);
}
2022-01-13 00:26:23 +05:00
}
2022-01-04 02:18:28 +05:00
}
}
2023-07-05 00:58:06 +05:00
module.exports = GuildMemberUpdate;