const Discord = require('discord.js');
const client = new Discord.Client();
const ayarlar = require('./ayarlar.json');
const chalk = require('chalk');
const moment = require('moment');
var Jimp = require('jimp');
const { Client, Util } = require('discord.js');
const weather = require('weather-js')
const fs = require('fs');
const db = require('quick.db');
const http = require('http');
const express = require('express');
require('./util/eventLoader.js')(client);
const path = require('path');
const request = require('request');
const snekfetch = require('snekfetch');
const queue = new Map();
const YouTube = require('simple-youtube-api');
const ytdl = require('ytdl-core');
const app = express();
app.get("/", (request, response) => {
console.log(Date.now() + " Ping tamamdır.");
response.sendStatus(200);
});
app.listen(process.env.PORT);
setInterval(() => {
http.get(`http://${process.env.PROJECT_DOMAIN}.glitch.me/`);
}, 280000);
var prefix = ayarlar.prefix;
const log = message => {
console.log(`${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.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.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('debug', e => {
// console.log(chalk.bgBlue.green(e.replace(regToken, 'that was redacted')));
// });
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')));
});
////log kanalı////
client.on("roleCreate", async role => {
var kanal = await db.fetch(`modlogK_${role.guild.id}`)
if (!kanal) return;
var kanal2 = role.guild.channels.find('name', kanal)
const embed = new Discord.RichEmbed()
.setColor("RANDOM")
.setAuthor(`Bir Rol Oluşturuldu!`, role.guild.iconURL)
.addField("Rol", `\`${role.name}\``, true)
.addField("Rol Rengi Kodu", `${role.hexColor}`, true)
kanal2.send(embed);
});
client.on("roleDelete", async role => {
var kanal = await db.fetch(`modlogK_${role.guild.id}`)
if (!kanal) return;
var kanal2 = role.guild.channels.find('name', kanal)
const embed = new Discord.RichEmbed()
.setColor("RANDOM")
.setAuthor(`Bir Rol Kaldırıldı!`, role.guild.iconURL)
.addField("Rol", `\`${role.name}\``, true)
.addField("Rol Rengi Kodu", `${role.hexColor}`, true)
kanal2.send(embed);
});
client.on("roleUpdate", async role => {
if (!log[role.guild.id]) return;
var kanal = await db.fetch(`modlogK_${role.guild.id}`)
if (!kanal) return;
var kanal2 = role.guild.channels.find('name', kanal)
const embed = new Discord.RichEmbed()
.setColor("RANDOM")
.setAuthor(`Bir Rol Güncellendi!`, role.guild.iconURL)
.addField("Rol", `\`${role.name}\``, true)
.addField("Rol Rengi Kodu", `${role.hexColor}`, true)
kanal2.send(embed);
});
client.on('channelCreate', async (channel,member) => {
var kanal = await db.fetch(`modlogK_${member.guild.id}`)
const hgK = member.guild.channels.find('name', kanal)
if (!hgK) return;
if (!channel.guild) return;
if (channel.type === "text") {
var embed = new Discord.RichEmbed()
.setColor(3066993)
.setAuthor(channel.guild.name, channel.guild.iconURL)
.setDescription(`<#${channel.id}> kanalı oluşturuldu. _(metin kanalı)_`)
.setFooter(`ID: ${channel.id}`)
embed.send(embed);
};
if (channel.type === "voice") {
var embed = new Discord.RichEmbed()
.setColor("RANDOM")
.setAuthor(channel.guild.name, channel.guild.iconURL)
.setDescription(`${channel.name} kanalı oluşturuldu. _(sesli kanal)_`)
.setFooter(`ID: ${channel.id}`)
hgK.send({embed});
}
})
client.on('channelDelete', async channel => {
const fs = require('fs');
var kanal = await db.fetch(`modlogK_${channel.guild.id}`)
const hgK = channel.guild.channels.find('name', kanal)
if (!hgK) return;
if (channel.type === "text") {
let embed = new Discord.RichEmbed()
.setColor("RANDOM")
.setAuthor(channel.guild.name, channel.guild.iconURL)
.setDescription(`${channel.name} kanalı silindi. _(metin kanalı)_`)
.setFooter(`ID: ${channel.id}`)
hgK.send({embed});
};
if (channel.type === "voice") {
let embed = new Discord.RichEmbed()
.setColor("RANDOM")
.setAuthor(channel.guild.name, channel.guild.iconURL)
.setDescription(`${channel.name} kanalı silindi. _(sesli kanal)_`)
.setFooter(`ID: ${channel.id}`)
hgK.send({embed});
}
});
client.on("guildCreate", guild => {
const tesekkurler = new Discord.RichEmbed()
.setColor("RANDOM")
.setTitle("Teşekkürler")
.setFooter(`${ayarlar.botadı}`)
.setTimestamp()
.setDescription(`Beni sunucuya eklediğin için teşekkürler herhangi bir sorunda destek sunucuma gelebilirsin. [Destek Sunucum](https://bit.ly/35uTZRN)`)
guild.owner.send(tesekkurler)
});
client.on('guildMemberAdd', async (member, guild, message) => {
let hgbbkanal = await db.fetch(`hgbbkanal_${member.guild.id}`)
if (!hgbbkanal) return
var embed = new Discord.RichEmbed()
.setTitle(`:inbox_tray: Bir Kişi, Sunucuya katıldı.`)
.addField(`**:newspaper: Sunucuya Katılan**: ${member.user.tag}`, `Hoşgeldin, Kuralları Okuyarak Devam Edebilirsin.`)
.setDescription(`Kurallarımızı Okuduktan Sonra Sohbet Etmeye Başlayabilirsin`)
.addField(`:tada:**Sunucudaki Kişi Sayısı**: ${member.guild.members.size} `, `Daha Fazla Kişi davet Ederek Bu Sayıyı Çoğaltabilirsin`)
.setTimestamp()
.setFooter(`${ayarlar.botadı}`)
.setColor('RANDOM')
member.guild.channels.get(hgbbkanal).send(embed)
let tag = await db.fetch(`tag_${member.guild.id}`)
if (!tag) return
member.setNickname(tag.replace('{uye}', member.user.username))
});
client.on('message', message => {
if (message.content === 'sa') {
message.reply("Aleyküm Selam Dostum, Nasılsın?")
}
});
client.on('message', message => {
if (message.content === 'iyi') {
message.reply('Öyleyse Bende iyi ');
}
});
client.on('message', message => {
if (message.content === 'iyiyim') {
message.reply("Öyleyse Bende iyiyim");
}
});
client.on('message', message => {
if (message.content === 'kötü') {
message.reply("Aaa? Niye ki Üzüldüm Bak şimdi")
}
});
client.on('message', message => {
if (message.content === 'nasılsın') {
message.reply('Ben iyiyim Peki Sen?');
}
});
//istediğiniz yere ekleyin bot.js de/Uyarılmadan önce aralıkta gönderilmesine izin verilen maksimum mesaj miktarı/Yasaklanmadan önce aralıkta gönderilmesine izin verilen maksimum ileti miktar.// ms kullanıcılarda zaman miktarı, yasaklanmadan önce aralık değişkeninin maksimumunu gönderebilir.// Uyarı mesajı, kullanıcıya hızlı gideceklerini belirten kullanıcıya gönderilir..//Yasak mesaj, yasaklanmış kullanıcıyı ,Banlar/Bir kullanıcının uyarılmadan önce bir zaman dilimi içinde gönderebileceği maksimum kopya sayısı//Bir kullanıcının yasaklanmadan önce bir zaman diliminde gönderebildiği maksimum kopya sayıs// Spamdan sonraki zaman// Spam Atan Kullanıcılar Verilecek R
client.on('message', msg => {
var emoj = client.emojis.get("668533310628167680")
if (msg.content.toLowerCase() === '<@643881402227621898>') {
if (!msg.guild.member(msg.author).hasPermission("BAN_MEMBERS")) {
msg.author.sendMessage(`Efendim, Ben, ${ayarlar.botadı}, Beni Kullanmak için Kullanman Gereken Prefix: ${ayarlar.prefix}`)
} else {
msg.reply(`Efendim, Ben ${ayarlar.botadı}, <a:rain:669067249407229991> Beni Kullanmak için Kullanman Gereken Prefix(ÖnEki): ${ayarlar.prefix}'dir. Şimdilik Hoşcakal.`);
}
}
});
client.on('guildMemberRemove', async (member, guild, message) => {
let hgbbkanal = await db.fetch(`hgbbkanal_${member.guild.id}`)
if (!hgbbkanal) return
var embed = new Discord.RichEmbed()
.setTitle("Biri Sunucudan Çıktı,")
.setDescription(`Çıkan Kişi: ${member.user.tag}`)
.addField(`Sunucuda Kalan Kişi Sayısı: ${member.guild.members.size}` ,`Bu Sayıyı Arkadaşlarını Davet Ederek Yükseltebilirsin`)
.addField(`Görüşürüz`, `Eğer Banlanmadıysan Kapımız Her Zaman Açık!`)
.setColor('RANDOM')
member.guild.channels.get(hgbbkanal).send(embed)
})
client.on('guildCreate', guild => {
var guilds = '662986133835087882';
var channeldi = '665565760873299979';
const embed = new Discord.RichEmbed()
.setColor("RANDOM")
.setAuthor(`Bir Sunucuya Başarılı Bir Şekilde Eklendim`)
.setThumbnail(guild.iconURL)
.addField("Sunucu Adı", guild.name)
.addField("Kurucu", guild.owner)
.addField("Sunucu ID", guild.id, true)
.addField("Toplam Kullanıcı", guild.memberCount, true)
.addField("Toplam Kanal", guild.channels.size, true)
client.guilds.get(guilds).channels.get(channeldi).send(embed);
});
client.on('guildDelete', guild => {
var guild = '662986133835087882';
var kanalid = '665659028432617502';
const embedw = new Discord.RichEmbed()
.setColor("RANDOM")
.setAuthor(`Atıldım`)
.setThumbnail(guild.iconURL)
.addField("Sunucu Adı", guild.name)
.addField("Kurucu", guild.owner)
.addField("Sunucu ID", guild.id, true)
.addField("Toplam Kullanıcı", guild.memberCount, true)
.addField("Toplam Kanal", guild.channels.size, true)
client.guilds.get(guild).channels.get(kanalid).send(embedw);
});
client.on('guildDelete', guild => {
const uzuldum = new Discord.RichEmbed()
.setTitle('Beni Sunucundan Attığına Üzüldüm')
.setDescription('Lütfen Beni Neden Attığını v!bug <neden> Olarak Açıklar Mısın?')
.addField("Beni Geri Eklemek İstersen", `[Buraya Tıklayabilirsin](https://bit.ly/2QrM7w6)`)
.addField(`${ayarlar.botadı} BOT Ekibi Olarak`, `Hepimiz Üzüldük Keşke Atmasaydın, Tabiki Geri Ekleyebilirsin TET Sâma BOT Ekibi Sunar..`)
guild.owner.send(uzuldum)
});
client.on("message", async message => {
if(message.content.startsWith(prefix)) return;
if(message.author.bot) return;
var id = message.author.id;
var gid = message.guild.id;
var xp = await db.fetch(`xp_${id}_${gid}`);
var lvl = await db.fetch(`lvl_${id}_${gid}`);
var xpToLvl = await db.fetch(`xpToLvl_${id}_${gid}`);
if(!lvl) {
db.set(`xp_${id}_${gid}`, 5);
db.set(`lvl_${id}_${gid}`, 1);
db.set(`xpToLvl_${id}_${gid}`, 100);
} else {
var random = Math.random() * (8 - 3) + 3;
db.add(`xp_${id}_${gid}`, random.toFixed());
console.log(xp);
if(xp > xpToLvl) {
db.add(`lvl_${id}_${gid}`, 1);
db.add(`xpToLvl_${id}_${gid}`, await db.fetch(`lvl_${id}_${gid}`) * 100);
var lvl = await db.fetch(`lvl_${id}_${gid}`);
message.channel.send("Tebrikler, " + message.author + ". Seviye atladın! Yeni seviyen: **" + lvl + "**");
var role = message.guild.roles.get(await db.fetch(`role_${gid}_${lvl}seviye`));
if(!role) return;
else {
message.member.addRole(role);
message.channel.send("Tebrikler! **" + lvl + "** seviye olarak @" + role.name + " rolünü kazandınız.");
}
}
}
});
client.on('message', async (message, member) => {
let ke = await db.fetch(`kufur_${message.guild.id}`)
if (ke === "kapali" || ke === undefined || ke === null){
return;
} else if (ke === "acik") {
let küfür = ["pezeveng", "porn", "amk", "amcık", "yarrak", "sik", "amına koduğum", "kaltak", "yavşak", "orospu", "piç", "ananı sikim", "sikik", "göt", "pezevenk", "gavat", "meme"]
if (küfür.some(word => message.content.includes(word))){
if (!message.member.hasPermission("BAN_MEMBERS")) {
message.delete();
const embed = new Discord.RichEmbed()
.setTitle("Bu Sunucuda Küfür Yasaklanmış")
.setDescription(`Lütfen Bir Daha Küfür Etme. Aksi Takdirde Sunucudan Atılabilirsin`)
.setFooter("CatBOT")
.setTimestamp()
.setColor("RANDOM")
message.channel.send(embed)
}
}
}
})
client.on('message', async (message, member) => {
let ke = await db.fetch(`reklam_${message.guild.id}`)
if (ke === "kapali" || ke === undefined || ke === null){
return;
} else if (ke === "acik") {
let reklam = ["discord.gg", "bit.ly", "http", "discord.gg/", "https", ".org", ".com", ".cf", ".tk", ".xyz", "www."]
if (reklam.some(word => message.content.includes(word))){
if (!message.member.hasPermission("BAN_MEMBERS")) {
message.delete();
const embed = new Discord.RichEmbed()
.setTitle("Bu Sunucuda Reklam Yasaklanmış")
.setDescription(`Bir Daha Reklam Yaparsan Atılabilir Veya Banlanabilirsin!`)
.setFooter(`${ayarlar.botadı}`)
.setTimestamp()
.setColor("RANDOM")
message.channel.send(embed)
}
}
}
})
const { GOOGLE_API_KEY } = require('./ayarlar.json');
const youtube = new YouTube(GOOGLE_API_KEY)
client.on('message', async msg => {
if (msg.author.bot) return undefined;
if (!msg.content.startsWith(prefix)) return undefined;
const args = msg.content.split(' ');
const searchString = args.slice(1).join(' ');
const url = args[
if (command === 'çal') {
const voiceChannel = msg.member.voiceChannel;
if (!voiceChannel) return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setTimestamp()
.setTitle("Şarkı Başlatılamıyor")
.setDescription(`**Lütfen Bir Sesli Kanala Giriş Yapınız** Aksi Takdirde Müzik Başlatılamayacak..`)
.setFooter(`${ayarlar.botadı}`));
const permissions = voiceChannel.permissionsFor(msg.client.user);
if (!permissions.has('CONNECT')) {
return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setTitle('Şarkı Başlatılamıyor')
.setDescription("**Lütfen Yetki Veriniz** Aksi Takdirde Müzik Başlatılamayacak.")
.setTimestamp()
.setFooter(`${ayarlar.botadı}`));
}
if (!permissions.has('SPEAK')) {
return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setTitle('Şarkı başlatılamıyor.')
.setDescription('**Lütfen mikrofonumu açınız**. Aksi Takdirde Müzik Başlatılamayacak.')
.setTimestamp()
.setFooter(`${ayarlar.botadı}`));
}
if (url.match(/^https?:\/\/(www.youtube.com|youtube.com)\/playlist(.*)$/)) {
const playlist = await youtube.getPlaylist(url);
const videos = await playlist.getVideos();
for (const video of Object.values(videos)) {
const video2 = await youtube.getVideoByID(video.id); // eslint-disable-line no-await-in-loop
await handleVideo(video2, msg, voiceChannel, true); // eslint-disable-line no-await-in-loop
}
return msg.channel.sendEmbed(new Discord.RichEmbed)
.setTitle(`**? | Oynatma Listesi: **${playlist.title}** Kuyruğa Eklendi!**`)
} else {
try {
var video = await youtube.getVideo(url);
} catch (error) {
try {
var videos = await youtube.searchVideos(searchString, 10);
let index = 0;
msg.channel.sendEmbed(new Discord.RichEmbed()
.setTitle(`${ayarlar.botadı} | Şarkı Seçimi`)
.setAuthor(`${msg.author.tag}`, msg.author.avatarURL)
.setDescription(`${videos.map(video2 => `**${++index} -** ${video2.title}`).join('\n')}`)
.setFooter('Lütfen 1-10 arasında bir rakam seçiniz 10 saniye içinde liste iptal edilecektir.')
.setTimestamp()
.setColor('RANDOM'));
try {
var response = await msg.channel.awaitMessages(msg2 => msg2.content > 0 && msg2.content < 11, {
maxMatches: 1,
time: 10000,
errors: ['time']
});
} catch (err) {
console.error(err);
return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setTitle('Seçim İptal Edilmiştir.')
.setDescription("Lütfen Tekrar Deneyiniz Bu sefer Seçiminizi 10 saniyede Yapınız Aksi Takdirde Seçim Yine İptal Edilecektir")
.setTimestamp()
.setFooter(`${ayarlar.botadı}`));
}
const videoIndex = parseInt(response.first().content);
var video = await youtube.getVideoByID(videos[videoIndex - 1].id);
} catch (err) {
console.error(err);
return msg.channel.sendEmbed(new Discord.RichEmbed()
.setFooter(`${ayarlar.botadı}`)
.setTimestamp()
.setColor('RANDOM')
.setTitle('Aradım Fakat Hiç Bir Sonuç Çıkmadı')
.setDescription(`Lütfen Şarkının ismini Doğru Giriniz. Eğer Doğru Girdiyseniz Ve Sonuç Bulunamıyorsa Diğer Şarkıları Deneyiniz Yine Bulunamıyorsa Lütfen ${ayarlar.prefix}bug Sonuç Bulunamadı Hatası Yazınız.`));
}
}
return handleVideo(video, msg, voiceChannel);
}
} else if (command === 'atla') {
if (!msg.member.voiceChannel) if (!msg.member.voiceChannel) return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setDescription('Lütfen öncelikle sesli bir kanala katılınız. Ve şarkı açınız')
.setTitle("Hiç Bir Şarkı Atlatılamadı")
.setFooter(`${ayarlar.botadı}`)
.setTimestamp());
if (!serverQueue) return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setTitle('Hiç Bir Müzik Atlatılamadı')
.setFooter(`${ayarlar.botadı}`)
.setTimestamp()
.setDescription(`Lütfen Önceliikle Sesli Bir Kanala Katılınız Ve Şarkı açınız`));
serverQueue.connection.dispatcher.end('Müzik Başarıyla Atlatıldı');
return undefined;
} else if (command === 'sonlandır') {
if (!msg.member.voiceChannel) if (!msg.member.voiceChannel) return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setDescription('Lütfen öncelikle sesli bir kanala katılınız.')
.setTitle("Şarkı Sonlandırılamdı")
.setFooter(`${ayarlar.botadı}`)
.setTimestamp());
if (!serverQueue) return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setTitle("Şarkı Durdurulamadı")
.setTimestamp()
.setFooter(`${ayarlar.botadı}`)
.setDescription('Çalınan Şarkı Bulunamadı.'));
msg.channel.send(`:stop_button: **${serverQueue.songs[0].title}** Adlı Müzik Durduruldu`);
serverQueue.songs = [];
serverQueue.connection.dispatcher.end('Müzik Bitti');
return undefined;
} else if (command === 'ses') {
if (!msg.member.voiceChannel) if (!msg.member.voiceChannel) return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setTitle("Ses Seviyesi Bulunamadı")
.setFooter(`${ayarlar.botadı}`)
.setTimestamp()
.setDescription('Lütfen öncelikle sesli bir kanala katılınız. Ondan Sonra Da Şarkı açıp Bu Komutu Kullanabilirsiniz'));
if (!serverQueue) return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setTimestamp()
.setTitle("Ses Seviyesi Bulunamadı")
.setFooter(`${ayarlar.botadı}`)
.setDescription('Hiç Bir Müzik Çalmamakta'));
if (!args[1]) return msg.channel.sendEmbed(new Discord.RichEmbed()
.setTitle("Ses Seviyesi")
.setDescription(`Şuanki Ses Seviyesi: **${serverQueue.volume}**`)
.setFooter(`${ayarlar.botadı}`)
.setTimestamp()
.setColor('RANDOM'))
serverQueue.volume = args[1];
serverQueue.connection.dispatcher.setVolumeLogarithmic(args[1] / 5);
return msg.channel.sendEmbed(new Discord.RichEmbed()
.setTitle("Lütfen Kulak Sağlığınız İçin Fazla Sesli Açmayın")
.setDescription(`:hammer: Ses Seviyesi Başarıyla Ayarlanıyor: **${args[1]}**`)
.setFooter(`${ayarlar.botadı}`)
.setTimestamp()
.setColor('RANDOM'));
} else if (command === 'çalan') {
if (!serverQueue) return msg.channel.sendEmbed(new Discord.RichEmbed()
.setTitle("Çalan Müzik Bulunmamakta")
.setFooter(`${ayarlar.botadı}`)
.setTimestamp()
.setDescription("Eğer Şimdi Müzik açarsanız Sıra Beklemiceksiniz")
.setColor('RANDOM'));
return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setTitle(`${ayarlar.botadı} | Çalan Müzik`)
.addField('Başlık', `[${serverQueue.songs[0].title}](${serverQueue.songs[0].url})`, true)
.addField("Süre", `${serverQueue.songs[0].durationm}:${serverQueue.songs[0].durations}`, true))
} else if (command === 'kuyruk') {
let index = 0;
if (!serverQueue) return msg.channel.sendEmbed(new Discord.RichEmbed()
.setTitle("Sırada Müzik Bulunmamakta")
.setDescription("Eğer Şimdi Müzik Açarsanız Kimseyi Beklemiceksiniz.")
.setFooter(`${ayarlar.botadı}`)
.setTimestamp()
.setColor('RANDOM'));
return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setTimestamp()
.setFooter(`${ayarlar.botadı}`)
.setTitle('Şarkı Kuyruğu')
.setDescription(`${serverQueue.songs.map(song => `**${++index} -** ${song.title}`).join('\n')}`))
.addField('Şu anda çalınan: ' + `${serverQueue.songs[0].title}`);
} else if (command === 'duraklat') {
if (serverQueue && serverQueue.playing) {
serverQueue.playing = false;
serverQueue.connection.dispatcher.pause();
return msg.channel.sendEmbed(new Discord.RichEmbed()
.setDescription(`Eğer Devam Ettirmek isterseniz ${ayarlar.prefix}devam Yazmanız Yeterlidir.`)
.setTitle("Şarkı Başarıyla Duraklatıldı")
.setFooter(`${ayarlar.botadı}`)
.setTimestamp()
.setColor('RANDOM'));
}
return msg.channel.send('Çalan Müzik Bulunmamakta');
} else if (command === 'devam') {
if (serverQueue && !serverQueue.playing) {
serverQueue.playing = true;
serverQueue.connection.dispatcher.resume();
return msg.channel.sendEmbed(new Discord.RichEmbed()
.setTitle('Şarkının Keyfini Çıkar')
.setDescription("Başarıyla Müzik devam ediyor.")
.setFooter(`${ayarlar.botadı}`)
.setTimestamp()
.setColor('RANDOM'));
}
return msg.channel.sendEmbed(new Discord.RichEmbed()
.setTitle("Çalan Müzik Bulunmamakta.")
.setDescription("Lütfen Bir Müzik açınız.")
.setFooter(`${ayarlar.botadı}`)
.setTimestamp()
.setColor('RANDOM'));
}
return undefined;
});
async function handleVideo(video, msg, voiceChannel, playlist = false) {
const serverQueue = queue.get(msg.guild.id);
const song = {
id: video.id,
title: video.title,
url: `https://www.youtube.com/watch?v=${video.id}`,
durationh: video.duration.hours,
durationm: video.duration.minutes,
durations: video.duration.seconds,
zg: video.raw.snippet.channelId,
best: video.channel.title,
views: video.raw.views,
};
if (!serverQueue) {
const queueConstruct = {
textChannel: msg.channel,
voiceChannel: voiceChannel,
connection: null,
songs: [],
volume: 5,
playing: true
};
queue.set(msg.guild.id, queueConstruct);
queueConstruct.songs.push(song);
try {
var connection = await voiceChannel.join();
queueConstruct.connection = connection;
play(msg.guild, queueConstruct.songs[0]);
} catch (error) {
console.error(`:warning: **Şarkı Sisteminde Problem Var Hata Nedeni: ${error}**`);
queue.delete(msg.guild.id);
return msg.channel.sendEmbed(new Discord.RichEmbed()
.setTitle(`:warning: **Şarkı Sisteminde Problem Var ${error}**`)
.setDescription(`Lütfen Daha Sonra Tekrar Deneyin Olmazsa ${error}'u Şu şekilde şikayet ediniz ${ayarlar.prefix}bug ${error}.`)
.setFooter("Şikayet Ettiyseniz Sorununuz En Kısa zamanda Çözülecektir")
.setTimestampl()
.setColor('RANDOM'))
}
} else {
serverQueue.songs.push(song);
console.log(serverQueue.songs);
if (playlist) return undefined;
return msg.channel.sendEmbed(new Discord.RichEmbed()
.setTitle(`:arrow_heading_up: **${song.title}** Adlı Müzik Kuyruğa Eklendi!`)
.setDescription('Şarkınız Sizden Önceki Şarkılar Bittiğinde Başlayacaktır')
.setFooter(`${ayarlar.botadı}`)
.setTimestamp()
.setColor('RANDOM'))
}
return undefined;
}
function play(guild, song) {
const serverQueue = queue.get(guild.id);
if (!song) {
serverQueue.voiceChannel.leave();
queue.delete(guild.id);
return;
}
console.log(serverQueue.songs);
const dispatcher = serverQueue.connection.playStream(ytdl(song.url))
.on('end', reason => {
if (reason === '**Yayın Akış Hızı Yeterli Değil.**') console.log('Müzik Bitti.');
else console.log(reason);
serverQueue.songs.shift();
play(guild, serverQueue.songs[0]);
})
.on('error', error => console.error(error));
dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
serverQueue.textChannel.sendEmbed(new Discord.RichEmbed()
.setTitle(`${ayarlar.botadı} | :microphone: Müzik Başladı`)
.addField('\nBaşlık', `[${song.title}](${song.url})`, true)
.addField("\nSes Seviyesi", `${serverQueue.volume}%`, true)
.addField("Süre", `${song.durationm}:${song.durations}`, true)
.addField("Video ID", `${song.id}`, true)
.addField("Kanal ID", `${song.zg}`, true)
.addField("Kanal İsmi", `${song.best}`, true)
.addField("Video Linki", `${song.url}`, true)
.setFooter(`${ayarlar.botadı}`)
.setTimestamp()
.setColor("RANDOM"))
}
client.on("guildMemberAdd", async member => {
let kanal = await db.fetch(`otok_${member.guild.id}`)
let rol = await db.fetch(`otorol_${member.guild.id}`)
let mesaj = db.fetch(`otomesaj_${member.guild.id}`)
if(!kanal) return
if(!mesaj) {
client.channels.get(kanal).send(':loudspeaker: :inbox_tray: Otomatik Rol Verildi Seninle Beraber `'+member.guild.memberCount+'` Kişiyiz! Hoşgeldin! `'+member.user.username+'`')
member.addRole(rol)
return
}
if(mesaj) {
var mesajs = await db.fetch(`otomesaj_${member.guild.id}`).replace("-uye-", `${member.user.tag}`).replace("-rol-", `${member.guild.roles.get(rol).name}`).replace("-server-", `${member.guild.name}`).replace("-uyesayisi-", `${member.guild.memberCount}`).replace("-botsayisi-", `${member.guild.members.filter(m => m.user.bot).size}`).replace("-bolge-", `${member.guild.region}`).replace("-kanalsayisi-", `${member.guild.channels.size}`)
member.addRole(rol)
client.channels.get(kanal).send(mesajs)
}
});
client.login(ayarlar.token);