Katılım
15 Aralık 2023
Mesajlar
2.754
Makaleler
3
Çözümler
27
Beğeniler
2.650
Yer
Avcılar/İstanbul
Dünden beri bunu düzeltmeye uğraşıyorum, sırf bunun için bottaki 21 komudu bozdum. Yardımcı olabilir misiniz? AFK komudum var ve bu embed, .afk sebep yazınca bu hatayı alıyorum. Tam hata:


[CODE title="HATA"]C:\dcbot\Komisan\node_modules\discord.js\src\rest\RequestHandler.js:154
throw new DiscordAPIError(request.path, data, request.method, res.status);
^

DiscordAPIError: Cannot send an empty message
at RequestHandler.execute (C:\dcbot\Komisan\node_modules\discord.js\src\rest\RequestHandler.js:154:13)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async RequestHandler.push (C:\dcbot\Komisan\node_modules\discord.js\src\rest\RequestHandler.js:39:14) {
method: 'post',
path: '/channels/1230606508606226562/messages',
code: 50006,
httpStatus: 400
}

Node.js v20.15.0[/CODE]

Index:

Kod:
const Discord = require('discord.js');
const fs = require('fs');
const client = new Discord.Client();
const prefix = '.'; // Komutlar için kullanılacak önek

client.commands = new Discord.Collection();
client.AFK = new Map(); // AFK koleksiyonunu burada tanımlayın

// Komut dosyalarını yükleme
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
for (const file of commandFiles) {
    const command = require(`./commands/${file}`);
    client.commands.set(command.name, command);
}

client.once('ready', () => {
    console.log('Bot hazır, çalışıyor!');
    client.user.setActivity('Komi-San Can\'t Communicate', { type: 'WATCHING' });
});

client.on('message', message => {
    if (message.author.bot) return;

    // AFK kullanıcı kontrolü
    if (client.AFK.has(message.author.id)) {
        const afkData = client.AFK.get(message.author.id);
        const afkDuration = (Date.now() - afkData.time) / 1000; // saniye cinsinden süre
        client.AFK.delete(message.author.id);
        const embed = new Discord.MessageEmbed()
            .setTitle('AFK Modundan Çıkıldı')
            .setDescription(`**Sebep:** ${afkData.reason}\n**Süre:** ${Math.floor(afkDuration)} saniye`)
            .setColor('#00ff00');
        message.channel.send(embed).catch(console.error);
    }

    // Başka bir kullanıcıyı etiketleme kontrolü
    if (message.mentions.users.size > 0) {
        message.mentions.users.forEach(user => {
            if (client.AFK.has(user.id)) {
                const afkData = client.AFK.get(user.id);
                const afkDuration = (Date.now() - afkData.time) / 1000; // saniye cinsinden süre
                const embed = new Discord.MessageEmbed()
                    .setTitle(`${user.tag} AFK Modunda`)
                    .setDescription(`**Sebep:** ${afkData.reason}\n**Süre:** ${Math.floor(afkDuration)} saniye`)
                    .setColor('#ff0000');
                message.channel.send(embed).catch(console.error);
            }
        });
    }

    // Otomatik cevaplar
    const gunaydins = ["Güno", "Guno", "Günaydın"];
    const merhabas = ["Hello", "Helo", "Merhaba", "Helü", "Selam", "Helu"];
   
    if (gunaydins.some(word => message.content.includes(word))) {
        message.channel.send('Günaydın!').catch(console.error);
    } else if (merhabas.some(word => message.content.includes(word))) {
        message.channel.send('Merhaba!').catch(console.error);
    }

    // Komutlar
    if (!message.content.startsWith(prefix) || message.author.bot) return;

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

    if (!client.commands.has(commandName)) return;

    const command = client.commands.get(commandName);

    try {
        command.execute(message, args, client.AFK); // AFK koleksiyonunu buraya ekleyin
    } catch (error) {
        console.error(error);
        message.reply('Komutu yürütmeye çalışırken bir hata oluştu!').catch(console.error);
    }
});

client.login("GİZLİ");

AFK.js:

Kod:
const { MessageEmbed } = require('discord.js');

