49 lines
1.6 KiB
JavaScript
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`);
|
|
}
|
|
},
|
|
}; |