Rehber Discord.js V12, botun yazdığınız müziği çalmasını sağlamak

Geçen rehber:
Neden linkle çalışıyor bu dedim ve ortaya bu çıktı.
Gerekli modüller:
JavaScript:
const Discord = require('discord.js');
//Discord.js.
const ytdl = require('ytdl-core');
//ytdl-core.
const opus = require('opusscript');
//opusscript
Ayrıca FFMPEG gerekli. Onu şöyle kuracaksınız:
Sonra bunun içindeki 3 exe olan klasörü bir yere çıkartalım.




Önerim benim yaptığımın aynısını yapmanız: Yani direkt C'nin içindeki ffmpeg klasörüne çıkamanız.

Sonra "gelişmiş sistem seçeneklerini" açın, oradan ortam değişkenlerine girin. X için kullanıcı değişkenleri bölümünün altında buluna Path'ye basın.
Oradan "yeni" ye basın. Sonra oraya klasörü açtığınız yeri yazın. Benim yaptığım gibi yaparsanız, direkt C:\ffmpeg\ yazacaksınız.




Sonra aynısını sistem değişkenleri adı altındaki Path'ya da yapıyoruz.




Olup olmadığını test etmek için CMD'yi yönetici olarak çalıştırıyor, ve şunu yazıyoruz: ffmpeg
Böyle şeyler yazarsa tamam demektir:

FFMPEG kurulumundaki yardımlarından dolayı Firehorse MK II'ye teşekkürler.

Kodumuz:
[CODE lang="javascript" title="Discord.js"]
const ytdl = require('ytdl-core');
const ytSearch = require('yt-search');
const opus = require('opusscript');
module.exports = {
name: "çal",
description: "Müzik çalar",

async run (client, message, args) {

const sesKanalı = message.member.voice.channel;

if (!message.member.voice.channel) return message.channel.send('Müzik dinlemek için önce **ses kanalına** bağlanman gerekir.')

if (message.guild.me.voice.channel) return message.channel.send('Hali hazırda bot **birisi** için çalıyor.');

if (!args.length) return message.channel.send('Lütfen şarkının **adını** gir..');



const connection = await sesKanalı.join();

const videoFinder = async (query) => {
const videoResult = await ytSearch(query);
return (videoResult.videos.length > 1) ? videoResult.videos[0] : null;
}

const video = await videoFinder(args.join(' '));

if(video){
const stream = ytdl(video.url, {filter: 'audioonly'});
connection.play(stream, {seek: 8, volume: 1})
.on('finish', () =>{
sesKanalı.leave();

});

let bu = await message.reply('Şarkı çalınmaya başlandı: ' + video.url )
bu.react('');
bu.react('');
bu.react('');
} else {
message.reply('Böyle bir şarkı yok Youtubenin içinde!');
}
}
}
[/CODE]
Nasıl çalışıyor?
1. Kodun hangi kelimeyle çalışacağı belirlenir:
JavaScript:
const ytdl = require('ytdl-core'); //modüller tanımlanır
const ytSearch = require('yt-search');
const opus = require('opusscript');

module.exports = {
    name: "çal", //komudun adı yazılır
    description: "Müzik çalar",
}


2. Bir tuhaflık durumunda botun vereceği tepkiler ve ses kanalı belirlenir:
JavaScript:
const voiceChannel = message.member.voice.channel; //ses kanalı tanımlanır

      if (!message.member.voice.channel) return message.channel.send('Müzik dinlemek için önce **ses kanalına** bağlanman gerekir.')

      if (message.guild.me.voice.channel) return message.channel.send('Hali hazırda bot **birisi** için çalıyor.');

      if (!args.length) return message.channel.send('Lütfen şarkının **adını** gir..');
//hata durumunda botun komutu durdurması sağlanır
Buradaki ses kanalı tanımlamasıyla botun sadece belli bir kanalda çalması sağlanabilir. Ben tek kanalda çalışmasını önermem. Örnek:
JavaScript:
      if (!message.member.voice.channel = "müzik kanalı İD") return message.channel.send("X kanalı dışında müzik çalmaz bot!")

3. Ses kanalına giriş, şarkıyı bulma ve müzik bitince durma,(oynamanızı önermem):
JavaScript:
const connection = await voiceChannel.join();

      const videoFinder = async (query) => { //şarkıyı bulur
          const videoResult = await ytSearch(query);
          return (videoResult.videos.length > 1) ? videoResult.videos[0] : null;
      }

      const video = await videoFinder(args.join(' '));

      if(video){
          const stream = ytdl(video.url, {filter: 'audioonly'});
          connection.play(stream, {seek: 8, volume: 1})
          .on('finish', () =>{
              voiceChannel.leave(); //şarkı bitince ses kanalından ayrılır.
         
          });

4. Şarkıyı başlattığına dair mesaj atma ve mesajına tepki verme, ayrıca şarkı yoksa uyarma.:
JavaScript:
 let bu = await message.reply('Şarkı çalınmaya başlandı: ' + video.url ) //mesaj
          bu.react('🎶');
          bu.react('🎵'); //vereceği tepkiler.
          bu.react('🎸');
      } else {
          message.reply('Böyle bir şarkı yok Youtubenin içinde!');
      } //youtubede şarkıyı bulamazsa.

Durdurma komutu:
JavaScript:
if (msg.content.startsWith(prefix + "dur")) { //dur yerine yazdığınız şey şarkıyı durdurur:/
msg.guild.me.voice.channel.leave();
}
2. Alternatif:
JavaScript:
module.exports = {
    name: "dur",
    description: "Müzik çalar",

    async run (client, message, args, ops) {
 
      message.guild.me.voice.channel.leave();
      message.channel.send("ses kanalından ayrıldım :/")


    }


}
Eğer istek olursa radyo komutu da yayınlarım.



Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
@349398
 
Son düzenleme:
Bence Discord js yerine C++ programlama dilini öğren, orada para var.
 
Bence Discord js yerine C++ programlama dilini öğren, orada para var.
Sence ben bunu para için mi yazıyorum? Ayrıca C++ Discord botu yazmak için iyi bir dil değil. Hatta PY ve JS varken hiç değil.
Bir de Discord.js bir programlama dili değil. Modülün ismi.
 
Sence ben bunu para için mi yazıyorum? Ayrıca C++ Discord botu yazmak için iyi bir dil değil. Hatta py ve js varken hiç değil.
Bir de Discord.js bir programlama dili değil. Modülün ismi.

Özür dilerim zoruna gittiğim için, ben seni düşünerek söyledim ama beni ilgilendirmez doğru.
 
Neye dayanarak JavaScript'in işe yaramayan bir dil olduğunu iddia ediyorsunuz?

JavaScript'in işe yaramayan bir dil olmadığını söylemedim, Discord için bot yazmak yerine program yazsa daha iyi olmaz mı bence?
 
JavaScript'in işe yaramayan bir dil olmadığını söylemedim, Discord için bot yazmak yerine program yazsa daha iyi olmaz mı bence?
Discord hazır bir altyapıya sahip. Discord için bot geliştirmesi daha kolay olacaktır.
 
Discord hazır bir altyapıya sahip. Discord için bot geliştirmesi daha kolay olacaktır.

Bence de daha kolay ama sınırlı maalesef. Kendimi yanlış anlattığım için özür dilerim
 
JavaScript'in işe yaramayan bir dil olmadığını söylemedim, Discord için bot yazmak yerine program yazsa daha iyi olmaz mı bence?
"İyi" dediğiniz şey herkes için farklı. Mesela @Ascendency 'e göre "kolay". Bana göre de "zevk" aldığım. Sana göre de para kazandıran.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…