V13 Sürümünü Kurma
discord.js v13 ün kullanılması için v13 sürümüne terminalimizden güncellememiz gerekir eğer glitch kullanıyorsanız package dosyanızdan " add-package " kısmından güncellemesini yapabilirsiniz.
Sürüm kontrolü için terminalimize;
---------------------------------------
- node -v
---------------------------------------
yazalım sürüm hala v12 de ise v13 e şu komutlarla yükseltelim.
---------------------------------------
- npm install discord.js
- npm install discord.js @discord.js/voice
---------------------------------------
evet artık v13 de ses ve metin olarak ikiye bölündü discord.js kimisi için iyi kimisi için de kötü oldu. Eğer hala sürümünüz v12 de kaldıysa tüm sürümleri silip en güncelini kurmak için aşağıdaki komutları izleyin.
---------------------------------------
- npm uninstall discord.js
- npm install discord.js
---------------------------------------
bu komutlar discord.js i kaldırıp en baştan kuracaktır.
API Sürümü Güncellemesi
discord.js v13, güncellemesiyle Discord API v9'a geçiş yapıyor, eski sürümün desteği 30 nisanda bitiyor malesef ama yeni sürümde birçok harika özellik ve yenilik bizleri bekliyor.
Eğik Çizgi Komutları Artık Stabil
discord.js v12 de eğik çizgi komutlarını az çok ta olsa kullanabiliyorduk ama beta olduğu için baya bir eksiği vardı, artık discord.js v13 de eğik çizgi komutları daha stabil ve daha kolay. Yeni gelen 3 adet class bizlerle bunlar; " MessageActionRow " , " MessageButton " ve " MessageSelectMenu " eğer bu konu hakkında daha fazla bilgi öğrenmek istiyorsanız mesaj bileşenleri linkine tıklayarak kılavuzu okuyabilirsiniz.
Discord Ses Modülü Ayrılıyor
Ses desteği artık kendi başına bir modül oluyor, Artık @discord.js/voice modülünü yüklemek ve kullanmak gerekiyor. Discord Voice API de geldi.
Yaygın Olarak Kullanılan Yöntemler Değişiyor!
Etkileşimlerin kullanıma sunulması ve kullanıcıların " MessageOptions " ile bir yerleştirme göndermek istemesinin çok yaygın hale gelmesiyle, mesaj gönderen yöntemler artık tek bir parametreyi zorunlu kılıyor. Bu, bir dize, " MessagePayload " veya " MessageOptions " bu yöntemin değişkeni olabilir.
Ek olarak, botlar tarafından gönderilen tüm mesajlar artık 10 adede kadar yerleştirmeyi destekliyor. Sonuç olarak, " embed " kalktı yerine " embeds "geldi.
Aşşağıya bir kaç satır örnek bırakalım. ( Kırmızılar eski, yeşiller yeni)
-------------------------------------------------------------------
- channel.send(embed);
+ channel.send({ embeds: [embed, embed2] });
- channel.send('Merhaba!', { embed });
+ channel.send({ content: 'Merhaba!', embeds: [embed, embed2] });
- interaction.reply('Merhaba!', { ephemeral: true });
+ interaction.reply({ content: 'Merhaba!', ephemeral: true });
-------------------------------------------------------------------
" MessageEmbed#attachFiles " kaldırıldı, dosyalar artık gömme yerine doğrudan iletiye eklenmelidir.
-------------------------------------------------------------------
- const embed = new Discord.MessageEmbed().setTitle('EmreZeriX-Cyber Akademi').attachFiles(['./image1.png', './image2.jpg']);
- channel.send(embed);
+ const embed = new Discord.MessageEmbed().setTitle('EmreZeriX-Cyber Akademi');
+ channel.send({ embeds: [embed], files: ['./image1.png', './image2.jpg'] });
-------------------------------------------------------------------
Ve " code " , " split " seçenekleri kaldırıldı. " Formatters.codeBlock" bu işlevsellik artık ve " Util.splitMessage " yardımcıları gibi manuel olarak ele alınmalıdır.
Amaçlar
discord.js v13, Discord API v9'a geçtiğinden artık botunuzun kullandığı tüm amaçları istemci yapıcısında belirtmeniz gerekiyor. " İnstents " de " ClientOptions#ws#intents " e taşındı. Ve kötü amaçlı botları engellemek için " Intents.ALL " artık kaldırıldı.
İzin Verilen İfadeler
" clientOptions.disableMentions " kaldırıldı ve yerine " clientOptions.allowedMentions " geldi. Discord API, artık botların söz ayrıştırma üzerinde belirli kimliğe kadar çok daha ayrıntılı kontrol sağlamasına izin veriyor.
----------------------------------------------------------------------
- const client = new Discord.Client({ disableMentions: 'everyone' });
+ const client = new Discord.Client({ allowedMentions: { parse: ['users', 'roles'], repliedUser: true } });
----------------------------------------------------------------------