Não funciona de jeito nenhum

Question: não funcionou de jeito nenhum

Repl link:

const { Client, Intents, MessageActionRow, MessageButton, MessageEmbed } = require('discord.js');
const client = new Client({ 
    intents: [
        Intents.FLAGS.GUILDS, 
        Intents.FLAGS.GUILD_MESSAGES, 
        Intents.FLAGS.DIRECT_MESSAGES
    ] 
});

const prefix = '/';

const accounts = {};

client.on('ready', () => {
    console.log('Bot está online!');
});

client.on('messageCreate', message => {
    if (message.author.bot || !message.content.startsWith(prefix)) return;

    const args = message.content.slice(prefix.length).trim().split(/ +/);
    const command = args.shift().toLowerCase();

    if (command === 'help') {
        const embed = new MessageEmbed()
            .setColor('#00ff00')
            .setTitle('Lista de Comandos')
            .setDescription(`
                **/gen <email> <senha>**: Gera uma nova conta. Exemplo: /gen exemplo@gmail.com senha123
                **/stock**: Mostra o estoque de contas geradas.
                **/addstock**: Adiciona uma conta ao estoque. Clique no botão "Adicionar Contas" para fornecer as informações da conta.
                **/help**: Mostra a lista de comandos e suas descrições.
            `);
        message.channel.send({ embeds: [embed] });
    } else if (command === 'gen') {
        if (args.length !== 2) {
            const embed = new MessageEmbed()
                .setColor('#ff0000')
                .setTitle('Erro')
                .setDescription('Uso correto: /gen <email> <senha>');
            message.channel.send({ embeds: [embed] });
            return;
        }

        const email = args[0];
        const password = args[1];
        accounts[email] = password;

        const embed = new MessageEmbed()
            .setColor('#00ff00')
            .setTitle('Conta Gerada')
            .setDescription(`Conta gerada com sucesso: ${email}:${password}`);
        message.author.send({ embeds: [embed] });
    } else if (command === 'stock') {
        let stock = 'Estoque de contas geradas:\n';
        for (const [email, password] of Object.entries(accounts)) {
            stock += `${email}: ${password}\n`;
        }

        const embed = new MessageEmbed()
            .setColor('#0000ff')
            .setTitle('Estoque de Contas')
            .setDescription(stock);
        message.author.send({ embeds: [embed] });
    } else if (command === 'addstock') {
        const addAccountButton = new MessageButton()
            .setCustomId('add_account')
            .setLabel('Adicionar Contas')
            .setStyle('PRIMARY');

        const row = new MessageActionRow().addComponents(addAccountButton);

        const embed = new MessageEmbed()
            .setColor('#ffff00')
            .setTitle('Adicionar Contas')
            .setDescription('Clique no botão abaixo para adicionar uma nova conta.');
        message.channel.send({ embeds: [embed], components: [row] });
    }
});

client.on('interactionCreate', async interaction => {
    if (!interaction.isButton()) return;

    if (interaction.customId === 'add_account') {
        interaction.channel.send('Por favor, digite a conta no formato email:senha.');
    }
});

const token = 'SEU_TOKEN_DO_DISCORD';
client.login(token);

Olá @queroverrr1 poderia ser mais específico sobre o que não funciona?

2 Likes

Esse projeto e um bot para o Discord de gerador fictício
O comando .add era adicionar .stock era pra ver o stock e etc.
Só que eu ainda não sei muito disso e só consegui deixar o Bot on em py, mais aqui no node
Sempre dá o mesmo erro exemplo: Flags guilds is anonimus, aí eu tiro o guilda Flags is anonimus.
Eu só sei um pouco de py, mais nada de javascript
Este projeto foi feito pelo chat gpt.
Queria que me ajudasse a fazer esse Bot funcionar.

Isso parece ser um erro de versão desatualizada. Sempre que for utilizar uma biblioteca, você deve sempre olhar a última versão daquela biblioteca. No caso do Discord.JS (Biblioteca utilizada para configuração de bots no Discord para JavaScript) consulte a documentação aqui:

