본문 바로가기
디스코드

[Node.js] 디스코드 봇 만들기 -보이스-

by AYAYz 2018. 1. 28.

안녕하세요 오늘은 저번에 만들었던 디스코드 봇에서 보이스 기능을 추가하는 방법을 설명하겠습니다.

보이스로 다양한 소리를 내게 해서 재밌습니다. ㅋㅋ

노래나 효과음 등등을 넣어서 채팅에서 다양하게 활용할 수도 있겠네요.

 





일단 저번에 추가했던 discord.js 모듈 외에도 다른 모듈들이 필요한데요

바로 ffmpeg-binaries 모듈과 opusscript 모듈이 필요합니다.

( opusscript 모듈말고 node-opus모듈을 추가하셔도 됩니다. )

 

 


일단 전에 만들었던 봇 폴더에 ffmpeg-binaries 모듈과 opusscript모듈을 추가해주겠습니다.


이렇게 두 모듈 모두 추가를 끝내었습니다.




이제 코드를 추가하겠습니다. 이 모듈들은 코드에서 추가해주시지 않아도 됩니다.


저번 코드에서 /voice 명령어를 추가하였습니다. /voice 를 치면 보이스 채널에 연결 성공 메시지와 함께 playFile 함수를 이용하여 파일을 재생하게 만들겠습니다.

내가 보이스 채널에 들어와있지 않으면 봇이 어디 채널로 들어가야 할지 모르고 들어오더라도 내가 소리를 듣지 못하니 내가 보이스 채널에 들어왔는지 확인하기 위해 

if문을 이용해 message.member.voiceChaannel이 true라면 코드가 실행되게 합니다.


그리고 파일이 꼭 mp3파일이 아니더라도 아까 추가한 ffmpeg모듈이 파일을 변환 해줘서 파일을 재생시켜줍니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
const Discord = require('discord.js');
const client = new Discord.Client();
client.on('ready', () => {
  console.log('I am ready!');
});
client.on('message', message => {
  if (message.content === 'ping') {
    message.reply('pong');
  }
if(!message.guild) return;
  if (message.content === '/voice') {
    if (message.member.voiceChannel) { //보이스 채널에 들어왔는지 확인
      message.member.voiceChannel.join().then(connection => {
          message.reply('보이스 채널에 연결 성공하였습니다.');
          const dispatcher = connection.playFile('파일 위치'); //보이스 채널에서 재생하실 소리 위치를 입력
        })
        .catch(console.log);
    } else {
      message.reply('먼저 보이스 채널에 들어가 주세요 !'); 
    }
 }
 
});
client.login('토큰'); // 자기 토큰
 

cs




ㅇ 이제

이제 봇을 실행시켜 보도록 하겠습니다. 

 



핑퐁핑퐁은 잘 됩니다 ㅋㅋ 

/voice 명령어를 써보도록하겠습니다.


 



아직 보이스채널에 들어가있지 않아 "먼저 보이스 채널에 들어가 주세요!"라고 말하네요.

보이스채널에 들어간뒤 다시 /voice 명령어를 쳐보겠습니다.

 



보이스 채널에 들어가준뒤 /voice 명령어를 치니 제가 지정한 파일을 재생하고 있습니다!!!




여러분들도 한번 꼭 만들어보시기 바랍니다.




지금까지 디스코드 봇 만들기 보이스 기능 추가 설명이었습니다.


ㅂㅇ



'디스코드' 카테고리의 다른 글

디스코드 개발자 도구 열기  (3) 2020.12.05
[Node.js] 디스코드 봇 만들기  (21) 2018.01.21

댓글