const { MessageEmbed, PermissionFlagsBits, ButtonBuilder, ComponentType, EmbedBuilder, ActionRowBuilder, StringSelectMenuBuilder } = require('discord.js'); const { produtos } = require("../DataBaseJson"); const { QuickDB } = require("quick.db"); const db = new QuickDB(); var uu = db.table('permissionsmessage2') const editEmbed = { content: "⚠️ | Use o Comando Novamente!", components: [], embeds: [] }; const editMessage = async (message) => { try { await message.edit(editEmbed) } catch (error) { } }; const createCollector = (message) => { const collector = message.createMessageComponentCollector({ componentType: ComponentType.Button, time: 120000 }); collector.on('collect', () => { collector.stop(); }); collector.on('end', (collected) => { if (collected.size === 0) { editMessage(message); } }); }; async function StartConfigProduto(interaction, produto, client, user) { console.log(client) var u = produtos.get(`${produto}_${interaction.guild.id}.settings.price`) var s = produtos.get(`${produto}_${interaction.guild.id}.settings.estoque`) const embed = new Discord.EmbedBuilder() .setColor("#2b2d31") .setTitle(`${client.user.username} | Gerenciar Produto`) .setDescription(`📝 | **Descrição:** ${produtos.get(`${produto}_${interaction.guild.id}.settings.desc`)} 🔍 | Id: ${produtos.get(`${produto}_${interaction.guild.id}.ID`)} 🏷️ | Nome: ${produtos.get(`${produto}_${interaction.guild.id}.settings.name`)} 💵 | Preço: R$ ${Number(u).toFixed(2)} 📦 | Estoque quantidade: ${Object.keys(s).length}`) .setFooter({ text: `${client.user.username} - Todos os direitos reservados.`, iconURL: client.user.displayAvatarURL({ dynamic: true }) }) const row = new ActionRowBuilder() .addComponents( new ButtonBuilder() .setCustomId("alterarnomeproduto") .setLabel('NOME') .setEmoji(`1097970079343329471`) .setStyle(3) .setDisabled(false), new ButtonBuilder() .setCustomId("alterarpriceproduto") .setLabel('PREÇO') .setEmoji(`1097969278826856588`) .setStyle(3) .setDisabled(false), new ButtonBuilder() .setCustomId("alterardescproduto") .setLabel('DESCRIÇÃO') .setEmoji(`1072999802549325895`) .setStyle(3) .setDisabled(false), new ButtonBuilder() .setCustomId("alterarestoqueproduto") .setLabel('ESTOQUE') .setEmoji(`1062204509029412944`) .setStyle(3) .setDisabled(false),) const row2 = new ActionRowBuilder() .addComponents( new ButtonBuilder() .setCustomId("configavancadaproduto") .setLabel('Configurações Avançadas') .setEmoji(`1064286996287213638`) .setStyle(1) .setDisabled(false), new ButtonBuilder() .setCustomId("atualizarmessage") .setLabel('Atualizar Mensagem') .setEmoji(`1113522785084518451`) .setStyle(1) .setDisabled(false), new ButtonBuilder() .setCustomId("deletarproduto") .setLabel('DELETAR') .setEmoji(`1088982783369691247`) .setStyle(4) .setDisabled(false), new ButtonBuilder() .setCustomId("infoproduto") .setEmoji(`1089069173876989992`) .setStyle(1) .setDisabled(false),) if (interaction.message == undefined) { await interaction.reply({ embeds: [embed], components: [row, row2] }).then(async u => { const messages = await interaction.channel.messages.fetch({ limit: 1 }); const lastMessage = messages.first(); uu.set(lastMessage.id, { user: user, produto: produto }) createCollector(u); }) } else { interaction.message.edit({ embeds: [embed], components: [row, row2] }).then(u => { createCollector(u); }) } } function alterarnomeproduto(interaction, produto, user, client) { const embed = new Discord.EmbedBuilder() .setColor("#2b2d31") .setTitle(`${client.user.username} | Gerenciar Produto`) .setDescription(`🏷️ | **Nome Atual:** ${produtos.get(`${produto}_${interaction.guild.id}.settings.name`)} Envie o novo nome abaixo: `) interaction.message.edit({ embeds: [embed], components: [] }).then(msg => { const filter = message => message.author.id === interaction.user.id const collector = interaction.channel.createMessageCollector({ filter: filter, time: 120000, limit: 1 }) collector.on('collect', async (message) => { message.delete() collector.stop() if (message.content == '') { msg.reply({ content: `❌ | Você inseriu um valor INVÁLIDO para seu PRODUTO.`, ephemeral: true }) StartConfigProduto(interaction, produto, client, user) return } produtos.set(`${produto}_${interaction.guild.id}.settings.name`, message.content) msg.reply({ content: `✅ | O nome foi atualizado com sucesso para \`${message.content}\`.`, ephemeral: true }) StartConfigProduto(interaction, produto, client, user) }) collector.on('end', async (message) => { message.delete() collector.stop() if (message.size >= 1) return try { await interaction.message.edit({ content: "⚠️ | Use o Comando Novamente!", components: [], embeds: [] }) } catch (error) { } }); }) } async function alterarestoqueproduto(interaction, produto, user, client) { const u = produtos.get(`${produto}_${interaction.guild.id}.settings.estoque`) var result = ''; for (const key in u) { result += '📦| ' + key + ' - ' + u[key] + '\n'; } if (result == '') result = 'Sem estoque, adicione' const embed = new Discord.EmbedBuilder() .setColor("#2b2d31") .setTitle(`${client.user.username} | Gerenciar Produto`) .setDescription(`📝 | **Estoque Atual:** ${result}`) .setFooter({ text: `Esse é seu estoque completo!`, iconURL: client.user.displayAvatarURL({ dynamic: true }) }) const row = new ActionRowBuilder() .addComponents( new ButtonBuilder() .setCustomId("addstock") .setLabel('ADICIONAR') .setEmoji(`1113579299040137349`) .setStyle(3) .setDisabled(false), new ButtonBuilder() .setCustomId("remstock") .setLabel('REMOVER') .setEmoji(`1099333873952895078`) .setStyle(2) .setDisabled(false), new ButtonBuilder() .setCustomId("backupstock") .setLabel('BACKUP') .setEmoji(`📩`) .setStyle(1) .setDisabled(false), new ButtonBuilder() .setCustomId("clearstock") .setLabel('LIMPAR') .setEmoji(`1064281568526483486`) .setStyle(4) .setDisabled(false),) const row2 = new ActionRowBuilder() .addComponents( new ButtonBuilder() .setCustomId("atualizarmessage") .setLabel('Atualizar Mensagem') .setEmoji(`1113522785084518451`) .setStyle(1) .setDisabled(false), new ButtonBuilder() .setCustomId("returnconfigproduto") .setLabel('Voltar') .setEmoji(`1106069998331514930`) .setStyle(1) .setDisabled(false), ) interaction.message.edit({ embeds: [embed], components: [row, row2] }) } module.exports = { StartConfigProduto, alterarestoqueproduto };