Arkadaşlar, bot otomatik olarak sonuç belirten mesajları da siliyor ve "DiscordAPIError[40060]: Interaction has already been acknowledged." hatası alıyorum. Nasıl çözerim?
JavaScript:
const { SlashCommandBuilder } = require('@discordjs/builders');
const { PermissionsBitField, EmbedBuilder, Colors } = require('discord.js');
module.exports = {
data: new SlashCommandBuilder()
.setName('sil')
.setDescription('Belirtilen sayı kadar mesajı siler. (1-99)')
.addIntegerOption(option =>
option.setName('sayı')
.setDescription('Silinecek mesaj sayısı (1-99)')
.setRequired(true)
.setMinValue(1)
.setMaxValue(99)
),
async execute(interaction) {
const count = interaction.options.getInteger('sayı');
// Yetki kontrolü
if (!interaction.member.permissions.has(PermissionsBitField.Flags.ManageMessages)) {
return interaction.reply({
content: '❌ Bu komutu kullanmak için `Mesajları Yönet` yetkisine sahip olmalısınız.',
ephemeral: true
});
}
// Botun yetkisi kontrolü
if (!interaction.guild.members.me.permissions.has(PermissionsBitField.Flags.ManageMessages)) {
return interaction.reply({
content: '❌ Mesajları silmek için yeterli yetkim yok. Lütfen `Mesajları Yönet` yetkisini verin.',
ephemeral: true
});
}
try {
const deleted = await interaction.channel.bulkDelete(count, true); // true = eski mesajları atla
// Silinen mesaj sayısı 0 ise
if (deleted.size === 0) {
return interaction.reply({
content: '⚠️ Hiçbir mesaj silinemedi. Mesajlar 14 günden eski olabilir.',
ephemeral: true
});
}
const embed = new EmbedBuilder()
.setColor(Colors.Green)
.setTitle('🧹 Mesajlar Silindi')
.setDescription(`Toplamda **${deleted.size}** mesaj başarıyla silindi.`)
.addFields(
{ name: '🕒 Silinme Zamanı', value: new Date().toLocaleString(), inline: true },
{ name: '👤 İşlemi Yapan', value: interaction.user.tag, inline: true }
)
.setThumbnail(interaction.user.displayAvatarURL({ dynamic: true }))
.setFooter({ text: 'Silme İşlemi', iconURL: interaction.client.user.displayAvatarURL() })
.setTimestamp();
await interaction.reply({
content: `✅ ${deleted.size} mesaj başarıyla silindi.`,
embeds: [embed]
});
} catch (error) {
console.error('Silme hatası:', error);
return interaction.reply({
content: '❌ Mesajlar silinirken bir hata oluştu.',
ephemeral: true
});
}
}
};