Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -------------------------------------COMMAND/TICKET.JS---------------------------------------------------
- const { MessageEmbed, MessageActionRow, MessageButton} = require("discord.js");
- module.exports = {
- name: "ticket",
- aliases: ['p'],
- permissions : ["ADMINISTRATOR *"],
- /**
- *
- * @param {Client} client
- * @param {Message} message
- * @param {String[]} args
- */
- run: async (client, message, args) => {
- const embed = new MessageEmbed()
- .setColor('YELLOW')
- .setAuthor({
- name: 'Wiesmc.pl| Ticket',
- iconURL: `https://cdn.discordapp.com/icons/778969600591134740/b581f0c2573cfdab3ceab45ba0545c78.webp`,
- })
- .setDescription("Aby utowrzyć ticket w celu pomocy naciśnij w przycisk!")
- .setThumbnail(`https://cdn.discordapp.com/icons/778969600591134740/b581f0c2573cfdab3ceab45ba0545c78.webp`)
- .setTitle('Ticket!!!')
- .setFooter({
- text: `Wiesmc.pl| 2022`,
- iconURL: `https://cdn.discordapp.com/icons/778969600591134740/b581f0c2573cfdab3ceab45ba0545c78.webp`,
- })
- const newButton = new MessageActionRow().addComponents(
- new MessageButton()
- .setCustomId('Ticket')
- .setLabel('💌Otwórz Ticket!')
- .setStyle('SUCCESS')
- // .setDisabled(true)
- );
- message.channel.send({ embeds: [embed], components: [newButton]});
- },
- };
- -------------------------------------EVENT/TICKET.JS---------------------------------------------------
- const { MessageEmbed, MessageActionRow, MessageButton, MessageSelectMenu } = require('discord.js');
- const client = require("..");
- const hastebin = require('hastebin');
- client.on('interactionCreate', async interaction => { {
- if (!interaction.isButton()) return;
- if (interaction.customId == "Ticket") {
- if (client.guilds.cache.get(interaction.guildId).channels.cache.find(c => c.topic == interaction.user.id)) {
- return interaction.reply({
- content: 'Ticket został już utworzony !',
- ephemeral: true
- });
- };
- interaction.guild.channels.create(`ticket-${interaction.user.username}`, {
- parent: "934383759170629632",
- topic: interaction.user.id,
- permissionOverwrites: [{
- id: interaction.user.id,
- allow: ['SEND_MESSAGES', 'VIEW_CHANNEL'],
- },
- {
- id: "927565458880733335",
- allow: ['SEND_MESSAGES', 'VIEW_CHANNEL'],
- },
- {
- id: interaction.guild.roles.everyone,
- deny: ['VIEW_CHANNEL'],
- },
- ],
- type: 'text',
- }).then(async c => {
- interaction.reply({
- content: `Ticket Został utworzony <#${c.id}>`,
- ephemeral: true
- });
- const embed = new MessageEmbed()
- .setColor('YELLOW')
- .setAuthor({
- name: 'Ticket',
- iconURL: `https://cdn.discordapp.com/icons/778969600591134740/b581f0c2573cfdab3ceab45ba0545c78.webp`,
- })
- .setDescription('Wybierz Kategorie ticketu')
- .setFooter({
- text: `Wiesmc.pl| 2022`,
- iconURL: `https://cdn.discordapp.com/icons/778969600591134740/b581f0c2573cfdab3ceab45ba0545c78.webp`,
- })
- .setTimestamp();
- const row = new MessageActionRow()
- .addComponents(
- new MessageSelectMenu()
- .setCustomId('category')
- .setPlaceholder('Wybierz kategorię biletu')
- .addOptions([{
- label: 'Transakcja',
- value: 'Transakcja',
- emoji: '🪙',
- },
- {
- label: 'Pomoc',
- value: 'Pomoc',
- emoji: '🎮',
- },
- {
- label: 'Konkurs',
- value: 'Konkurs',
- emoji: '📔',
- },
- ]),
- );
- msg = await c.send({
- content: `<@!${interaction.user.id}>`,
- embeds: [embed],
- components: [row]
- });
- const collector = msg.createMessageComponentCollector({
- componentType: 'SELECT_MENU',
- time: 20000
- });
- collector.on('collect', i => {
- if (i.user.id === interaction.user.id) {
- if (msg.deletable) {
- msg.delete().then(async () => {
- const embed = new MessageEmbed()
- .setColor('YELLOW')
- .setAuthor({
- name: 'Ticket',
- iconURL: `https://cdn.discordapp.com/icons/778969600591134740/b581f0c2573cfdab3ceab45ba0545c78.webp`,
- })
- .setDescription(`<@!${interaction.user.id}> Twój Ticket ${i.values[0]}`)
- .setFooter({
- text: `Wiesmc.pl| 2022`,
- iconURL: `https://cdn.discordapp.com/icons/778969600591134740/b581f0c2573cfdab3ceab45ba0545c78.webp`,
- })
- .setTimestamp();
- const row = new MessageActionRow()
- .addComponents(
- new MessageButton()
- .setCustomId('close-ticket')
- .setLabel('Zamknij bilet')
- .setEmoji('899745362137477181')
- .setStyle('DANGER'),
- );
- const opened = await c.send({
- content: `<@&927565458880733335>`,
- embeds: [embed],
- components: [row]
- });
- opened.pin().then(() => {
- opened.channel.bulkDelete(1);
- });
- });
- };
- if (i.values[0] == 'Transakcja') {
- c.edit({
- parent: "934383632817213510",
- });
- };
- if (i.values[0] == 'Pomoc') {
- c.edit({
- parent: "934383704070037584",
- });
- };
- if (i.values[0] == 'Konkurs') {
- c.edit({
- parent: "934384078554288148",
- });
- };
- };
- });
- collector.on('end', collected => {
- if (collected.size < 1) {
- c.send(`Brak wybranych kategorii. Zamknięcie biletu...`).then(() => {
- setTimeout(() => {
- if (c.deletable) {
- c.delete();
- };
- }, 5000);
- });
- };
- });
- });
- };
- if (interaction.customId == "close-ticket") {
- const guild = client.guilds.cache.get(interaction.guildId);
- const chan = guild.channels.cache.get(interaction.channelId);
- const row = new MessageActionRow()
- .addComponents(
- new MessageButton()
- .setCustomId('confirm-close')
- .setLabel('Zamknij bilet')
- .setStyle('DANGER'),
- new MessageButton()
- .setCustomId('no')
- .setLabel('Anuluj zamknięcie')
- .setStyle('SECONDARY'),
- );
- const verif = await interaction.reply({
- content: 'Czy na pewno chcesz zamknąć bilet ?',
- components: [row]
- });
- const collector = interaction.channel.createMessageComponentCollector({
- componentType: 'BUTTON',
- time: 10000
- });
- collector.on('collect', i => {
- if (i.customId == 'confirm-close') {
- interaction.editReply({
- content: `Bilet zamknięty przez <@!${interaction.user.id}>`,
- components: []
- });
- chan.edit({
- name: `closed-${chan.name}`,
- permissionOverwrites: [
- {
- id: client.users.cache.get(chan.topic),
- deny: ['SEND_MESSAGES', 'VIEW_CHANNEL'],
- },
- {
- id: "927565458880733335",
- allow: ['SEND_MESSAGES', 'VIEW_CHANNEL'],
- },
- {
- id: interaction.guild.roles.everyone,
- deny: ['VIEW_CHANNEL'],
- },
- ],
- })
- .then(async () => {
- const embed = new MessageEmbed()
- .setColor('YELLOW')
- .setAuthor({
- name: 'Ticket',
- iconURL: `https://cdn.discordapp.com/icons/778969600591134740/b581f0c2573cfdab3ceab45ba0545c78.webp`,
- })
- .setDescription('```Controla Ticketu```')
- .setFooter({
- text: `Wiesmc.pl| 2022`,
- iconURL: `https://cdn.discordapp.com/icons/778969600591134740/b581f0c2573cfdab3ceab45ba0545c78.webp`,
- })
- .setTimestamp();
- const row = new MessageActionRow()
- .addComponents(
- new MessageButton()
- .setCustomId('delete-ticket')
- .setLabel('Usuń bilet')
- .setEmoji('🗑️')
- .setStyle('DANGER'),
- );
- chan.send({
- embeds: [embed],
- components: [row]
- });
- });
- collector.stop();
- };
- if (i.customId == 'no') {
- interaction.editReply({
- content: 'Zamknięcie anulowanego biletu !',
- components: []
- });
- collector.stop();
- };
- });
- collector.on('end', (i) => {
- if (i.size < 1) {
- interaction.editReply({
- content: 'Zamknięcie anulowanego biletu !',
- components: []
- });
- };
- });
- };
- if (interaction.customId == "delete-ticket") {
- const guild = client.guilds.cache.get(interaction.guildId);
- const chan = guild.channels.cache.get(interaction.channelId);
- interaction.reply({
- content: 'Tworzenie kopii zapasowych wiadomości...'
- });
- chan.messages.fetch().then(async (messages) => {
- let a = messages.filter(m => m.author.bot !== true).map(m =>
- `${new Date(m.createdTimestamp).toLocaleString('fr-FR')} - ${m.author.username}#${m.author.discriminator}: ${m.attachments.size > 0 ? m.attachments.first().proxyURL : m.content}`
- ).reverse().join('\n');
- if (a.length < 1) a = "Nothing"
- hastebin.createPaste(a, {
- contentType: 'text/plain',
- server: 'https://hastebin.com'
- }, {})
- .then(function (urlToPaste) {
- const embed = new MessageEmbed()
- .setAuthor({
- name: 'LOG',
- iconURL: `https://cdn.discordapp.com/icons/778969600591134740/b581f0c2573cfdab3ceab45ba0545c78.webp`,
- })
- .setDescription(`📰 Dzienniki biletów \`${chan.id}\` stworzone przez <@!${chan.topic}> i Usuniety przez <@!${interaction.user.id}>\n\nLogs: [**Kliknij tutaj, aby zobaczyć dzienniki**](${urlToPaste})`)
- .setColor('YELLOW')
- .setTimestamp();
- const embed2 = new MessageEmbed()
- .setAuthor({
- name: 'LOG',
- iconURL: `https://cdn.discordapp.com/icons/778969600591134740/b581f0c2573cfdab3ceab45ba0545c78.webp`,
- })
- .setDescription(`📰 Dzienniki biletu \`${chan.id}\`: [**Kliknij tutaj, aby zobaczyć dzienniki**](${urlToPaste})`)
- .setColor('2f3136')
- .setTimestamp();
- client.channels.cache.get("933767785320964127").send({
- embeds: [embed]
- });
- client.users.cache.get(chan.topic).send({
- embeds: [embed2]
- }).catch(() => {console.log('Nie mogę go dm :(')});
- chan.send('Usuwanie kanałów...');
- setTimeout(() => {
- chan.delete();
- }, 5000);
- });
- });
- };
- }
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement