const { SlashCommandBuilder } = require('discord.js'); module.exports = { data: new SlashCommandBuilder() .setName('fetch') .setDescription('Fetches all messages from a specified user and scans them for death messages') .addUserOption(option => option.setName('user').setDescription('User to fetch messages from').setRequired(true)), async execute(interaction) { const target = interaction.options.getUser('user'); let targetId; const deathMessages = []; await interaction.deferReply(); await interaction.guild.members.fetch(target, { force: true }) .then(member => targetId = member.id) .catch(error => console.error(`error. ${error}`)); const channel = interaction.client.channels.cache.get(interaction.channel.id); let deathMessage = await channel.messages .fetch({ limit: 1 }) .then(messagePage => (messagePage.size === 1 ? messagePage.at(0) : null)); while (deathMessage) { await channel.messages .fetch({ limit: 100, before: deathMessage.id }) .then(messagePage => { messagePage.forEach((msg) => { if (msg.author.id === targetId) deathMessages.push(msg.content); }); deathMessage = messagePage.size > 0 ? messagePage.at(messagePage.size - 1) : null; }); } if (!deathMessages) { await interaction.editReply('There Are No Messages'); } else { deathMessages.forEach((death) => { if (!death.match('joined') || !death.match('left')) { console.log(death); } }); // console.log(deathMessages); await interaction.editReply(`(${deathMessages.length})Death Messages Founded!!! Check Console`); } }, };