- Yasaklandı
- #1
const keytr = require('keytr.js');
Banlı Üye
Selamın aleykum uzun zaman sonra muzik botu sizin için devreye giriyo o kadar istediniz bende sizi kırmadım artık müzik botunuz olacak!
JavaScript:
const { Client, Util } = require('discord.js');
const Discord = require('discord.js')
const { TOKEN, PREFIX, GOOGLE_API_KEY } = require('./müzik');
const YouTube = require('simple-youtube-api');
const youtube = new YouTube(GOOGLE_API_KEY);
const ytdl = require('ytdl-core')
const queue = new Map();
client.on('warn', console.warn);
client.on('error', console.error);
client.on('ready', () => console.log('Bot artık hazır!'));
client.on('disconnect', () => console.log('Bağlantım kesildi, bildiğinizden emin olun, şimdi tekrar bağlanacağım...'));
client.on('reconnecting', () => console.log('Tekrar bağlanıyorum!'));
client.on('message', async msg => { // eslint-disable-line
let prefix = await db.fetch(`prefix_${msg.guild.id}`) || "/";
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[1] ? args[1].replace(/<(.+)>/g, '$1') : '';
const serverQueue = queue.get(msg.guild.id);
let command = msg.content.toLowerCase().split(' ')[0];
command = command.slice(prefix.length)
if (command === 'çal') {
if (!msg.guild) {
const ozelmesajuyari = new Discord.RichEmbed()
.setDescription(`You can not use commands here.`)
return msg.author.sendEmbed(ozelmesajuyari); }
const voiceChannel = msg.member.voiceChannel;
if (!voiceChannel) return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setDescription(' ❎ | İlk olarak sesli bir kanala giriş yapmanız gerek.'));
const permissions = voiceChannel.permissionsFor(msg.client.user);
if (!permissions.has('CONNECT')) {
return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setDescription(' | Şuanda olduğunuz kanala girmek için gerekli izinlere sahip değilim.'));
}
if (!permissions.has('SPEAK')) {
return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setDescription(' | Şarkı başlatılamıyor. Lütfen mikrofonumu açınız.'));
}
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); // ehehehehu videomuzu bulalım
await handleVideo(video2, msg, voiceChannel, true); // ve gönderelim
}
return msg.channel.sendEmbed(new Discord.RichEmbed)
.setDescription(`✔ | Playlist ➢ **${playlist.title}** has been added to the queue!`);
} 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('Şarkı Seçimi')
.setDescription(`${videos.map(video2 => `**${++index} -** ${video2.title}`).join('\n')}`)
.setFooter('Lütfen 1-10 arasında bir rakam seçiniz 30 saniye içinde liste iptal edilecektir.')
.setColor('RANDOM'));
// en fazla 5 tane
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')
.setDescription('❎ | Şarkı seçimi iptal edildi. '));
}
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()
.setColor('RANDOM')
.setDescription(' ❎ | Herhangi bir arama sonucu elde edemedim.'));
}
}
return handleVideo(video, msg, voiceChannel);
}
} else if (command === 'geç') {
if (!msg.guild) {
const ozelmesajuyari = new Discord.RichEmbed()
.setDescription(`You can not use commands here.`)
return msg.author.sendEmbed(ozelmesajuyari); }
if (!msg.member.voiceChannel) return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setDescription(' ❎ | Lütfen öncelikle sesli bir kanala katılınız.'));
if (!serverQueue) return msg.channel.send(' ❎ | Kuyruk boş olduğu için geçemiyorum. ');
serverQueue.connection.dispatcher.end('Geç komudu kullanıldı.');
return undefined;
} else if (command === 'kapat') {
if (!msg.guild) {
const ozelmesajuyari = new Discord.RichEmbed()
.setDescription(`You can not use commands here.`)
return msg.author.sendEmbed(ozelmesajuyari); }
if (!msg.member.voiceChannel) return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setDescription(' ❎ | Lütfen öncelikle sesli bir kanala katılınız.'));
if (!serverQueue) return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setDescription(' ❎ | Şu anda herhangi bir şarkı çalmıyorum.'));
serverQueue.songs = [];
serverQueue.connection.dispatcher.end('Kapat komutu kullanıldı!');
return undefined;
} else if (command === 'ses') {
if (!msg.guild) {
const ozelmesajuyari = new Discord.RichEmbed()
.setDescription(`You can not use commands here.`)
return msg.author.sendEmbed(ozelmesajuyari); }
if (!msg.member.voiceChannel) return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setDescription(' ❎ | Lütfen öncelikle sesli bir kanala katılınız.'));
if (!serverQueue) return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setDescription(' ❎ | Şu anda herhangi bir şarkı çalmıyorum.'));
if (!args[1]) return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setDescription(` | Ses seviyesi: **${serverQueue.volume}**`));
serverQueue.volume = args[1];
if (args[1] > 10) return msg.channel.send({
embed: {
title: "",
color: 0xE50000,
description: "Lütfen 10'dan az yada 10 olarak bir sayı belirtin."
}
});
serverQueue.connection.dispatcher.setVolumeLogarithmic(args[1] / 5);
return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setDescription('Ses Seviyesi ' + `**${args[1]}**` + ' Olarak Ayarlandı.'));
} else if (command === 'çalınan') {
if (!msg.guild) {
const ozelmesajuyari = new Discord.RichEmbed()
.setDescription(`❕ | Şu anda hiçbir şey çalmıyorum.`)
return msg.author.sendEmbed(ozelmesajuyari); }
if (!serverQueue) return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setDescription(':x: | Şu anda hiçbir şey çalmıyorum.'));
return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.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') {
if (!serverQueue) return msg.channel.send('❎ | Şu anda hiçbir şey çalmıyorum. ');
return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setTitle('Şarkı Kuyruğu')
.setDescription(`${serverQueue.songs.map(song => `**-** ${song.title}`).join('\n')}`))
.addField('Şu anda çalınan: ' + `${serverQueue.songs[0].title}`);
} else if (command === 'durdur') {
if (!msg.guild) {
const ozelmesajuyari = new Discord.RichEmbed()
.setDescription(`You can not use commands here.`)
return msg.author.sendEmbed(ozelmesajuyari); }
if (serverQueue && serverQueue.playing) {
serverQueue.playing = false;
serverQueue.connection.dispatcher.pause();
return msg.channel.sendEmbed(new Discord.RichEmbed()
.setDescription('⏸ | Müzik durduruldu.')
.setColor('RANDOM'));
}
return msg.channel.send(' | Şu anda hiçbir şey çalmıyorum.');
} else if (command === 'devam') {
if (!msg.guild) {
const ozelmesajuyari = new Discord.RichEmbed()
.setDescription(`Burada komutu kullanamazsınız.`)
return msg.author.sendEmbed(ozelmesajuyari); }
if (serverQueue && !serverQueue.playing) {
serverQueue.playing = true;
serverQueue.connection.dispatcher.resume();
return msg.channel.sendEmbed(new Discord.RichEmbed()
.setColor('RANDOM')
.setDescription('▶ | Müzik devam ediyor.'));
}
return msg.channel.send('❎ | Şu anda hiçbir şey çalmıyorum.');
}
return undefined;
});
async function handleVideo(video, msg, voiceChannel, playlist = false) {
const serverQueue = queue.get(msg.guild.id);
console.log(video);
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,
views: video.views,
};
if (!serverQueue) {
const queueConstruct = {
textChannel: msg.channel,
voiceChannel: voiceChannel,
connection: null,
songs: [],
volume: 3,
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(`I could not join the voice channel: ${error}`);
queue.delete(msg.guild.id);
return msg.channel.send(`HATA | Ses kanalına katılamadım: ${error}`);
}
} else {
serverQueue.songs.push(song);
console.log(serverQueue.songs);
if (playlist) return undefined;
else return msg.channel.sendEmbed(new Discord.RichEmbed()
.setDescription(`✔ | **${song.title}** adlı şarkı başarıyla kuyruğa eklendi.`)
.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 === 'Akış yeterince hızlı diğil.') console.log('Şarkı Durduruldu.');
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()
.setAuthor(`Şarkı Çalınıyor`, `https://images.vexels.com/media/users/3/137425/isolated/preview/f2ea1ded4d037633f687ee389a571086-youtube-icon-logo-by-vexels.png`)
.setThumbnail(`https://i.ytimg.com/vi/${song.id}/default.jpg?width=80&height=60`)
.addField('Başlık', `[${song.title}](${song.url})`, true)
.addField("Süre", `${song.durationm}:${song.durations}`, true)
.addField("Ses Seviyesi", `${serverQueue.volume}%`, true)
.setColor('#FFFFFF'));
}
Kod:
Sonra müzik.js Diye Dosya Açın İçine Aşağıdaki Kodu Yazın
exports.PREFIX = 'l!'; //Müzik komutlarının başlaması için bir prefix seçmelisiniz...
exports.GOOGLE_API_KEY = 'AIzaSyC0wNMZke-tFM4pVk6tdnZBXeHjW0zqfFQ'; // Bunu silmeyin yoksa bot çalışmaz...
Son düzenleme: