const { Client, MessageActionRow, MessageButton } = require('discord.
js');
const { prompt } = require('enquirer');
const mongoose = require('mongoose');
const { token, prefix, ownerID } = require('./[Link]');
const client = new Client({ intents: ['GUILDS', 'GUILD_MESSAGES',
'DIRECT_MESSAGES', 'MESSAGE_CONTENT'] });
// Banco de Dados para armazenar compras e produtos
const ProductSchema = new [Link]({
name: String,
price: Number,
description: String,
imageUrl: String,
stock: Number
});
const Product = [Link]('Product', ProductSchema);
// Conectar ao MongoDB
[Link]('mongodb://localhost/vendasbot', { useNewUrlParser: true,
useUnifiedTopology: true });
[Link]('ready', () => {
[Link](`${[Link]} está online e funcionando!`);
});
[Link]('messageCreate', async (message) => {
if ([Link]) return;
// Comando de configuração para o dono do bot
if ([Link]('/botconfig') && [Link] === ownerID)
{
const configMenu = new MessageActionRow()
.addComponents(
new MessageButton()
.setCustomId('config_channels')
.setLabel('Configurar Canais')
.setStyle('PRIMARY'),
new MessageButton()
.setCustomId('config_products')
.setLabel('Configurar Produtos')
.setStyle('PRIMARY')
);
await [Link]({ content: 'Escolha uma opção para configurar:',
components: [configMenu] });
}
// Botão de compra
if ([Link]('/comprar')) {
const productID = [Link](' ')[1];
const product = await [Link](productID);
if (!product) {
return [Link]('Produto não encontrado!');
}
// Menu interativo para pagamento
const paymentMenu = new MessageActionRow()
.addComponents(
new MessageButton()
.setCustomId('pay_button')
.setLabel(`Pagar ${[Link]} R$`)
.setStyle('SUCCESS'),
new MessageButton()
.setCustomId('cancel_button')
.setLabel('Cancelar')
.setStyle('DANGER')
);
await [Link]({
content: `Você selecionou o produto ${[Link]} por $
{[Link]} R$.
Descrição: ${[Link]}`,
components: [paymentMenu]
});
}
});
// Comando de configuração do bot (exemplo de como pode ser feito no privado)
[Link]('interactionCreate', async (interaction) => {
if (![Link]()) return;
const user = [Link];
if ([Link] === 'config_channels') {
// Aqui seria onde o dono poderia configurar os canais (exemplo básico)
await [Link]('Você pode configurar canais aqui!');
}
if ([Link] === 'config_products') {
// Configuração de produtos
const response = await prompt({
type: 'input',
name: 'product_name',
message: 'Digite o nome do produto:'
});
const product = new Product({
name: response.product_name,
price: 100, // Preço fictício por enquanto
description: 'Descrição do produto.',
imageUrl: '[Link]
stock: 10
});
await [Link]();
await [Link](`Produto ${[Link]} criado com sucesso!`);
}
// Processo de pagamento
if ([Link] === 'pay_button') {
// Aqui o bot faria a verificação de pagamento
// Após pagamento confirmado, o bot entrega o produto automaticamente
await [Link]('Pagamento confirmado! O produto será entregue em
breve.');
}
if ([Link] === 'cancel_button') {
await [Link]('Compra cancelada.');
}
});
// Login do bot
[Link](token).catch((error) => {
[Link]('Erro ao fazer login:', error);
});