wsb-bot / src /systems /booster.js
APRK01
Initial commit: WSB Discord Bot
3c7e34b
const { logRoleChange } = require('./logger');
/**
* Detect server boost changes via guildMemberUpdate.
* If a member starts boosting β†’ add Booster role.
* If a member stops boosting β†’ remove Booster role.
*/
async function handleBoostChange(oldMember, newMember, client) {
const wasBoosting = oldMember.premiumSince !== null;
const isBoosting = newMember.premiumSince !== null;
if (wasBoosting === isBoosting) return; // No change
const boosterRole = newMember.guild.roles.cache.find(r => r.name === '@@ Booster');
if (!boosterRole) return;
if (!wasBoosting && isBoosting) {
// Started boosting
await newMember.roles.add(boosterRole).catch(() => { });
await logRoleChange(client, {
user: newMember.user,
role: 'Booster',
action: 'added',
});
} else if (wasBoosting && !isBoosting) {
// Stopped boosting
await newMember.roles.remove(boosterRole).catch(() => { });
await logRoleChange(client, {
user: newMember.user,
role: 'Booster',
action: 'removed',
});
}
}
module.exports = { handleBoostChange };