Bu sorunun olası iki sebebi bulunmaktadır. İlki, Node.js tarafından belirlenen 10 olay dinleyici (Event Listener) sınırını aşmış olmanızdır. İkincisi ise, kazara olay dinleyicileri bir döngü içine alarak bir olay dinleyicisinin birden çok kez çağrılmasına neden olmanızdır. İlk olarak, lütfen ikinci durumu kontrol edin.Eğer olay dinleyicilerini döngü içine almadıysanız ve 10'dan fazla olay dinleyicisi kullanıyorsanız,
yazarak olay dinleyici sınırını 15'e yükseltebilirsiniz. Ancak bu, en doğru çözüm değildir. Olay dinleyici sayısının artması, botunuzun kullanmış olduğu RAM miktarının da artmasına yol açar. Bu nedenle, botunuza eklediğiniz her bir özellik için ayrı bir olay dinleyici oluşturmak yerine, bu özellikleri fonksiyonlar haline getirip ilgili olay dinleyicisini bir kez oluşturarak bu fonksiyonları o oluşturulan olay dinleyicisi içinde çağırmanız daha iyidir. Bu yaklaşım, botunuzun kullandığı RAM miktarını büyük ölçüde azaltacaktır.
Örnek Hatalı Kod:
Örnek Düzeltilmiş Kod:
JavaScript:
// CommonJS
require('events').EventEmitter.defaultMaxListeners = 15
//ESM
import {EventEmitter} from "events"
EventEmitter.defaultMaxListeners = 15
yazarak olay dinleyici sınırını 15'e yükseltebilirsiniz. Ancak bu, en doğru çözüm değildir. Olay dinleyici sayısının artması, botunuzun kullanmış olduğu RAM miktarının da artmasına yol açar. Bu nedenle, botunuza eklediğiniz her bir özellik için ayrı bir olay dinleyici oluşturmak yerine, bu özellikleri fonksiyonlar haline getirip ilgili olay dinleyicisini bir kez oluşturarak bu fonksiyonları o oluşturulan olay dinleyicisi içinde çağırmanız daha iyidir. Bu yaklaşım, botunuzun kullandığı RAM miktarını büyük ölçüde azaltacaktır.
Örnek Hatalı Kod:
JavaScript:
client.on('messageCreate', message => {
// Spam kontrolü
});
client.on('messageCreate', message => {
// Kullanıcıya xp eklenmesi
});
Örnek Düzeltilmiş Kod:
JavaScript:
client.on("messageCreate", message => {
spamControl(message)
addXp(message)
})