Tekil Mesaj gösterimi
Eronmay
Eronmay - ait Kullanıcı Resmi (Avatar)
Moderatör
Üyelik tarihi:
07/2016
Nereden:
THT Merkez
Yaş:
21
Mesajlar:
1.224
Konular:
34
Teşekkür (Etti):
Teşekkür (Aldı):
Ticaret:
(0) %
4 Hafta önce
#1
THT Discord Botu | Eronmay
Selamlar "Türk Hack Team" ailesi. Bugün sizlerle "THT Discord Müzik Botu" Kurulumundan Ve Komutlarından Bahsediceğim.



İlk Olarak https://discordapp.com/oauth2/authorize?client_id=640225997068828672&scope=bot&p ermissions=2146958841 Adresine gidiyoruz, "Bir sunucuya bot ekle" Kısmından botu hangi sunucumuza eklemek istediğimizi seçiyoruz. Ardından "Yetkilendir" Diyerek sunucumuza botu ekliceğiz.




"Ben robot değilim" Kısmını doğrulayıp devam ediyoruz.




Evet dostlarım sunucumuza botumuz eklendi.




Sunucu içerisinden'de kontrol edelim.







!çal
Link Veya Şarkının İsmini Girin
!devamet
Şarkıya Devam Et
!geç
Sıradaki Şarkıya Geçer
!durdur
Şarkıyı Durdurur
!ses
Şarkının Ses Seviyesini Ayarlar (1-15)
!oynatılan
O Anki Oynatılan Şarkıyı Söyler
!kuyruk
Kuyruktaki Şarkıları Görüntülenir
!davet-et
Sunucunuza THT Müzik Botunu Davet Eder
!katıl
THT Oyuncu Topluluğu Discord Sunucusuna Katılmanızı Sağlar



Kod:
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')(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(`Bot Çalışıyor.`);
    response.sendStatus(200);
    });
    app.listen(process.env.PORT);
    setInterval(() => {
    http.get(`http://${process.env.PROJECT_DOMAIN}.glitch.me/`);
    }, 280000);



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.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.sahipbir) permlvl = 4
  if (message.author.id == ayarlar.sahipiki) permlvl = 4
  if (message.author.id == ayarlar.sahipuc) permlvl = 4
  return permlvl;
};

client.login(ayarlar.token);








const youTube = require('simple-youtube-api');
const Ytdl = require('ytdl-core');
const youtube = new YouTube('key');
const Queue = new Map();
var prefix = ayarlar.prefix; "!"

client.on("message", async message => {
  var args = message.content.substring(prefix.length).split(" ");
    if (!message.content.startsWith(prefix)) return;
  var searchString = args.slice(1).join(' ');
  var url = args[1] ? args[1].replace(/<(.+)>/g, '$1') : '';
  var serverQueue = queue.get(message.guild.id);
    switch (args[0].toLowerCase()) {
      case "çal":
    var voiceChannel = message.member.voiceChannel;
    const voiceChannelAdd = new Discord.RichEmbed()
    .setColor("#FFFF00")
    .setTitle(`Hata`)
    .setDescription(`Herhangi Bir Odada Bulunmuyorsunuz. Lütfen Bir Odaya Giriş Yapınız !`)
    if (!voiceChannel) return message.channel.send(voiceChannelAdd);
    var permissions = voiceChannel.permissionsFor(message.client.user);
    if (!permissions.has('CONNECT')) {
      const warningErr = new Discord.RichEmbed()
      .setColor("#3333FF")
      .setTitle(`Hata`)
      .setDescription(`Bu Ses Kanalına Katılmak İçin Gerekli Yetkim Yok !`)
      return message.channel.send(warningErr);
    }
    if (!permissions.has('SPEAK')) {
      const musicErr = new Discord.RichEmbed()
      .setColor("RANDOM")
      .setTitle(`Hata`)
      .setDescription(`Müzik Çalmak İçin Konuşma Yetkim Yok !`)
      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, voiceChannel, true);
      }
      const PlayingListAdd = new Discord.RichEmbed()
      .setColor("#FF6600")
      .setTitle(`Oynatma Listesi:`)
      .setDescription(`? **${playlist.title}** Bu Şarkı Oynatma Listesine Eklenmiştir.`)
      return message.channel.send(PlayingListAdd);
    } else {
      try {
        var video = await youtube.getVideo(url);
      } catch (error) {
        try {
          var videos = await youtube.searchVideos(searchString, 10);
          var index = 0;
          const embed = new Discord.RichEmbed()
          .setColor("#FFFF00")
          .setTitle(`___**Çalmasını İstediğiniz Şarkıyı Seçin**___`)
          .setDescription(`${videos.map(video2 => `**${++index} -** ${video2.title}`).join('\n')} \n\n**Lütfen Hangi Şarkıyı Seçmek İstiyorsanız \`1\` İle \`10\` Arası Bir Sayı Yazınız.**`)
          .setFooter(`Şarkı Seçimi Yapmaz İseniz "10" Saniye İçersinde İptal Edilecektir.`)
          message.channel.send({embed})
          try {
            var response = await message.channel.awaitMessages(message2 => message2.content > 0 && message2.content < 11, {
              maxMatches: 1,
              time: 10000,
              errors: ['time']
            });
          } catch (err) {
            console.error(err);
            const NoNumber = new Discord.RichEmbed()
            .setColor("#FFFF00")
            .setTitle(`Hata`)
            .setDescription(`Hiç Bir Sayı Girilmediği İçin Şarkı İsteği İptal Edilmiştir.`) 
            return message.channel.send(NoNumber);
          }
          const videoIndex = parseInt(response.first().content);
          var video = await youtube.getVideoByID(videos[videoIndex - 1].id);
        } catch (err) {
          console.error(err);
          const songNope = new Discord.RichEmbed()
          .setColor("RANDOM")
          .setTitle(`Hata`)
          .setDescription(`Böyle Bir Şarkı Bulunamadı !`) 
          return message.channel.send(songNope);
        }
      }
      return handleVideo(video, message, voiceChannel);
    }
    break;
      case "geç":
      const err0 = new Discord.RichEmbed()
      .setColor("RANDOM")
      .setTitle(`Hata`)
      .setDescription(`Bir sesli kanalda değilsin.`) 
    if (!message.member.voiceChannel) return message.channel.send(err0);
    const err05 = new Discord.RichEmbed()
    .setColor("RANDOM")
    .setTitle(`Hata`)
    .setDescription(`Şuanda herhangi bir şarkı çalmıyor.`)
    if (!serverQueue) return message.channel.send(err05);
    const songSkip = new Discord.RichEmbed()
    .setColor("#00CC00")
    .setTitle(`Şarkı Geçildi`)
    .setDescription(`Şarkı başarıyla geçildi. :ok_hand:`)
    serverQueue.connection.dispatcher.end('g');
    message.channel.send(songSkip)
    return undefined;
break;
      case "durdur":
    const err1 = new Discord.RichEmbed()
    .setColor("RANDOM")
    .setTitle(`Hata`)
    .setDescription(`Bir Sesli Kanala Giriş Yap`)  
    if (!message.member.voiceChannel) return message.channel.send(err1);
    const err2 = new Discord.RichEmbed()
    .setColor("#999999")
    .setTitle(`Hata`)
    .setDescription(`Şuanda herhangi bir şarkı çalmıyor.`)
    if (!serverQueue) return message.channel.send(err2);
    serverQueue.songs = [];
    const songEnd = new Discord.RichEmbed()
    .setColor("#993300")
    .setTitle(`Şarkı Durduruldu`)
    .setDescription(`Şarkı Başarı Bir Şekilde Durduruldu :ok_hand:`)
    serverQueue.connection.dispatcher.end('d');
    message.channel.send(songEnd)
    return undefined;
break;
      case "ses":
      const asd1 = new Discord.RichEmbed()
      .setColor("RANDOM")
      .setTitle(`Hata`)
      .setDescription(`Bir Sesli Kanala Giriş Yap`)  
    if (!message.member.voiceChannel) return message.channel.send(asd1);
    const asd2 = new Discord.RichEmbed()
    .setColor("RANDOM")
    .setTitle(`Hata`)
    .setDescription(`Şuan Herhangi Bir Şarkı Çalmıyor`)
    if (!serverQueue) return message.channel.send(asd2);
    
    let number = ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]
    const yaziolmazamk = new Discord.RichEmbed ()
    .setColor ("RANDOM")
    .setTitle ('HATA')
    .setDescription('Ses Seviyesi Sayı Olmalıdır')
  //  if (!args[1] === number) return message.channel.send (yaziolmazamk)
    const volumeLevel = new Discord.RichEmbed()
    .setColor("#3366CC")
    .setTitle(`Ses Seviyesi`)
    .setDescription(`Ses Seviyesi: **${serverQueue.volume}**`)
    if(!args [1] === number) return;
    if (!args[1]) return message.channel.send(volumeLevel);
    serverQueue.volume = args[1];
    if (args[1] > 15) return message.channel.send(`Ses Seviyesi Maximum **15** Olarak Ayarlanabilir.`)
    serverQueue.connection.dispatcher.setVolumeLogarithmic(args[1] / 5);
    const volumeLevelEdit = new Discord.RichEmbed()
    .setColor("RANDOM")
    .setTitle(`Ses Seviyesi`)
    .setDescription(`Ses Seviyesi Ayarlandı: **${args[1]}** :ok_hand:`)
    return message.channel.send(volumeLevelEdit);
break;
      case "oynatılan":
    if (!serverQueue) return message.channel.send('Şuan Hiçbirşey Çalmıyor');
		return message.channel.send(`> Şu Anda Oynatılan Müzik: **${serverQueue.songs[0].title}**`);
break;
      case "kuyruk":
      var siralama = 0;
    if (!serverQueue) return message.channel.send('> **Şuanda Herhangi Bir Şarkı Çalınmıyor**');
    const songList10 = new Discord.RichEmbed()
    .setColor("RANDOM")
    .addField(`:white_check_mark: | Şuanda Oynatılan Şarkı`, `${serverQueue.songs[0].title}`)
    .addField(`:heavy_minus_sign: | Sırada Bekliyen Şarkılar`, `${serverQueue.songs.map(song => `**:arrow_right:** ${song.title}`).join('\n')}`)
    return message.channel.send(songList10);
break;
case "duraklat":
      if (serverQueue && serverQueue.playing) {
        serverQueue.playing = false;
        serverQueue.connection.dispatcher.pause();
        const asjdhsaasjdha = new Discord.RichEmbed()
    .setColor("RANDOM")
    .setTitle(`Şarkı Duraklatıldı`)
    .setDescription(`Şarkı Başarıyla Duraklatıldı :octagonal_sign:`)
      return message.channel.send(asjdhsaasjdha);
    }
    return message.channel.send('Şuanda Herhangi Bir Şarkı Çalmıyor');
break;
      case "devamet":
      if (serverQueue && !serverQueue.playing) {
        serverQueue.playing = true;
        serverQueue.connection.dispatcher.resume();
        const asjdhsaasjdhaadssad = new Discord.RichEmbed()
    .setColor("RANDOM")
    .setTitle(`Şarkı Devam Ettiriliyor :white_check_mark:`)
    .setDescription(`Şarkı başarıyla devam ettiriliyor :white_check_mark:`)
      return message.channel.send(asjdhsaasjdhaadssad);
    }
    return message.channel.send('Şuanda Herhangi Bir Şarkı Çalmıyor');
  
  return undefined;
break;
}
async function handleVideo(video, message, voiceChannel, playlist = false) {
  var serverQueue = queue.get(message.guild.id);
  //console.log(video);
  var song = {
    id: video.id,
    title: video.title,
    url: `https://www.youtube.com/watch?v=${video.id}`,
    thumbnail: `https://img.youtube.com/vi/${video.id}/maxresdefault.jpg`,
    requester: message.author.id,
  };
  if (!serverQueue) {
    var queueConstruct = {
      textChannel: message.channel,
      voiceChannel: voiceChannel,
      connection: null,
      songs: [],
      volume: 5,
      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);
    //console.log(serverQueue.songs);
    if (playlist) return undefined;
    const songListBed = new Discord.RichEmbed()
    .setColor("RANDOM")
    .setTitle(`Kuyruğa Eklendi`)
    .setDescription(`**${song.title}** adlı şarkı kuyruğa eklendi :white_check_mark:`)
    return message.channel.send(songListBed);
  }
  return undefined;
}
  function play(guild, song) {
  var 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 === 'İnternetten kaynaklı bir sorun yüzünden şarkılar kapatıldı.');
      else console.log(reason);*/
      serverQueue.songs.shift();
      play(guild, serverQueue.songs[0]);
    })
    .on('error', error => console.error(error));
  dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
    
  const playingBed = new Discord.RichEmbed()
  .setColor("#990066")
  .setAuthor(` Şarkı Oynatılıyor...`, `http://icons.iconarchive.com/icons/dakirby309/simply-styled/256/YouTube-icon.png`)
  .setDescription(`[${song.title}](${song.url})[<@${song.requester}>]`)
  serverQueue.textChannel.send(playingBed);
}
});



Evet dostlarım, bugünlük konumuz bu kadardı. Kendinize iyi bakın birdahaki konular'da görüşmek üzere




Konu Eronmay tarafından ( 4 Hafta önce Saat 13:25 ) değiştirilmiştir.
wRsp24, "P4RS, PatroxX, Zazankar, fsocN, Rumexus Teşekkür etti.