🧠 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 ise reply(), mesaj ise reply()/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.ts
5 help.ts
6 admin/
7 ban.ts
8 kick.ts
9 events/
10 guild/
11 ready.ts
12 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ı.`);
4
5 await next(); // Komutu (veya bir sonraki middleware'i) çalıştır
6
7 // 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});