Então, o problema de utilizar o ChatGPT é que ele tem uma base de conhecimento atrasada.
Um exemplo já está no início do bot, onde você está configurando os Intents:

Essa configuração é obsoleta. O jeito certo de utilizar os Intents é conforme na documentação:

const client = new Client({
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent,
        GatewayIntentBits.DirectMessages
    ],
    partials: [Partials.Channel]
});

Há diversas outras partes do código que está desatualizada conforme a documentação do Discord.js, eu sugiro estudar a documentação primeiro para depois embarcar na programação.

Eu corrigi seu código para a versão mais recente:

const { Client, GatewayIntentBits, Partials, EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require('discord.js');

const client = new Client({
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent,
        GatewayIntentBits.DirectMessages
    ],
    partials: [Partials.Channel]
});

const prefix = '/';

const accounts = {};

client.once('ready', () => {
    console.log('Bot está online!');
});

client.on('messageCreate', message => {
    if (message.author.bot || !message.content.startsWith(prefix)) return;

    const args = message.content.slice(prefix.length).trim().split(/ +/);
    const command = args.shift().toLowerCase();

    if (command === 'help') {
        const embed = new EmbedBuilder()
            .setColor('#00ff00')
            .setTitle('Lista de Comandos')
            .setDescription(`
                **/gen <email> <senha>**: Gera uma nova conta. Exemplo: /gen exemplo@gmail.com senha123
                **/stock**: Mostra o estoque de contas geradas.
                **/addstock**: Adiciona uma conta ao estoque. Clique no botão "Adicionar Contas" para fornecer as informações da conta.
                **/help**: Mostra a lista de comandos e suas descrições.
            `);
        message.channel.send({ embeds: [embed] });
    } else if (command === 'gen') {
        if (args.length !== 2) {
            const embed = new EmbedBuilder()
                .setColor('#ff0000')
                .setTitle('Erro')
                .setDescription('Uso correto: /gen <email> <senha>');
            message.channel.send({ embeds: [embed] });
            return;
        }

        const email = args[0];
        const password = args[1];
        accounts[email] = password;

        const embed = new EmbedBuilder()
            .setColor('#00ff00')
            .setTitle('Conta Gerada')
            .setDescription(`Conta gerada com sucesso: ${email}:${password}`);
        message.author.send({ embeds: [embed] });
    } else if (command === 'stock') {
        let stock = 'Estoque de contas geradas:\n';
        for (const [email, password] of Object.entries(accounts)) {
            stock += `${email}: ${password}\n`;
        }

        const embed = new EmbedBuilder()
            .setColor('#0000ff')
            .setTitle('Estoque de Contas')
            .setDescription(stock);
        message.author.send({ embeds: [embed] });
    } else if (command === 'addstock') {
        const addAccountButton = new ButtonBuilder()
            .setCustomId('add_account')
            .setLabel('Adicionar Contas')
            .setStyle(ButtonStyle.Primary);

        const row = new ActionRowBuilder().addComponents(addAccountButton);

        const embed = new EmbedBuilder()
            .setColor('#ffff00')
            .setTitle('Adicionar Contas')
            .setDescription('Clique no botão abaixo para adicionar uma nova conta.');
        message.channel.send({ embeds: [embed], components: [row] });
    }
});

client.on('interactionCreate', async interaction => {
    if (!interaction.isButton()) return;

    if (interaction.customId === 'add_account') {
        await interaction.reply('Por favor, digite a conta no formato email:senha.');
    }
});

const token = 'SEU_TOKEN_DO_DISCORD';
client.login(token);

Summary of what was said:

"This seems to be an outdated version error. Whenever you use a library, you should always check the latest version of that library. In the case of Discord.JS (a library used for setting up Discord bots in JavaScript), refer to the documentation on the official website.

The problem with using ChatGPT is that it has a delayed knowledge base.
An example is already at the beginning of the bot, where you’re setting up the Intents.

I’ve fixed your code to the latest version".

1 Like