Atom Node JavaScript

Billy Bridger

Femtopat
Katılım
21 Ağustos 2020
Mesajlar
20
Merhaba arkadaşlar atomda node.js çalışmamda sıkıntı çıkıyor Bot kodladım botumun özelliği bir kullanıcıyı banladığımda onu discordun bir odasında belirtmesi ve resim göndermesi fakat botu çalıştırıyorum birisini engelliyorum ama bana şu hatayı veriyor :


C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\@discordjs\collection\dist\index.js:159
fn = fn.bind(thisArg);
^

TypeError: fn.bind is not a function
at Map.find (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\@discordjs\collection\dist\index.js:159:21)
at Client.<anonymous> (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\bot.js:51:48)
at Client.emit (events.js:315:20)
at Object.module.exports [as GUILD_BAN_ADD] (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\discord.js\src\client\websocket\handlers\GUILD_BAN_ADD.js:15:29)
at WebSocketManager.handlePacket (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\ws\lib\event-target.js:125:16)
at WebSocket.emit (events.js:315:20)
at Receiver.receiverOnMessage (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\ws\lib\websocket.js:797:20)
 
Tamamdır işte botun ana kodları yani bot.js kodları :

const Discord = require('discord.js');
const client = new Discord.Client();
const ayarlar = require('./ayarlar.json');
const chalk = require('chalk');
const fs = require('fs');
const moment = require('moment');
require('./util/eventLoader')(client);

var prefix = ayarlar.prefix;

const log = message => {
console.log(`[${moment().format('YYYY-MM-DD HH:mm:ss')}] ${message}`);
};

client.commands = new Discord.Collection();
client.aliases = new Discord.Collection();
fs.readdir('./komutlar/', (err, files) => {
if (err) console.error(err);
log(`${files.length} komut yüklenecek.`);
files.forEach(f => {
let props = require(`./komutlar/${f}`);
log(`Yüklenen komut: ${props.help.name}.`);
client.commands.set(props.help.name, props);
props.conf.aliases.forEach(alias => {
client.aliases.set(alias, props.help.name);
});
});
});

client.reload = command => {
return new Promise((resolve, reject) => {
try {
delete require.cache[require.resolve(`./komutlar/${command}`)];
let cmd = require(`./komutlar/${command}`);
client.commands.delete(command);
client.aliases.forEach((cmd, alias) => {
if (cmd === command) client.aliases.delete(alias);
});
client.commands.set(command, cmd);
cmd.conf.aliases.forEach(alias => {
client.aliases.set(alias, cmd.help.name);
});
resolve();
} catch (e){
reject(e);
}
});
};

client.on('guildBanAdd' , (guild, user) => {
let aramızakatılanlar = guild.channels.cache.find('name', 'aramıza-katılanlar');
if (!aramızakatılanlar) return;
aramızakatılanlar.send('
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
**Adalet dağıtma zamanı gelmiş!** '+ user.username +'**Bakıyorum da suç işlemiş,Yargı dağıtmaya devam** ✊ ✍ 🕵' );
});

client.load = command => {
return new Promise((resolve, reject) => {
try {
let cmd = require(`./komutlar/${command}`);
client.commands.set(command, cmd);
cmd.conf.aliases.forEach(alias => {
client.aliases.set(alias, cmd.help.name);
});
resolve();
} catch (e){
reject(e);
}
});
};

client.unload = command => {
return new Promise((resolve, reject) => {
try {
delete require.cache[require.resolve(`./komutlar/${command}`)];
let cmd = require(`./komutlar/${command}`);
client.commands.delete(command);
client.aliases.forEach((cmd, alias) => {
if (cmd === command) client.aliases.delete(alias);
});
resolve();
} catch (e){
reject(e);
}
});
};

client.on('message', msg => {
if (msg.content.toLowerCase() === 'sa') {
msg.reply('Aleyküm Selam Hoşgeldin !');
}
if (msg.content.toLowerCase() === 'günaydın') {
msg.reply('Günaydın Dostum!');
}
if (msg.content.toLowerCase() === 'merhaba') {
msg.reply('Merhaba Dostum!');
}
if (msg.content.toLowerCase() === '!hiraes') {
msg.reply('Hikayem Yakında!');
}
if (msg.content.toLowerCase() === '!dc') {
msg.reply('Buyurun Discordumuz:Discord | Your Place to Talk and Hang Out
}
if (msg.content.toLowerCase() === '!website') {
msg.reply('Sitemiz : Urio'Lest
}

});

client.elevation = message => {
if(!message.guild) {
return; }
let permlvl = 0;
if (message.member.hasPermission("BAN_MEMBERS")) permlvl = 2;
if (message.member.hasPermission("ADMINISTRATOR")) permlvl = 3;
if (message.author.id === ayarlar.sahip) permlvl = 4;
return permlvl;
};

var regToken = /[\w\d]{24}\.[\w\d]{6}\.[\w\d-_]{27}/g;

client.on('warn', e => {
console.log(chalk.bgYellow(e.replace(regToken, 'that was redacted')));
});

client.on('error', e => {
console.log(chalk.bgRed(e.replace(regToken, 'that was redacted')));
});

client.login(ayarlar.token);
 
Böyle rastgele yardım istenmez. Neyin ne olduğunu, JavaScript biliyor musun öncelikle?
evet biliyorum
fn'yi tanımlamamışsın. Kodlarını paylaşırsan yardımcı olabilirim.
Birinden yardım istedim ve bana şundan kaynaklanııyor dediler hata :
----------------------------------------------------
- someCollection.find('property', value);
+ someCollection.find(element => element.property === value)
Collection#find can only be used with a function rather than a property-value pair as in previous versions.
 
Son düzenleme:
"let aramızakatılanlar" kısmını

let aramızakatılanlar = guild.channels.cache.find(ch => ch.name === "aramıza-katılanlar")

ile değiştirmelisin. Ayrıca ı, ü, ö gibi karakterleri tanımlama yaparken kullanmamanı öneririm.
 
"let aramızakatılanlar" kısmını

let aramızakatılanlar = guild.channels.cache.find(ch => ch.name === "aramıza-katılanlar")

ile değiştirmelisin. Ayrıca ı, ü, ö gibi karakterleri tanımlama yaparken kullanmamanı öneririm.
Söylediklerini yaptım fakat bu sefer de şu hatayı aldım acaba dediğin gibi karakter hatasımı alıyorum :


fn = fn.bind(thisArg);
^

TypeError: fn.bind is not a function
at Map.find (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\@discordjs\collection\dist\index.js:159:21)
at Client.<anonymous> (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\bot.js:51:48)
at Client.emit (events.js:315:20)
at Object.module.exports [as GUILD_BAN_ADD] (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\discord.js\src\client\websocket\handlers\GUILD_BAN_ADD.js:15:29)
at WebSocketManager.handlePacket (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\ws\lib\event-target.js:125:16)
at WebSocket.emit (events.js:315:20)
at Receiver.receiverOnMessage (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\ws\lib\websocket.js:797:20)
 
Kodlar iç içe girmiş ve görmesi çok zor açıkcası, bu konuya uygun bir şekilde paylaşman işleri daha hızlandırır. Sosyal'de nasıl kod paylaşılır? - Technopat Sosyal

İlk önerim String değerleri dışındaki kodların tamamında latin karakterler kullanman, özel karakter (ı, ü) gibi karakterler kullanma.

Ayrıca kanal için isim kullanmak pek mantıklı değil, onun yerine kanal ID 'sini kullanman daha doğru olur zira birisi banlandığında aynı isimde olan bütün kanallara bu mesaj gönderilir. Kanal ID'sini elde ettikten sonra "guildBanAdd " bölümünü bu şekilde düzenle.

const kanal = client.channels.cache.get("Kanal-ID");
if (!kanal) return;
kanal.send("senin mesajin");
 
JavaScript:
C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\@discordjs\collection\dist\index.js:159
            fn = fn.bind(thisArg);
                    ^

TypeError: fn.bind is not a function
    at Map.find (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\@discordjs\collection\dist\index.js:159:21)
    at Client.<anonymous> (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\bot.js:51:48)
    at Client.emit (events.js:315:20)
    at Object.module.exports [as GUILD_BAN_ADD] (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\discord.js\src\client\websocket\handlers\GUILD_BAN_ADD.js:15:29)
    at WebSocketManager.handlePacket (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
    at WebSocketShard.onPacket (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
    at WebSocketShard.onMessage (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
    at WebSocket.onMessage (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\ws\lib\event-target.js:125:16)
    at WebSocket.emit (events.js:315:20)
    at Receiver.receiverOnMessage (C:\Users\user\Desktop\Talha Kaçar\Software\Hiraes\node_modules\ws\lib\websocket.js:797:20)

İşte hata kodum bu önerilerini de yapıcam fakat bu hata koduyla ilgili yanıtını bekliyorum.
Kodlar iç içe girmiş ve görmesi çok zor açıkcası, bu konuya uygun bir şekilde paylaşman işleri daha hızlandırır. Sosyal'de nasıl kod paylaşılır? - Technopat Sosyal

İlk önerim String değerleri dışındaki kodların tamamında latin karakterler kullanman, özel karakter (ı, ü) gibi karakterler kullanma.

Ayrıca kanal için isim kullanmak pek mantıklı değil, onun yerine kanal ID 'sini kullanman daha doğru olur zira birisi banlandığında aynı isimde olan bütün kanallara bu mesaj gönderilir. Kanal ID'sini elde ettikten sonra "guildBanAdd " bölümünü bu şekilde düzenle.

const kanal = client.channels.cache.get("Kanal-ID");
if (!kanal) return;
kanal.send("senin mesajin");
Çok Teşekkür ederim kanal ismini kullanmadım sadece İD kullandım ve oldu herşey için teşekkürler !
 
Son düzenleme:
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı