import { ApplyOptions } from '@sapphire/decorators';
import { container, Listener } from '@sapphire/framework';
import { type GuildMember } from 'discord.js';
const commandOptions = { event: 'guildMemberUpdate' };
@ApplyOptions<Listener.Options>(commandOptions)
export class ListenerExt extends Listener {
public async run(oldGuildMember: GuildMember, newGuildMember: GuildMember) {
// ! Subscriber events.
// Check if the guild member is premium.
const isPremium = newGuildMember.roles.cache.some((role) => role.tags?.premiumSubscriberRole);
// Check if the guild member was premium.
const wasPremium = oldGuildMember.roles.cache.some((role) => role.tags?.premiumSubscriberRole);
// Check if the guild member's premiums status changed.
if (isPremium && !wasPremium) {
container.client.emit('guildMemberSubscribed', newGuildMember);
} else if (!isPremium && wasPremium) {
container.client.emit('guildMemberUnsubscribed', newGuildMember);
}
}
}
import { ApplyOptions } from '@sapphire/decorators';
import { container, Listener } from '@sapphire/framework';
import { type GuildMember } from 'discord.js';
const commandOptions = { event: 'guildMemberUpdate' };
@ApplyOptions<Listener.Options>(commandOptions)
export class ListenerExt extends Listener {
public async run(oldGuildMember: GuildMember, newGuildMember: GuildMember) {
// ! Subscriber events.
// Check if the guild member is premium.
const isPremium = newGuildMember.roles.cache.some((role) => role.tags?.premiumSubscriberRole);
// Check if the guild member was premium.
const wasPremium = oldGuildMember.roles.cache.some((role) => role.tags?.premiumSubscriberRole);
// Check if the guild member's premiums status changed.
if (isPremium && !wasPremium) {
container.client.emit('guildMemberSubscribed', newGuildMember);
} else if (!isPremium && wasPremium) {
container.client.emit('guildMemberUnsubscribed', newGuildMember);
}
}
}