Rehber Discord.js V12, botun müzik çalmasını sağlamak

Akif9748

Kilopat
Katılım
19 Ocak 2020
Mesajlar
4.083
Makaleler
14
Çözümler
54
Merhabalar, daha önce botun rastgele değer üretmesini sağlamıştık, bugün ise botumuzun müzik çalmasını sağlayacağız.
Gerekli modüller:

JavaScript:
const Discord = require('discord.js');
//Discord.js.
const ytdl = require('ytdl-core');
//ytdl-core.
const opus = require('opusscript');
//opusscript

"npm i ytdl-core" ve "npm i opusscript" ile kurulabiliyor.

Ve bir de ffmpeg gerekecek. Eğer hala kurulu değil ise:

işletim sisteminin Windows 64 Bit ise:https://github.com/BtbN/FFmpeg-Buil...-52/ffmpeg-N-100663-g71b82e4ffd-win64-gpl.zip indirin. Diğer Is'ler için: Download FFmpeg
Sonra bunun içindeki 3 exe olan klasörü bir yere çıkartalım.

1611057744033.png


Ö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.

1611058308937.png


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

1611058463084.png


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:

1611058599068.png
Kodumuz:

JavaScript:
const Discord = require('discord.js');
const ytdl = require('ytdl-core');
const opus = require('opusscript');

//gerekli moduller.

module.exports = {
name: "dinle",
description: "Müzik çalar",
//çalıştıran komutun ismi, ve açıklama.
async run (client, message, args, ops) {

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[0]) return message.channel.send('Lütfen şarkının **URL**sini gir.');

let validate = await ytdl.validateURL(args[0]);

if (!validate) return message.channel.send('Üzgünüm, bu geçerli bir **URL** değil.');

let info = await ytdl.getInfo(args[0]);

let connection = await message.member.voice.channel.join();

let dispatcher = await connection.play(ytdl(args[0], { filter: 'audioonly' }));

message.channel.send('Şimdi bir şarkı çalıyor.');
}

}

nasıl çalışıyor?

1. çıkartılan modüle isim ve açıklama yazıyoruz: [Mesela bu şekilde yazarsanız, !dinle url, çalacaktır. (Yani prefix+orayayazılankelime+boşluk+Video linki)]

JavaScript:
module.exports = {
name: "dinle",
description: "Müzik çalar",

2. bu kısım özneldir, vereceği tepkileri belirliyoruz.

JavaScript:
async run (client, message, args, ops) {

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

if (message.guild.me.voice.channel) return message.channel.send('Hali hazırda bot **birisi** için çalıyor.'); //Bot zaten şuan şarkı çalıyor!

if (!args[0]) return message.channel.send('Lütfen şarkının **URL**sini gir.'); //şarkının linkini girin.

let validate = await ytdl.validateURL(args[0]);

if (!validate) return message.channel.send('Üzgünüm, bu geçerli bir **URL** değil.'); //geçersiz link.

let info = await ytdl.getInfo(args[0]);

let connection = await message.member.voice.channel.join();

let dispatcher = await connection.play(ytdl(args[0], { filter: 'audioonly' }));

message.channel.send('Şimdi bir şarkı çalıyor.'); //Tebrikler, tüm bu zorluklara rağmen şarkı başarıyla çalmaya başladı!

Şarkıyı durdurmak için:

JavaScript:
if (msg.content.startsWith(prefix + "dur")) { //dur yerine yazdığınız şey şarkıyı durdurur:/
msg.guild.me.voice.channel.leave();
}
 
Güncelleme:
WARNING: ytdl-core is out of date! Update with "npm install ytdl-core@latest". uyarısı alırsanız, Recep abinin dediği gibi, en güncele geçin. Bunun için:
npm install ytdl-core@latest

Günümüzde her şeye güncelleme geliyor, bu uyarıyı şarkı çalınca görürsünüz.
Çünkü 4.4.4 çıkmış:
 

Geri
Yukarı