49 lines
1.6 KiB
JavaScript

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`);
}
},
};