const Discord = require('discord.js');
const client = new Discord.Client();
const ayarlar = require('./ayarlar.json');
const chalk = require('chalk');
const fs = require('fs');
const ms = require('ms');
const moment = require('moment');
const Jimp = require('jimp');
const db = require('quick.db');
const YouTube = require("simple-youtube-api");
const ytdl = require("ytdl-core");
const youtube = new YouTube("AIzaSyCkT_L10rO_NixDHNjoAixUu45TVt0ES-s");
const queue = new Map();
const { promisify } = require("util");
require('./util/eventLoader')(client);
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')));
});
client.login(ayarlar.token);
client.on("voiceStateUpdate", (old, neww) => {
let ses = old.voiceChannel;
if (!neww.voiceChannel) {
if (neww.id === client.user.id) {
console.log(`BOT: Bot yeniden başlatılıyor...`);
process.exit(0);
console.clear();
}
}
});
client.on("message", async msg => {
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 (msg.content.startsWith("+çal")) {
console.log("mesaj çalışıyor");
let mesaj2 =
"**Komutu kullanabilmek için bir ses kanalında bulunmalısınız.**"; // hata neden var onu bulmak için yapıyorum
const voiceChannel = msg.member.voiceChannel;
let send = new Discord.RichEmbed()
.setColor("RANDOM")
.setDescription(mesaj2)
.setTimestamp()
.setFooter("Müzik", "");
console.log(mesaj2);
if (!voiceChannel) return msg.channel.sendEmbed(send);
if (url.match(/^https?:\/\/(www.youtube.com|youtube.com)\/playlis(.*)$/)) {
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(`**\`${playlist.title}\` adlı şarkı 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("Şarkı Seçimi")
.setDescription(
`${videos
.map(video2 => `**${++index} -** ${video2.title}`)
.join("\n")}`
)
.setFooter(
"**__1__-__10__ arasında bir sayı belirtmelisin. Belirtmezsen 10 saniye içinde komut iptal edilecektir.**"
)
.setFooter("Örnek kullanım: 1")
.setColor("#ffa700")
);
msg.delete(5000);
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("#ff0000")
.setDescription(
"**10 saniye boyunca bir şarkı seçmediğiniz için komut 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("0x36393E")
.setDescription(`**YouTube'da böyle bir şarkı mevcut değil!**`)
);
}
}
return handleVideo(video, msg, voiceChannel);
}
} else if (command === "gir") {
return new Promise((resolve, reject) => {
const voiceChannel = msg.member.voiceChannel;
if (!voiceChannel || voiceChannel.type !== "voice")
return msg.reply(
"**Kanalda kimse bulunmadığı için kanalda durmama gerek yok. Bu yüzden kanaldan ayrıldım.**"
);
voiceChannel
.join()
.then(connection => resolve(connection))
.catch(err => reject(err));
});
} else if (command === "geç") {
if (!msg.member.voiceChannel)
if (!msg.member.voiceChannel)
return msg.channel.sendEmbed(
new Discord.RichEmbed()
.setColor("RANDOM")
.setDescription(
"**Komutu kullanabilmek için bir ses kanalında bulunmalısınız.**"
)
);
if (!serverQueue)
return msg.channel.sendEmbed(
new Discord.RichEmbed()
.setColor("RANDOM")
.setDescription("**Şuanda herhangi bir şarkı zaten oynatılmıyor.**")
);
serverQueue.connection.dispatcher.end("**Sıradaki Şarkıya Geçildi!**");
return undefined;
} else if (command === "kapat") {
if (!serverQueue || !serverQueue.playing)
return msg.channel.send("**Şuanda zaten bir şarkı oynatılmıyor.");
if (serverQueue && serverQueue.playing) {
serverQueue.playing = false;
serverQueue.connection.dispatcher.pause();
return msg.channel.sendEmbed(
new Discord.RichEmbed()
.setTitle("**Şarkı Kapatıldı!**")
.setColor("RANDOM")
);
}
} else if (command === "4312 asd12312ee edad3123ewe12") {
if (!msg.member.voiceChannel)
if (!msg.member.voiceChannel)
return msg.channel.sendEmbed(
new Discord.RichEmbed()
.setColor("RANDOM")
.setDescription(
"**Komutu kullanabilmek için bir ses kanalında bulunmalısınız.**"
)
);
return msg.channel.sendEmbed(
new Discord.RichEmbed()
.setColor("RANDOM")
.setTitle(
"**Herhangi bir şarkı oynatılmadığı için sesini ayarlayamam!**"
)
);
if (args[1] > 200)
return msg.reply("**Ses seviyesi 200'den fazla olamaz.**");
serverQueue.volume = args[1];
serverQueue.connection.dispatcher.setVolumeLogarithmic(args[1] / 5);
return msg.channel.sendEmbed(
new Discord.RichEmbed()
.setTitle(`:loud_sound: Ses Seviyesi Ayarlanıyor: **${args[1]}**`)
.setColor("RANDOM")
);
} else if (command === "çalan") {
if (!serverQueue)
return msg.channel.sendEmbed(
new Discord.RichEmbed()
.setTitle("**Şuan herhangi bir şarkı çalınmıyor.")
.setColor("RANDOM")
);
return msg.channel.sendEmbed(
new Discord.RichEmbed()
.setColor("RANDOM")
.setTitle("Çalan")
.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 (msg.content.startsWith === prefix + "list") {
let index = 0;
if (!serverQueue)
return msg.channel.sendEmbed(
new Discord.RichEmbed()
.setTitle("**Herhangi bir şarkı sıraya eklenmemiş.**")
.setColor("RANDOM")
);
return msg.channel
.sendEmbed(
new Discord.RichEmbed()
.setColor("RANDOM")
.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()
.setTitle("**:pause_button: Şarkı Durduruldu!**")
.setColor("RANDOM")
);
}
return msg.channel.send("**Şuanda herhangi bir şarkı oynatılmıyor.**");
} else if (command === "devam") {
if (serverQueue && serverQueue.playing)
return msg.reply("**Zaten şarkı oynatılıyor.**");
if (serverQueue && !serverQueue.playing) {
serverQueue.playing = true;
serverQueue.connection.dispatcher.resume();
return msg.channel.sendEmbed(
new Discord.RichEmbed()
.setTitle("**:arrow_forward: **Şarkı, çalınmaya devam ediyor.**")
.setColor("RANDOM")
);
}
return msg.channel.sendEmbed(
new Discord.RichEmbed()
.setTitle("**Şuanda herhangi bir şarkı oynatılmıyor.**")
.setColor("RANDOM")
);
}
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: 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(
`❎ | **Şarkı Sisteminde Problem Var Hata Nedeni: ${error}**`
);
queue.delete(msg.guild.id);
return msg.channel.sendEmbed(
new Discord.RichEmbed()
.setTitle(
`❎ | **Şarkı Sisteminde Problem Var Hata Nedeni: ${error}**`
)
.setColor("RANDOM")
);
}
} else {
serverQueue.songs.push(song);
console.log(serverQueue.songs);
if (playlist) return undefined;
return msg.channel.sendEmbed(
new Discord.RichEmbed()
.setTitle(`**\`${song.title}\` adlı şarkı 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 === "**Yayın Akış Hızı yeterli değil.**")
console.log("Şarkı 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()
.setColor("RANDOM")
.setColor("RANDOM")
.setTitle(
`**Şarkı Başladı**
Pingim: ${client.ping}`
)
.setThumbnail(
`https://i.ytimg.com/vi/${song.id}/default.jpg?width=80&height=60`
)
.setImage(
"https://cdn.discordapp.com/attachments/645797096842199051/649361326992523274/efekt.gif"
)
.addField("Süre", `${song.durationm}:${song.durations}`, true)
.setColor("#00ccff")
.addField("ST4B!L")
);
}
const db = require('quick.db')
const Discord = require('discord.js');
const client = new (Discord.Client);
const radyo =
{fenomen : "http://fenomen.listenfenomen.com/fenomen/128/icecast.audio ",
fenomenfm : "https://fenomenturk.listenfenomen.com/fenomenturk/128/icecast.audio ",
kralpop : "https://www.kralmuzik.com.tr/radyo/kral-pop ",
vergın : "https://playerservices.streamtheworld.com/api/livestream-redirect/VIRGIN_RADIOAAC.aac?dist=onlineradiobox ",
}
exports.run = function(bot, message, args) {
message.delete(10000).catch(console.error);
if (!message.member.voiceChannel) return message.reply("**:bangbang: Sana bağlanmam için ilk önce sesli bir kanala katılmalısın. :bangbang:** ST4B!L").then(m => m.delete(15000)).catch(console.error);
else {
if (!args[0] || args[0] === "help" || args[0] === "yardım") {
message.reply("**\n \n 🎵 Radyo İstasyonları 🎵 \n ST4B!L \n \n 1 = Fenomen \n 2 = FenomenTürk \n 3 = KralPop \n 4 = Virgin Radio\n \n Açmak İçin + <numara> \n Kapatmak İçin + kapat**").then(m => m.delete(40000)).catch(console.error);
} else if (args[0].toLowerCase() === "fenomen" || args[0] === "1") {
message.member.voiceChannel.join().then(connection => {
var dispatcher = connection.playStream(radyo.fenomen);
message.reply("🎧 | **Başarılı! 🎻`FenomenFM`🎻 çalınıyor.**").then(m => m.delete(10000)).catch(console.error);
})
} else if (args[0].toLowerCase() === "FENOMEN TURK" || args[0] === "2") {
message.member.voiceChannel.join().then(connection => {
var dispatcher = connection.playStream(radyo.fenomenfm);
message.reply("🎧 | **Başarılı! `FenomenTÜRK` çalınıyor.**").then(m => m.delete(10000)).catch(console.error);
})
} else if (args[0].toLowerCase() === "kapat" || args[0].toLowerCase() === "bitir") {
message.member.voiceChannel.leave();
return message.channel.send(`Bu kanaldan ayrıldım ${message.member.voiceChannel}.`);
} else if (args[0].toLowerCase() === "KralPop" || args[0] === "3") {
message.member.voiceChannel.join().then(connection => {
var dispatcher = connection.playStream(radyo.kralpop);
message.reply("🎧 | **Başarılı! `KralPop` çalınıyor.**").then(m => m.delete(10000)).catch(console.error);
})
} else if (args[0].toLowerCase() === "Virgin Radio" || args[0] === "4") {
message.member.voiceChannel.join().then(connection => {
var dispatcher = connection.playStream(radyo.vergın);
message.reply("🎧 | **Başarılı! `Virgin Radio` çalınıyor.** `Radyo 2 Saniye Sonra Açılıyor`").then(m => m.delete(10000)).catch(console.error);
})
}
}
}
exports.conf = {
enabled: true,
guildOnly: true,
aliases: [],
permLevel: 0
};
exports.help = {
name: 'radyo',
description: '',
usage: 'radyo'
};
const Discord = require('discord.js');
const ayarlar = require('../ayarlar.json');
let botid = ('825731467618549770') //bu yere botun id'sini yapıştırın.
//eğer botunuz dbl(discord bot list) de yoksa Bota Oy Ver (Vote) olmucaktır.
exports.run = (client, message, args) => {
const exampleEmbed = new Discord.MessageEmbed ()
.setAuthor(`${client.user.username} `, client.user.avatarURL)
.setColor('0x36393E')
.setTitle(`${client.user.username} - ST4B!L`)
.setDescription(`+radyo ➠ Radyoyu Açmanızı Sağlar.
+çal ➠ Belirtilen müziği oynatmayı sağlar.
+kapat ➠ Belirtilen müziği kapatmayı sağlar sağlar.
+geç ➠ Sıradaki müziğe geçiş yapar.
+duraklat ➠ Müziği durkaklatır.
+devam ➠ Müziği devam ettirir.` )
.setThumbnail(client.user.avatarURL)
.setFooter(`${message.author.username} Tarafından İstendi.`, message.author.avatarURL)
.setFooter(`${message.author.username} ST4B!L`,message.author.avatarURL)
return message.channel.sendEmbed(embed);
};
exports.conf = {
enabled: true,
guildOnly: false,
aliases: [''],
permLevel: 0,
};
exports.help = {
name: 'yardım',
description: '',
usage: 'yardım'
};