testhjgrkesl
Version:
Un package comune che probabilmente è inutile e non servirà a nessuno.
200 lines (150 loc) • 6.79 kB
JavaScript
const Canvas = require("canvas")
const Discord = require("discord.js")
const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
const { MessageActionRow, MessageButton } = require('discord.js');
const ms = require("ms")
async function italy(message) {
const avatar1 = await Canvas.loadImage(message.mentions.users.first() ? message.mentions.users.first().displayAvatarURL({format: 'png', size: 256}) :message.author.displayAvatarURL({format: 'png', size: 256}))
const canvas = Canvas.createCanvas(500, 400)
const ctx = canvas.getContext("2d")
const bg = await Canvas.loadImage("https://media.discordapp.net/attachments/856944359655473164/874300817560178748/E6Czv38XIAs5cWR.png")
ctx.drawImage(bg, 0, 0, canvas.width, canvas.height)
ctx.drawImage(avatar1, 140, 50, 80, 100);
const attachment = new Discord.MessageAttachment(canvas.toBuffer(), "chiellini.png")
message.channel.send(attachment)
}
async function invitesCount(message) {
let user;
if (message.mentions.users.first()) {
user = message.mentions.users.first();
} else {
user = message.author;
}
message.guild.fetchInvites().then(invites => {
let personalInvites = invites.filter(
i => i.inviter.id === user.id
);
let inviteCount = personalInvites.reduce((p, v) => v.uses + p, 0);
const embed = new Discord.MessageEmbed()
.setDescription(`${user.tag} ha \`${inviteCount}\` inviti`)
message.channel.send(embed)
})
}
async function bannerCHIUSOTEST(message){
const fetch = require('node-fetch')
const args = message.content.trim().split(/ +/);
const user = message.mentions.users.first() || message.author
let id = user.id
let response = fetch(`https://discord.com/api/v8/users/${id}`, {
method: 'GET',
headers: {
"Authorization": `Bot ${process.env.TOKEN}`
}
})
let receive = ''
let banner = 'https://media.discordapp.net/attachments/867894750714658856/874783630797455390/20210811_003739.jpg'
response.then(a => {
if (a.status !== 404) {
a.json().then(data => {
receive = data['banner']
if (receive !== null) {
let response2 = fetch(`https://cdn.discordapp.com/banners/${id}/${receive}.gif`, {
method: 'GET',
headers: {
Authorization: `Bot ${process.env.TOKEN}`
}
})
let statut = ''
response2.then(b => {
statut = b.status
banner = `https://cdn.discordapp.com/banners/${id}/${receive}.gif?size=1024`
if (statut === 415) {
banner = `https://cdn.discordapp.com/banners/${id}/${receive}.png?size=1024`
}
})
}
})
}
})
setTimeout(() => {
let embed = new Discord.MessageEmbed()
.setImage(banner)
message.channel.send(embed)
}, 1000)
}
async function ticket(client, channel, option={title, description, color, buttonName}){
const row = new MessageActionRow()
.addComponents(
new MessageButton()
.setCustomId('ticket_aperto')
.setLabel(option.buttonName ||'📩 Apri Ticket')
.setStyle('PRIMARY'));
let embed = new Discord.MessageEmbed()
.setTitle(option.title || "Ticket Support")
.setDescription(option.description || "Per avere il supporto di uno staff clicca il bottone qui sotto.")
.setColor(option.color)
await channel.send({embeds: [embed], components: [row]})
}
async function ticketInteraction(interaction, option={ openTitle, openDesc, openCategory, roleView, closeTitle, closeDesc, closeButton, closeTime}){
if(interaction.isButton()) {
if(interaction.customId === "ticket_aperto"){
interaction.deferUpdate();
let ticketgiaaperto = interaction.guild.channels.cache.find(canale => canale.name === `ticket-${interaction.user.username}`.toLowerCase())
if(ticketgiaaperto){
} else if(!ticketgiaaperto){
interaction.guild.channels.create(`ticket-${interaction.user.username}`, {
type: "text",
parent: option.openCategory || null,
permissionOverwrites: [
{
id: interaction.message.guild.roles.everyone,
deny: ['VIEW_CHANNEL', 'SEND_MESSAGES']
},
{
id: interaction.user.id,
allow: ['VIEW_CHANNEL', 'SEND_MESSAGES']
},
{
id: option.roleView || interaction.user.id,
allow: ['VIEW_CHANNEL', 'SEND_MESSAGES']
}
],
}).then(canale => {
canale.setTopic(`Creato da ${interaction.user.tag} (${interaction.user.id})`)
let rowch = new MessageActionRow()
.addComponents(
new MessageButton()
.setCustomId("ticket_close")
.setStyle("DANGER")
.setEmoji("859110774492627004")
.setLabel(option.closeButton ||"Chiudi Ticket")
)
const embedcreated = new Discord.MessageEmbed()
.setColor(option.openColor)
.setAuthor(interaction.user.tag, interaction.user.displayAvatarURL())
.setTitle(option.openTitle ||"Ticket Support")
.setDescription(option.openDesc ||`Grazie per aver creato un ticket. Aspetta che uno staff claimi il ticket.
`)
.setThumbnail(interaction.user.displayAvatarURL())
.setTimestamp()
canale.send({ content: `${interaction.user},`, embeds: [embedcreated], components: [rowch] })
})
}
} else if(interaction.customId === "ticket_close"){
interaction.deferUpdate()
const closed = new Discord.MessageEmbed()
.setAuthor(interaction.user.tag, interaction.user.displayAvatarURL())
.setColor("#ec3737")
.setTitle(option.closeTitle || "Chiusura Ticket")
.setDescription(option.closeDesc || "Il ticket verrà eliminato tra \`10s\`.")
.setThumbnail(interaction.user.displayAvatarURL())
.setTimestamp()
interaction.message.edit({ embeds: [closed], components: [] })
setTimeout(() => {
interaction.message.guild.channels.cache.get(interaction.message.channel.id).delete()
}, ms(`${option.closeTime}`) || ms("10s"))
}
}
}
module.exports = { italy, bannerCHIUSOTEST, ticket, ticketInteraction, invitesCount }