Files
Dat_Boi/dmCommands/getDM.js
2024-05-05 13:22:35 +02:00

82 lines
3.3 KiB
JavaScript

const { MessageEmbed } = require("discord.js");
const config = require("../botconfig/config.json");
const ee = require("../botconfig/embed.json");
const misc = require("../botconfig/misc.json")
const { delay } = require("../handlers/functions");
module.exports = {
name: "getdm",
isPrivate: true,
usage: "getDM <USER_ID> [MAX_FETCH]",
description: "Donne la conversation du bot avec l'utilisateur spécifié. Prends les `MAX_FETCH` derniers messages (100 par défaut)",
run: async (client, message, text, args) => {
try {
client.users.fetch(args[0], false).then(async (u) => {
let dmChannel = u.dmChannel || await u.createDM()
fetchLimit = args[1] || 100
dmChannel.messages.fetch({ limit: fetchLimit }).then(messages => {
if (messages.size == 0) {
return message.channel.send({embeds : [
new MessageEmbed()
.setColor(ee.wrongcolor)
.setTitle(`❌ ERREUR | Aucun message n'as été envoyé à cet utilisateur.`)
]}
);
}
messages.sort((msgA, msgB) => msgA.createdTimestamp - msgB.createdTimestamp);
// console.log(`Received ${messages.size} messages`);
let toSend = ""
messages.sorted((msgA, msgB) => msgA.createdTimestamp - msgB.createdTimestamp).forEach(msg => {
let txt = `${msg.author} : ${msg.content} \`${msg.createdAt.toLocaleDateString()} ${msg.createdAt.getHours()}:${msg.createdAt.getMinutes()}:${msg.createdAt.getSeconds()}\`\n`
if (toSend.length + txt.length >= misc.MESSAGE_CHAR_LIMIT) {
delay(30)
message.channel.send({ content : toSend})
toSend = txt.slice(0, misc.MESSAGE_CHAR_LIMIT - 1)
}
else {
toSend += txt
if (txt.includes("http")) {
delay(100)
message.channel.send({ content : toSend})
toSend = ""
}
}
})
if (toSend.length > 0) {
delay(30)
message.channel.send({ content : toSend})
}
message.channel.send({embeds : [
new MessageEmbed()
.setColor(ee.color)
.setTitle(`Reçu ${messages.size} messages`)]}
);
})
}).catch((e) => {
console.log(e)
return message.channel.send({embeds : [
new MessageEmbed()
.setColor(ee.wrongcolor)
.setTitle(`❌ ERREUR | C'est utilisateur n'existe pas :(`)]}
);
})
} catch (e) {
console.log(String(e.stack).bgRed);
return message.channel.send({embeds : [
new MessageEmbed()
.setColor(ee.wrongcolor)
.setTitle(`❌ ERREUR | Une erreur est survenue : `)
.setDescription(`\`\`\`${e.stack}\`\`\``)]}
);
}
},
};