🧠 Gelişmiş Özellikler & Pluginler
Context Sistemi (ctx)
ctx nesnesi hem Mesaj (Prefix) hem de Etkileşim (Slash/Button) verilerini normalize eder:
ctx.user: Eylemi gerçekleştiren kullanıcı (User nesnesi).ctx.guild: Sunucu nesnesi (varsa).ctx.channel: Kanal nesnesi (varsa).ctx.reply(content | options): Akıllı yanıt sistemi. Interaction isereply(), mesaj isereply()/send()yapar.ctx.deferReply(ephemeral?): Yanıtı geciktirir (sadece Interaction).ctx.editReply(content | options): Geciktirilmiş yanıtı düzenler.ctx.followUp(content | options): Yeni bir yanıt gönderir.ctx.showModal(modal): Bir modal formu açar (sadece Interaction).ctx.values: Modal submit eyleminde form verilerine erişir.ctx.args: Prefix komutlarında kelime dizisi, Slash komutlarında opsiyon değerleri.ctx.isInteraction: Eylemin bir Interaction (Slash/Button) olup olmadığını belirtir.ctx.createdAt: Eylemin oluşturulma zamanı.
Dinamik & Recursive Yükleme
discordjs-nextgen dosya yapınızı özgürce düzenlemenize olanak tanır. Alt klasörler otomatik olarak taranır (recursive):
1src/2 commands/3 general/4 ping.ts5 help.ts6 admin/7 ban.ts8 kick.ts9 events/10 guild/11 ready.ts12 message/13 messageCreate.ts
app.prefix({ folder: 'commands' }) veya app.events('events') dediğinizde, framework tüm alt klasörleri dolaşarak dosyaları otomatik olarak yükler.
Middleware Sistemi
Kendi ara yazılımlarınızı yazın. Middleware'ler komut çalışmadan önce çalışır:
1app.use(async (ctx, next) => {2 // Komut çalışmadan önce:3 Logger.info(`${ctx.user.tag} bir eylem başlattı.`);45 await next(); // Komutu (veya bir sonraki middleware'i) çalıştır67 // Komut bittikten sonra:8 Logger.success(`Eylem tamamlandı.`);9});
Plugin Sistemi
Botunuzu modüler parçalarla (plugin) genişletin. Büyük projelerde kodunuzu organize etmenize yardımcı olur.
1app.use({2 name: 'my-plugin',3 setup: (bot) => {4 bot.on('ready', (client) => {5 Logger.info(`${client.user.tag} için plugin hazır!`);6 });7 }8});