Discord bot kod paylaşımlarında bu yazımda discord botunuz için güzel ve kullanışlı bir kod ile beraberiz.
Kurulum için adımları izleyin:
- Kod projenizde komutlar klasörüne atılacaktır. Komut eklemeyi bilmiyorsan buradaki yazımızı okuyarak öğrenebilirsin.
- Komut içerisindeki gerekli yerleri kendinize göre düzenleyin.
- Herhangi bir modül gerekmez.
//###CodeMareFi tarafından hazırlanmıştır - - - Ekleyen //###MareFi
const Discord = require('discord.js');
const { RichEmbed } = require('discord.js');
const YouTube = require('simple-youtube-api');
const ytdl = require('ytdl-core');
const youtube = new YouTube('YouTube api3 tokeni buraya');
exports.run = async (client, message, args) => {
const queue = client.queue;
var searchString = args.slice(0).join(' ');
var url = args[0] ? args[0].replace(/<(.+)>/g, '$1') : '';
var serverQueue = queue.get(message.guild.id);
var voiceChannel = message.member.voiceChannel;
const embed = new RichEmbed()
.setColor("RANDOM")
.setDescription("Dinlemek istediğin şarkıyı yazmalısın! (Şarkı ismi veya Youtube URLsi)")
if (!args[0]) return message.channel.send(embed);
const voiceChannelAdd = new RichEmbed()
.setColor("RANDOM")
.setDescription(`Lütfen herhangi bir sesli kanala katılınız.`)
if (!voiceChannel) return message.channel.send(voiceChannelAdd);
var permissions = voiceChannel.permissionsFor(client.user);
if (!permissions.has('CONNECT')) {
const warningErr = new RichEmbed()
.setColor("RANDOM")
.setDescription(`Herhangi bir sesli kanala katılabilmek için yeterli iznim yok.`)
return message.channel.send(warningErr);
}
if (!permissions.has('SPEAK')) {
const musicErr = new RichEmbed()
.setColor("RANDOM")
.setDescription(`Müzik açamıyorum/şarkı çalamıyorum çünkü kanalda konuşma iznim yok veya mikrofonum kapalı.`)
return message.channel.send(musicErr);
}
if (url.match(/^https?:\/\/(www.youtube.com|youtube.com)\/playlist(.*)$/)) {
var playlist = await youtube.getPlaylist(url);
var videos = await playlist.getVideos();
for (const video of Object.values(videos)) {
var video2 = await youtube.getVideoByID(video.id);
await handleVideo(video2, message.message, voiceChannel, true);
}
const PlayingListAdd = new RichEmbed()
.setColor("RANDOM")
.setDescription(`[${playlist.title}](https://www.youtube.com/watch?v=${playlist.id}) adlı şarkı oynatma listesine Eklendi!`)
return message.channel.send(PlayingListAdd);
} else {
try {
var video = await youtube.getVideo(url);
} catch (error) {
try {
var videos = await youtube.searchVideos(searchString, 10);
var r = 1
var video = await youtube.getVideoByID(videos[r - 1].id);
} catch (err) {
console.error(err);
const songNope = new RichEmbed()
.setColor("RANDOM")
.setDescription(`Aradığınız isimde bir şarkı bulunamadı!`)
return message.channel.send(songNope);
}
}
return handleVideo(video, message, voiceChannel);
}
async function handleVideo(video, message, voiceChannel, playlist = false) {
var serverQueue = queue.get(message.guild.id);
var song = {
id: video.id,
title: video.title,
durationh: video.duration.hours,
durationm: video.duration.minutes,
durations: video.duration.seconds,
url: `https://www.youtube.com/watch?v=${video.id}`,
thumbnail: `https://img.youtube.com/vi/${video.id}/maxresdefault.jpg`,
requester: message.author.tag,
};
if (!serverQueue) {
var queueConstruct = {
textChannel: message.channel,
voiceChannel: voiceChannel,
connection: null,
songs: [],
volume: 3,
playing: true
};
queue.set(message.guild.id, queueConstruct);
queueConstruct.songs.push(song);
try {
var connection = await voiceChannel.join();
queueConstruct.connection = connection;
play(message.guild, queueConstruct.songs[0]);
} catch (error) {
console.error(`Ses kanalına giremedim HATA: ${error}`);
queue.delete(message.guild.id);
return message.channel.send(`Ses kanalına giremedim HATA: ${error}`);
}
} else {
serverQueue.songs.push(song);
if (playlist) return undefined;
const songListBed = new RichEmbed()
.setColor("RANDOM")
.setDescription(`[${song.title}](https://www.youtube.com/watch?v=${song.id}) adlı şarkı kuyruğa eklendi!`)
return message.channel.send(songListBed);
}
return undefined;
}
function play(guild, song) {
var serverQueue = queue.get(guild.id);
if (!song) {
serverQueue.voiceChannel.leave();
voiceChannel.leave();
queue.delete(guild.id);
return;
}
const dispatcher = serverQueue.connection.playStream(ytdl(song.url))
.on('end', reason => {
serverQueue.songs.shift();
play(guild, serverQueue.songs[0]);
})
.on('error', error => console.error(error));
dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
let y = ''
if (song.durationh === 0) {
y = `${song.durationm || 0}:${song.durations || 0}`
} else {
y = `${song.durationh || 0}:${song.durationm || 0}:${song.durations || 0}`
}
const playingBed = new RichEmbed()
.setColor("RANDOM")
.setAuthor(`Şimdi Oynatılıyor`, song.thumbnail)
.setDescription(`[${song.title}](${song.url})`)
.addField("Şarkı Süresi", `${y}`, true)
.addField("Şarkıyı Açan Kullanıcı", `${song.requester}`, true)
.setThumbnail(song.thumbnail)
serverQueue.textChannel.send(playingBed);
}
};
exports.conf = {
enabled: true,
aliases: ['çal', 'play'],
permLevel: 0
};
exports.help = {
name: 'oynat',
description: 'Belirttiğiniz şarkıyı bulunduğunuz sesli kanalda çalar/oynatır.',
usage: 'oynat [şarkı adı]'
};
//###CodeMareFi tarafından hazırlanmıştır - - - Ekleyen //###MareFi
const Discord = require('discord.js');
const { RichEmbed } = require('discord.js');
const YouTube = require('simple-youtube-api');
const ytdl = require('ytdl-core');
const youtube = new YouTube('AIzaSyDSiyHBWZI9dDZBWXloNVhrHbpzTTfa0L8');
exports.run = async (client, message, args) => {
const queue = client.queue;
var searchString = args.slice(0).join(' ');
var url = args[0] ? args[0].replace(/<(.+)>/g, '$1') : '';
var serverQueue = queue.get(message.guild.id);
var voiceChannel = message.member.voiceChannel;
const err0 = new RichEmbed()
.setColor("RANDOM")
.setDescription(`Bir sesli kanalda değilsin.`)
if (!voiceChannel) return message.channel.send(err0);
const err05 = new RichEmbed()
.setColor("RANDOM")
.setDescription(`Şuanda herhangi bir şarkı çalmıyor.`)
if (!serverQueue) return message.channel.send(err05);
const songSkip = new RichEmbed()
.setColor("RANDOM")
.setDescription(`Şarkı başarıyla geçildi!`)
serverQueue.connection.dispatcher.end('');
message.channel.send(songSkip)
};
exports.conf = {
enabled: true,
aliases: ['skip'],
permLevel: 0
};
exports.help = {
name: 'geç',
description: 'Sıradaki şarkıya geçer. Sırada şarkı yoksa şarkıyı kapatır.',
usage: 'geç'
};
//###CodeMareFi tarafından hazırlanmıştır - - - Ekleyen //###MareFi
const Discord = require('discord.js');
const { RichEmbed } = require('discord.js');
const YouTube = require('simple-youtube-api');
const ytdl = require('ytdl-core');
const youtube = new YouTube('AIzaSyDSiyHBWZI9dDZBWXloNVhrHbpzTTfa0L8');
exports.run = async (client, message, args) => {
const queue = client.queue;
var searchString = args.slice(0).join(' ');
var url = args[0] ? args[0].replace(/<(.+)>/g, '$1') : '';
var serverQueue = queue.get(message.guild.id);
var voiceChannel = message.member.voiceChannel;
const e = new RichEmbed()
.setColor("RANDOM")
.setDescription(`Bir sesli kanalda değilsin.`)
if (!message.member.voiceChannel) return message.channel.send(e);
const p = new RichEmbed()
.setColor("RANDOM")
.setDescription(`Şuanda herhangi bir şarkı çalmıyor.`)
if (!serverQueue) return message.channel.send(p);
var u = serverQueue.songs[0]
/*var pla = await youtube.getPlaylist(u);
var v = await pla.getVideos();*/
var vi2 = await youtube.getVideoByID(u.id);
await handleVideo(vi2, message, voiceChannel, true);
const PlayingListAdd = new RichEmbed()
.setColor("RANDOM")
.setDescription(`[${u.title}](https://www.youtube.com/watch?v=${u.id}) adlı şarkı bitince tekrar oynatılacak!`)
return message.channel.send(PlayingListAdd);
async function handleVideo(video, message, voiceChannel, playlist = false) {
var serverQueue = queue.get(message.guild.id);
var song = {
id: video.id,
title: video.title,
durationh: video.duration.hours,
durationm: video.duration.minutes,
durations: video.duration.seconds,
url: `https://www.youtube.com/watch?v=${video.id}`,
thumbnail: `https://img.youtube.com/vi/${video.id}/maxresdefault.jpg`,
requester: message.author.tag,
};
if (!serverQueue) {
var queueConstruct = {
textChannel: message.channel,
voiceChannel: voiceChannel,
connection: null,
songs: [],
volume: 3,
playing: true
};
queue.set(message.guild.id, queueConstruct);
queueConstruct.songs.push(song);
try {
var connection = await voiceChannel.join();
queueConstruct.connection = connection;
play(message.guild, queueConstruct.songs[0]);
} catch (error) {
console.error(`Ses kanalına giremedim HATA: ${error}`);
queue.delete(message.guild.id);
return message.channel.send(`Ses kanalına giremedim HATA: ${error}`);
}
} else {
serverQueue.songs.push(song);
if (playlist) return undefined;
const songListBed = new RichEmbed()
.setColor("RANDOM")
.setDescription(`[${song.title}](https://www.youtube.com/watch?v=${song.id}) adlı şarkı kuyruğa eklendi!`)
return message.channel.send(songListBed);
}
return undefined;
}
function play(guild, song) {
var serverQueue = queue.get(guild.id);
if (!song) {
serverQueue.voiceChannel.leave();
voiceChannel.leave();
queue.delete(guild.id);
return;
}
const dispatcher = serverQueue.connection.playStream(ytdl(song.url))
.on('end', reason => {
serverQueue.songs.shift();
play(guild, serverQueue.songs[0]);
})
.on('error', error => console.error(error));
dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
let y = ''
if (song.durationh === 0) {
y = `${song.durationm || 0}:${song.durations || 0}`
} else {
y = `${song.durationh || 0}:${song.durationm || 0}:${song.durations || 0}`
}
const playingBed = new RichEmbed()
.setColor("RANDOM")
.setAuthor(`Şimdi Oynatılıyor`, song.thumbnail)
.setDescription(`[${song.title}](${song.url})`)
.addField("Şarkı Süresi", `${y}`, true)
.addField("Şarkıyı Açan Kullanıcı", `${song.requester}`, true)
.setThumbnail(song.thumbnail)
serverQueue.textChannel.send(playingBed);
}
};
exports.conf = {
enabled: true,
aliases: [],
permLevel: 0
};
exports.help = {
name: 'tekrar',
description: 'Çalan şarkı bitince aynı şarkıyı otomatik olarak tekrar oynatır.',
usage: 'tekrar'
};
//###CodeMareFi tarafından hazırlanmıştır - - - Ekleyen //###MareFi
const Discord = require('discord.js');
const { RichEmbed } = require('discord.js');
const YouTube = require('simple-youtube-api');
const ytdl = require('ytdl-core');
const youtube = new YouTube('AIzaSyDSiyHBWZI9dDZBWXloNVhrHbpzTTfa0L8');
exports.run = async (client, message, args) => {
const queue = client.queue;
var searchString = args.slice(0).join(' ');
var url = args[0] ? args[0].replace(/<(.+)>/g, '$1') : '';
var serverQueue = queue.get(message.guild.id);
var voiceChannel = message.member.voiceChannel;
const a = new RichEmbed()
.setColor("RANDOM")
.setDescription(`Bir sesli kanalda değilsin.`)
if (!voiceChannel) return message.channel.send(a)
if (serverQueue && !serverQueue.playing) {
serverQueue.playing = true;
serverQueue.connection.dispatcher.resume();
const asjdhsaasjdhaadssad = new RichEmbed()
.setColor("RANDOM")
.setDescription(`Şarkı başarıyla devam ettiriliyor...`)
return message.channel.send(asjdhsaasjdhaadssad);
}
const b = new RichEmbed()
.setColor("RANDOM")
.setDescription(`Şuanda herhangi bir şarkı çalmıyor.`)
if (!serverQueue) return message.channel.send(b);
};
exports.conf = {
enabled: true,
aliases: ['devam-et'],
permLevel: 0
};
exports.help = {
name: 'devamet',
description: 'Duraklatılmış şarkıyı devam ettirir.',
usage: 'devamet'
};
//###CodeMareFi tarafından hazırlanmıştır - - - Ekleyen //###MareFi
const Discord = require('discord.js');
const { RichEmbed } = require('discord.js');
const YouTube = require('simple-youtube-api');
const ytdl = require('ytdl-core');
const youtube = new YouTube('AIzaSyDSiyHBWZI9dDZBWXloNVhrHbpzTTfa0L8');
exports.run = async (client, message, args) => {
const queue = client.queue;
var searchString = args.slice(0).join(' ');
var url = args[0] ? args[0].replace(/<(.+)>/g, '$1') : '';
var serverQueue = queue.get(message.guild.id);
var voiceChannel = message.member.voiceChannel;
const a = new RichEmbed()
.setColor("RANDOM")
.setDescription(`Bir sesli kanalda değilsin.`)
if (!voiceChannel) return message.channel.send(a)
if (serverQueue && serverQueue.playing) {
serverQueue.playing = false;
serverQueue.connection.dispatcher.pause();
const asjdhsaasjdhaadssad = new RichEmbed()
.setColor("RANDOM")
.setDescription(`Şarkı başarıyla duraklatıldı!`)
return message.channel.send(asjdhsaasjdhaadssad);
}
const b = new RichEmbed()
.setColor("RANDOM")
.setDescription(`Şuanda herhangi bir şarkı çalmıyor.`)
if (!serverQueue) return message.channel.send(b);
};
exports.conf = {
enabled: true,
aliases: ['pause'],
permLevel: 0
};
exports.help = {
name: 'duraklat',
description: 'Çalan şarkıyı duraklatır.',
usage: 'duraklat'
};
//###CodeMareFi tarafından hazırlanmıştır - - - Ekleyen //###MareFi
const Discord = require('discord.js');
const { RichEmbed } = require('discord.js');
const YouTube = require('simple-youtube-api');
const ytdl = require('ytdl-core');
const youtube = new YouTube('AIzaSyDSiyHBWZI9dDZBWXloNVhrHbpzTTfa0L8');
exports.run = async (client, message, args) => {
const queue = client.queue;
var searchString = args.slice(0).join(' ');
var url = args[0] ? args[0].replace(/<(.+)>/g, '$1') : '';
var serverQueue = queue.get(message.guild.id);
var voiceChannel = message.member.voiceChannel;
const err1 = new RichEmbed()
.setColor("RANDOM")
.setDescription(`Bir sesli kanalda değilsin.`)
if (!voiceChannel) return message.channel.send(err1);
const err2 = new RichEmbed()
.setColor("RANDOM")
.setDescription(`Şuanda herhangi bir şarkı çalmıyor.`)
if (!serverQueue) return message.channel.send(err2);
serverQueue.songs = [];
const songEnd = new RichEmbed()
.setColor("RANDOM")
.setDescription(`Şarkı başarıyla durduruldu ve odadan ayrıldım!`)
serverQueue.connection.dispatcher.end('');
message.channel.send(songEnd);
};
exports.conf = {
enabled: true,
aliases: ['stop'],
permLevel: 0
};
exports.help = {
name: 'durdur',
description: 'Oynatılan/çalan şarkıyı kapatır.',
usage: 'durdur'
};
Yapamadığınız veya takıldığınız yerleri yorum ile bizlere bildirin yardımcı oluruz.
client.queue = new Map() Bu kodu maine ekleyin.
YanıtlaSilYapamayanlar olursa yakında bu kodların hazır eklenmiş proje içinde hazır botta paylaşılacak.
discord'da hangi ses komutunu kulanacağım bilmiyorum yardımcı olursanız sevinirim
YanıtlaSil