인자값 받아보기
TIP
이번 강의 또한 이전 강의 내용을 바탕으로 하고 있습니다
인자값?
오늘은 좀 고급진 명령어를 만드는 방법에 대해서 알려드리겠습니다. 우리가 알고 있는 유명한 디스코드 봇 무엇무엇이 있을까요? 아마도 Ayana 나 Fredbot 등이 있을 것입니다. 그러한 뮤직봇의 명령어들을 보면, ;;p (주소) 이런식인데요, 여기서 우리가 (주소)라는 값을 불러오기 위하여 인자값을 불러와야합니다. 좀 더 쉽게 접근해볼까요? 우리가 잘 아는 마인크래프트에서 제가 서버를 만들고, /돈 (player) 이라는 명령어를 만들었다고 가정해 봅시다. 이러한 명령어에서 (player)이라는 값을 불러오기 위하여 우리는 인자값을 불러와야합니다. 자, 이제 대충이라도 인자값이 무엇인지 이해하셨나요? 그럼 이제 인자값을 불러오는 거 부터 해보죠.
인자값 불러오기
이제 인자값이라는 것의 정의를 알았으니, 이제 한번 그 인자값을 사용해 볼까요? 먼저, 우리 프로젝트에 있는 index.js를 열어, 아래와 같이 수정해 봅시다.
client.on('message', message => { if(message.content.startsWith(`{prefix}말하기`)) { const args = message.content.split(" "); message.channel.send(`args[0]: ${args[0]}, args[1]: ${args[1]}`); } });
이런식으로 써 주시고 실행 해 봅시다. 실행을 해 주시고, 디스코드에다가 아래와 같이 채팅을 써 보세요
!말하기 안녕
이런 식으로 채팅을 쳤을 때, 봇이 이렇게 말하면 성공입니다
args[0]: !말하기, args[1]: 안녕
이런식으로 말 했나요? 그러면 여러분들은 이제 인자라는 것을 잘 다룰 수 있습니다. 근데, 이 방법에는 문제점이 있습니다. 바로 !말하기123 이런식으로 적어도 정상적으로 작동한다 이 말이죠. 그렇기에, 우리는 처음부터 인자값을 불러와보겠습니다.
client.on('message', message => { const args = message.content.split(""); if(args[0] === `{prefix}말하기`) { message.channel.send(`args[0]: ${args[0]}, args[1]: ${args[1]}`); } });
이렇게 바꾸시고 실행을 하셔도 잘 실행이 됩니다. 자, 그러면 여러분들은 이제 인자값을 받아오는 것을 할 수 있습니다.
다음시간
다음 시간에는 앞에서 배운 내용을 활용하여, 주사위를 만드는 것을 해 보겠습니다. 수고하셨습니다
P.S. 곧 자바스크립트 기초 강의를 시작하겠습니다. 자바스크립트의 기본기를 다지시고 이 강의를 보면, 좀 더 이해가 될것입니다
https://discord.gg/2gxSqWu - 마인크래프트 개발자 디스코드
lukekeum
2020.03.31이번 강의는 짧지만, 디스코드 봇을 만드는 것에 대해서는 아주 중요한 내용입니다
hellored
2020.12.17안녕하세요 올려주신 강의 정말 잘 보고 있습니다
글에 적혀 있는 대로 하나씩 해보고 있는데, 인자값 불러오기 두 번째가 잘 안 되서 왜 그런지 궁금합니다 ㅠㅠ
1번째 꺼는 잘 작동하는데 2번째 꺼는 채팅을 쳐도 반응이 없습니다...
잘 안 되서 올려주신 코드를 그대로 복사해서 해봤는데도 무반응입니다 왜 그런지 알 수 있을까요 ㅠㅠ