Discord Sunucuları İçin Ses Sistemi

Katılım
8 Nisan 2020
Mesajlar
6.520
Makaleler
7
Çözümler
60
Yer
Beyaz Saray, Washington, DC
Dostlar merhaba. Bugün sizlere gerçekten çok gelişmiş bir sistem tanıtacağım.
Sistemimizin adı: Ses Sistemi

Sistem ne işe yarar?
- Sunucusunda kayıt sistemi olan kullanıcılar bu kod ile gelen kullanıcıları güzel bir sesle karşılayabilir. Ardından yetkili bir kişi kanala girince bot kendini susturarak müziği durdurur.

Kodlar;

JavaScript:
const Discord = require('discord.js'),
client = new Discord.Client({ ws: { intents: Discord.Intents.ALL }}),
ytdlDiscord = require("discord-ytdl-core");

client.on('ready', async() => {
  client.user.setActivity("Ses Botu Yaptırmak İçin: 'furkann#4084");
  play()
})

const setting = {
  channelID: "Ses Kanalı ID",
  modID: "Yetkili Rol ID",
  videoURL: "Çalacak Müzik Linki",
  server: "Sunucu ID"
}

client.on('voiceStateUpdate', async function(oldState, newState){
  if((oldState.member && oldState.member.user.bot) || (newState.member && newState.member.user.bot)) return;
  if(newState.channelID == setting.channelID){
    if(client.channels.cache.get(setting.channelID).members.some(member => member.roles.cache.has(setting.modID)) == true)
     client.guilds.cache.get(setting.server).me.voice.setMute(true)
  } else if(oldState.channelID == setting.channelID){
    if(client.channels.cache.get(setting.channelID).members.some(member => member.roles.cache.has(setting.modID)) == false)  play()
  }
})

async function play(){
  let url = await ytdlDiscord(setting.videoURL, {
            filter: "audioonly",
            opusEncoded: true,
            encoderArgs: ['-af', 'bass=g=10,dynaudnorm=f=200']
    });

  let streamType = setting.videoURL.includes("youtube.com") ? "opus" : "ogg/opus";
  client.channels.cache.get(setting.channelID).join().then(async connection => {
    if(client.channels.cache.get(setting.channelID).members.some(member => member.roles.cache.has(setting.modID)) == false) {
     client.guilds.cache.get(setting.server).me.voice.setMute(false)
      connection.play(url, {type: streamType}).on("finish", () => {
        play(url);
      });
    } else play(url);
  });
}

client.login("BotTokeni")

Buradaki settings kısmında bazı şeyleri tanımladık. Tanımladığımız şeyler;
Birisi gelince çalacak müzik, yetkili rolü, sunucu ve botun gireceği ses kanalı.

JavaScript:
client.on('voiceStateUpdate', async function(oldState, newState){
  if((oldState.member && oldState.member.user.bot) || (newState.member && newState.member.user.bot)) return;
  if(newState.channelID == setting.channelID){
    if(client.channels.cache.get(setting.channelID).members.some(member => member.roles.cache.has(setting.modID)) == true)
     client.guilds.cache.get(setting.server).me.voice.setMute(true)
  } else if(oldState.channelID == setting.channelID){
    if(client.channels.cache.get(setting.channelID).members.some(member => member.roles.cache.has(setting.modID)) == false)  play()
  }
})

Burada öncelikle botun sese girmesini, ardından yetkili kanala girince botun kendini susturmasını ve müziği durdurmasını ayarladık.

JavaScript:
async function play(){
  let url = await ytdlDiscord(setting.videoURL, {
            filter: "audioonly",
            opusEncoded: true,
            encoderArgs: ['-af', 'bass=g=10,dynaudnorm=f=200']
    });

  let streamType = setting.videoURL.includes("youtube.com") ? "opus" : "ogg/opus";
  client.channels.cache.get(setting.channelID).join().then(async connection => {
    if(client.channels.cache.get(setting.channelID).members.some(member => member.roles.cache.has(setting.modID)) == false) {
     client.guilds.cache.get(setting.server).me.voice.setMute(false)
      connection.play(url, {type: streamType}).on("finish", () => {
        play(url);
      });
    } else play(url);
  });
}

Burada ise çalacak müziği ve nasıl çalacağını ayarladık. Müziği settings kısmına girdiğimiz videoURL yerindeki linki çalmasını söyledik. Ardından yetkili ayrıldıktan sonra müziğe devam etmesini sağladık.

JavaScript:
client.login("BotTokeni")

Buraya ise botun açılacağı tokeni girdik ve botumu açmayı başardık.

Düşüncelerinizi yorumlar kısmından belirtmeyi unutmayın.
 
Hatırladığım sunucuları attım phytonicte vardı kaldırılmış galiba Vortex codede var.
Vortec code vs. bilmiyorum ben hocam. Ben kodu aldım ve hatalı yerlerini düzeltip sizlere sundum. Amacım yardım etmek, şu an gelmiş konuyu saptırarak gereksiz muhabbet yapıyorsunuz. Lütfen konumu saptırmayın, iyi geceler dilerim.
 

Yeni konular

Geri
Yukarı