module.exports = {
    name: 'afk',
    description: 'Kullanıcıyı AFK moduna alır.',
    execute(message, args, AFK) {
        const reason = args.join(' ') || 'Sebep belirtilmedi';
        AFK.set(message.author.id, { reason: reason, time: Date.now() });

        const embed = new MessageEmbed()
            .setTitle('AFK Moduna Geçildi')
            .setDescription(`**Sebep:** ${reason}`)
            .setColor('#ff0000');
       
        message.channel.send({ embeds: [embed] });
    }
};

Sürümüm 12.5.3 bu arada.

@brkdnmz @sahnelerde @umut
 
Son düzenleme:
JavaScript:
const { MessageEmbed } = require('discord.js');

module.exports = {
    name: 'afk',
    description: 'Kullanıcıyı AFK moduna alır.',
    execute(message, args, AFK) {
        const reason = args.join(' ') || 'Sebep belirtilmedi';
        AFK.set(message.author.id, { reason: reason, time: Date.now() });

        // Reason kontrolü
        let reasonText = reason;
        if (!reason) {
            reasonText = 'Sebep belirtilmedi';
        }

        const embed = new MessageEmbed()
            .setTitle('AFK Moduna Geçildi')
            .setDescription(`**Sebep:** ${reasonText}`)
            .setColor('#ff0000');
      
        message.channel.send({ embeds: [embed] });
    }
};

reason eklememissin, o yuzden aliyorsun hatayi.
 
JavaScript:
const { MessageEmbed } = require('discord.js');

module.exports = {
    name: 'afk',
    description: 'Kullanıcıyı AFK moduna alır.',
    execute(message, args, AFK) {
        const reason = args.join(' ') || 'Sebep belirtilmedi';
        AFK.set(message.author.id, { reason: reason, time: Date.now() });

        // Reason kontrolü
        let reasonText = reason;
        if (!reason) {
            reasonText = 'Sebep belirtilmedi';
        }

        const embed = new MessageEmbed()
            .setTitle('AFK Moduna Geçildi')
            .setDescription(`**Sebep:** ${reasonText}`)
            .setColor('#ff0000');
     
        message.channel.send({ embeds: [embed] });
    }
};
Bu hatayı alıyorum yine :(

Kod:
C:\dcbot\Komisan\node_modules\discord.js\src\rest\RequestHandler.js:154
      throw new DiscordAPIError(request.path, data, request.method, res.status);
            ^

DiscordAPIError: Cannot send an empty message
    at RequestHandler.execute (C:\dcbot\Komisan\node_modules\discord.js\src\rest\RequestHandler.js:154:13)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async RequestHandler.push (C:\dcbot\Komisan\node_modules\discord.js\src\rest\RequestHandler.js:39:14) {
  method: 'post',
  path: '/channels/1230606508606226562/messages',
  code: 50006,
  httpStatus: 400
}

Node.js v20.15.0
 
JavaScript:
const { MessageEmbed } = require('discord.js');

module.exports = {
    name: 'afk',
    description: 'Kullanıcıyı AFK moduna alır.',
    execute(message, args, AFK) {
        const reason = args.join(' ') || 'Sebep belirtilmedi';
        AFK.set(message.author.id, { reason: reason, time: Date.now() });

        // Reason kontrolü
        let reasonText = args.length > 0 ? args.join(' ') : 'Sebep belirtilmedi';

        const embed = new MessageEmbed()
            .setTitle('AFK Moduna Geçildi')
            .setDescription(`**Sebep:** ${reasonText}`)
            .setColor('#ff0000');
    
        message.channel.send({ embeds: [embed] })
            .catch(err => console.error('Message sending error:', err));
    }
};

Bunu deneyin bir de.
 
JavaScript:
const { MessageEmbed } = require('discord.js');

module.exports = {
    name: 'afk',
    description: 'Kullanıcıyı AFK moduna alır.',
    execute(message, args, AFK) {
        const reason = args.join(' ') || 'Sebep belirtilmedi';
        AFK.set(message.author.id, { reason: reason, time: Date.now() });

        // Reason kontrolü
        let reasonText = args.length > 0 ? args.join(' ') : 'Sebep belirtilmedi';

        const embed = new MessageEmbed()
            .setTitle('AFK Moduna Geçildi')
            .setDescription(`**Sebep:** ${reasonText}`)
            .setColor('#ff0000');
   
        message.channel.send({ embeds: [embed] })
            .catch(err => console.error('Message sending error:', err));
    }
};

Bunu deneyin bir de.
Bu sefer BOT çökmedi ama hata verdi, komut çalışmadı :(

Kod:
Message sending error: DiscordAPIError: Cannot send an empty message
    at RequestHandler.execute (C:\dcbot\Komisan\node_modules\discord.js\src\rest\RequestHandler.js:154:13)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async RequestHandler.push (C:\dcbot\Komisan\node_modules\discord.js\src\rest\RequestHandler.js:39:14) {
  method: 'post',
  path: '/channels/1230606508606226562/messages',
  code: 50006,
  httpStatus: 400
}

AFK çalışmış hocam bu arada ama AFK modundasınız mesajı gelmiyor ve çıktıda hata veriyor üstteki gibi.
 
Son düzenleme:
Mesaj gönderirken v12'nin API'ını kullanmamışsınız AFK.js scriptinde: message.channel.send({ embeds: [embed] });. Halbuki index.js'te doğru kullanmışsınız aslında.

v12'den v13'e geçişteki değişiklikler için şuraya göz atabilirsiniz: discord.js Guide.

v12 için şu şekilde yazmanız gerekiyor: message.channel.send(embed);.
v12'nin API dokümantasyonu: Discord.js Guide.
 
Mesaj gönderirken v12'nin API'ını kullanmamışsınız AFK.js scriptinde: message.channel.send({ embeds: [embed] });. Halbuki index.js'te doğru kullanmışsınız aslında.

v12'den v13'e geçişteki değişiklikler için şuraya göz atabilirsiniz: discord.js Guide.

v12 için şu şekilde yazmanız gerekiyor: message.channel.send(embed);.
v12'nin API dokümantasyonu: Discord.js Guide.
Şöyle hata alıyorum:
Kod:
const { MessageEmbed } = require('discord.js');

module.exports = {
    name: 'afk',
    description: 'Kullanıcıyı AFK moduna alır.',
    execute(message, args, AFK) {
        const reason = args.join(' ') || 'Sebep belirtilmedi';
        AFK.set(message.author.id, { reason: reason, time: Date.now() });

        // Reason kontrolü
        let reasonText = args.length > 0 ? args.join(' ') : 'Sebep belirtilmedi';

        const embed = new MessageEmbed()
            .setTitle('AFK Moduna Geçildi')
            .setDescription(`**Sebep:** ${reasonText}`)
            .setColor('#ff0000');
    
        message.channel.send(embed);
            .catch(err => console.error('Message sending error:', err));
    }
};

AFK.js:

const { MessageEmbed } = require('discord.js');

module.exports = {
name: 'afk',
description: 'Kullanıcıyı AFK moduna alır.',
execute(message, args, AFK) {
const reason = args.join(' ') || 'Sebep belirtilmedi';
AFK.set(message.author.id, { reason: reason, time: Date.now() });

// Reason kontrolü
let reasonText = args.length > 0 ? args.join(' ') : 'Sebep belirtilmedi';

const embed = new MessageEmbed()
.setTitle('AFK Moduna Geçildi')
.setDescription(`**Sebep:** ${reasonText}`)
.setColor('#ff0000');

message.channel.send(embed);
.catch(err => console.error('Message sending error:', err));
}
};
 
Hatalı kısmı alıntılıyorum, hatayı sizin bulmanızı rica edeceğim. : )

JavaScript:
message.channel.send(embed);
    .catch(err => console.error('Message sending error:', err));

Daha faydalı olacaktır direkt göstermektense.
 
Hatalı kısmı alıntılıyorum, hatayı sizin bulmanızı rica edeceğim. : )

JavaScript:
message.channel.send(embed);
    .catch(err => console.error('Message sending error:', err));

Daha faydalı olacaktır direkt göstermektense.
Yanlış yaptığımı anladım sanırım hocam ama nasıl düzelteceğimi bilmiyorum 😞
 
Yanlış yaptığımı anladım sanırım hocam ama nasıl düzelteceğimi bilmiyorum 😞

Oldukça küçük hatta tek bir karakterden kaynaklanan bir hata. Bulmaya çalışmak sizin için öğretici olacaktır. Syntax hatası olduğunu söyleyebiliriz sanırım. İyice inceleyin.

Aslında VS Code kullanıyorsanız editörde bu hataları görebiliyor olmalısınız. Galiba eklenti gerekmiyor. Kullanmıyorsanız da kullanmanızı tavsiye ederim. Bir de üstüne eklenti olarak Error Lens'i öneririm.