const { EmbedBuilder, ChannelType, GuildMember, ActivityType } = require('discord.js');
const guildSchema = require('../../models/guildSchema');
/**
*
* @param {GuildMember} oldMember
* @param {GuildMember} newMember
* @param {*} client
* @returns
*/
module.exports = async (oldMember, newMember, client) => {
const oldPresence = oldMember.presence;
const newPresence = newMember.presence;
if (!oldPresence || !newPresence) return;
const oldStatus = oldPresence.activities.find(activity => activity.type === ActivityType.Custom);
const newStatus = newPresence.activities.find(activity => activity.type === ActivityType.Custom);
if (oldStatus?.state === newStatus?.state) return;
const data = await guildSchema.findOne({ Guild: newMember.guild.id });
if (!data || !data.vanity || !data.vanity.Enabled) {
return;
}
const vanitySubstring = data.vanity.SubString;
if (!vanitySubstring || !newStatus?.state) return;
if (newStatus.state.includes(vanitySubstring)) {
if (data.vanity.LogChannel) {
const logChannel = newMember.guild.channels.cache.get(data.vanity.LogChannel);
if (logChannel) {
const embed = new EmbedBuilder()
.setAuthor({ name: newMember.user.username, iconURL: newMember.user.displayAvatarURL() })
.setTitle('Vanity updated')
.setDescription(`${newMember.user.username} has vanity in the custom status.`)
logChannel.send({ embeds: [embed] })
} else {
return;
}
}
}
}
const { EmbedBuilder, ChannelType, GuildMember, ActivityType } = require('discord.js');
const guildSchema = require('../../models/guildSchema');
/**
*
* @param {GuildMember} oldMember
* @param {GuildMember} newMember
* @param {*} client
* @returns
*/
module.exports = async (oldMember, newMember, client) => {
const oldPresence = oldMember.presence;
const newPresence = newMember.presence;
if (!oldPresence || !newPresence) return;
const oldStatus = oldPresence.activities.find(activity => activity.type === ActivityType.Custom);
const newStatus = newPresence.activities.find(activity => activity.type === ActivityType.Custom);
if (oldStatus?.state === newStatus?.state) return;
const data = await guildSchema.findOne({ Guild: newMember.guild.id });
if (!data || !data.vanity || !data.vanity.Enabled) {
return;
}
const vanitySubstring = data.vanity.SubString;
if (!vanitySubstring || !newStatus?.state) return;
if (newStatus.state.includes(vanitySubstring)) {
if (data.vanity.LogChannel) {
const logChannel = newMember.guild.channels.cache.get(data.vanity.LogChannel);
if (logChannel) {
const embed = new EmbedBuilder()
.setAuthor({ name: newMember.user.username, iconURL: newMember.user.displayAvatarURL() })
.setTitle('Vanity updated')
.setDescription(`${newMember.user.username} has vanity in the custom status.`)
logChannel.send({ embeds: [embed] })
} else {
return;
}
}
}
}