Merhaba arkadaşlar, bugün sizlere Discord.js v14 ve croxydb kullanarak basit bir AFK sistemi nasıl yapılır onu göstereceğim.
Bu sistem sayesinde kullanıcılar
Kurulum için:
---
Öncelikle bir /afk komutu ekleyelim:
---
Bunu da messageCreate event’ine ekliyoruz:
---
---
Bu sistem ile sunucularınızda basit ve işlevsel bir AFK özelliği ekleyebilirsiniz.
Daha da geliştirmek isterseniz, AFK süresini de kaydedip "ne kadar süredir AFK" bilgisini gösterebilirsiniz.
Bu sistem sayesinde kullanıcılar
/afk
komutu ile AFK moduna geçebilir ve biri onları etiketlediğinde AFK olduklarını sebebiyle birlikte görebilir. Ayrıca mesaj yazdıklarında AFK durumları otomatik olarak kalkar.
Kullanılan Modüller
- discord.js@14
- croxydb
Kurulum için:
Bash:
npm install discord.js croxydb
---
AFK Komutu
Öncelikle bir /afk komutu ekleyelim:
Kod:
const { SlashCommandBuilder } = require("discord.js");
const db = require("croxydb");
module.exports = {
data: new SlashCommandBuilder()
.setName("afk")
.setDescription("AFK moduna geçersiniz.")
.addStringOption(option =>
option.setName("sebep")
.setDescription("AFK olma sebebiniz")
.setRequired(false)
),
async execute(interaction) {
const sebep = interaction.options.getString("sebep") || "Sebep belirtilmemiş.";
db.set(`afk_${interaction.user.id}`, sebep);
await interaction.reply(`✅ ${interaction.user} AFK moduna geçtin! \n📌 Sebep: \`${sebep}\``);
}
};
---
AFK Kontrol Sistemi
Bunu da messageCreate event’ine ekliyoruz:
Kod:
const db = require("croxydb");
const { EmbedBuilder } = require("discord.js");
client.on("messageCreate", async message => {
if (message.author.bot) return;
// Kullanıcı AFK ise AFK durumunu kaldır
const afkSebep = await db.get(`afk_${message.author.id}`);
if (afkSebep) {
await db.delete(`afk_${message.author.id}`);
message.reply("🔔 AFK modundan çıktın!");
}
// Eğer mesajda bir kullanıcı etiketlendiyse
const kullanıcı = message.mentions.users.first();
if (!kullanıcı) return;
const sebep = await db.get(`afk_${kullanıcı.id}`);
if (sebep) {
const afkEmbed = new EmbedBuilder()
.setColor("Blue")
.setDescription(`💤 ${kullanıcı} şu anda AFK!\n📌 Sebep: \`${sebep}\``);
message.reply({ embeds: [afkEmbed] });
}
});
---
Çalışma Mantığı
-
/afk sebep
yazdığınızda veritabanına sebep kaydedilir. - Biri sizi etiketlerse embed ile AFK olduğunuz bildirilir.
- Siz mesaj yazdığınız anda AFK kaydınız otomatik silinir.
---
Sonuç
Bu sistem ile sunucularınızda basit ve işlevsel bir AFK özelliği ekleyebilirsiniz. Daha da geliştirmek isterseniz, AFK süresini de kaydedip "ne kadar süredir AFK" bilgisini gösterebilirsiniz.