Geçen rehber:
Neden linkle çalışıyor bu dedim ve ortaya bu çıktı.
Gerekli modüller:
Ayrıca FFMPEG gerekli. Onu şöyle kuracaksınız:
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:
2. Bir tuhaflık durumunda botun vereceği tepkiler ve ses kanalı belirlenir:
Buradaki ses kanalı tanımlamasıyla botun sadece belli bir kanalda çalması sağlanabilir. Ben tek kanalda çalışmasını önermem. Örnek:
3. Ses kanalına giriş, şarkıyı bulma ve müzik bitince durma,(oynamanızı önermem):
4. Şarkıyı başlattığına dair mesaj atma ve mesajına tepki verme, ayrıca şarkı yoksa uyarma.:
Durdurma komutu:
2. Alternatif:
Eğer istek olursa radyo komutu da yayınlarım.
@349398
Rehber: Discord.js V12, botun müzik çalmasını sağlamak
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: const Discord = require('discord.js'); //Discord.js. const ytdl = require('ytdl-core'); //ytdl-core. const opus = require('opusscript'); //opusscript Ve bir...
www.technopat.net
Gerekli modüller:
JavaScript:
const Discord = require('discord.js');
//Discord.js.
const ytdl = require('ytdl-core');
//ytdl-core.
const opus = require('opusscript');
//opusscript
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:
Ö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:
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
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();
}
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 :/")
}
}
@349398
Son düzenleme: