const Discord = require("discord.js"); const fs = require("fs"); const jsdom = require('jsdom'); const { JSDOM } = jsdom; const dom = new JSDOM(); const document = dom.window.document; module.exports.run = async (bot, message, args) => { if (!message.member.roles.find(x => x.name === "Support Team")) return message.channel.send(new Discord.RichEmbed() // Creating instance of Discord.RichEmbed .setTitle("**__SORRY__**") .setDescription("⚠ | **You do not have permission to close this ticket(Support Team)**") .setColor('#ffe400') .setTimestamp() ); //return message.reply('⚠ | **You do not have permission to close this ticket(Support Team)**'); if (!message.channel.name.startsWith(`ticket-`)) return message.channel.send(new Discord.RichEmbed() // Creating instance of Discord.RichEmbed .addField('WARNING','You cant use the close command outside of a ticket channel.') .setColor('#ff0000') .setTimestamp() ); await message.delete(); let messageCollection = new discord.Collection(); let channelMessages = await message.channel.fetchMessages({ limit: 100 }).catch(err => console.log(err)); messageCollection = messageCollection.concat(channelMessages); while(channelMessages.size === 100) { let lastMessageId = channelMessages.lastKey(); channelMessages = await message.channel.fetchMessages({ limit: 100, before: lastMessageId }).catch(err => console.log(err)); if(channelMessages) messageCollection = messageCollection.concat(channelMessages); } let msgs = messageCollection.array().reverse(); let data = await fs.readFile('./template.html', 'utf8').catch(err => console.log(err)); if(data) { await fs.writeFile('index.html', data).catch(err => console.log(err)); let guildElement = document.createElement('div'); let guildText = document.createTextNode(message.guild.name); let guildImg = document.createElement('img'); guildImg.setAttribute('src', message.guild.iconURL); guildImg.setAttribute('width', '150'); guildElement.appendChild(guildImg); guildElement.appendChild(guildText); console.log(guildElement.outerHTML); await fs.appendFile('index.html', guildElement.outerHTML).catch(err => console.log(err)); msgs.forEach(async msg => { let parentContainer = document.createElement("div"); parentContainer.className = "parent-container"; let avatarDiv = document.createElement("div"); avatarDiv.className = "avatar-container"; let img = document.createElement('img'); img.setAttribute('src', msg.author.displayAvatarURL); img.className = "avatar"; avatarDiv.appendChild(img); parentContainer.appendChild(avatarDiv); let messageContainer = document.createElement('div'); messageContainer.className = "message-container"; let nameElement = document.createElement("span"); let name = document.createTextNode(msg.author.tag + " " + msg.createdAt.toDateString() + " " + msg.createdAt.toLocaleTimeString() + " EST"); nameElement.appendChild(name); messageContainer.append(nameElement); if(msg.content.startsWith("```")) { let m = msg.content.replace(/```/g, ""); let codeNode = document.createElement("code"); let textNode = document.createTextNode(m); codeNode.appendChild(textNode); messageContainer.appendChild(codeNode); } else { let msgNode = document.createElement('span'); let textNode = document.createTextNode(msg.content); msgNode.append(textNode); messageContainer.appendChild(msgNode); } parentContainer.appendChild(messageContainer); await fs.appendFile('index.html', parentContainer.outerHTML).catch(err => console.log(err)); }); } //if (!message.channel.topic.startsWith("Ticket channel | Created by")) return message.reply('not a ticket channel') const channelID = message.channel.name.split('ticket-')[1] message.channel.delete() } module.exports.help = { name: "ttclose" }