디스코드 봇 만들기

주노·2023년 11월 29일
0

초록 스터디

목록 보기
2/7
post-thumbnail

서론

초록 스터디에서 PR을 확인하고 Merge하려고한다.
하지만 github 접근권한 이슈로 인해 LMS 사용자는 Merge를 하지 못한다.

다른 방법이 없을까 고민하던 찰나에 PR 목록을 확인하고 PR이 Approve 되었을 때 discord에 알림이 오게 만들고싶다.

discord 봇을 만드는 과정을 기록해보자.

시작하기

적당히 AI에게 촐싹대는 귀여운 나뭇잎 캐릭터를 만들어달라해봤다.

적당히 귀여운거같고 좋다.
이름은 촐랑이로 해야겠다. (대충 초록 스터디의 알림이? 라는 뜻)

본격적으로 봇을 추가해보자.

봇 추가

https://discord.com/developers/applications

개발자용 사이트에 접속한다.

New Application 버튼으로 앱을 생성한다

좌측의 Bot 탭에 들어간다.

Reset Token 버튼을 눌러 Token을 발급받는다.

해당 토큰은 코드레벨에서 해당 봇에 접근하기 위해 사용되는 토큰으로 유출되지 않도록 유의한다.

좌측의 OAuth2 > URL Generator 탭에 들어가서 bot 항목에 체크해주면

아래 URL을 주소창에 입력하여 채널에 봇을 추가할 수 있다.

해산물 뷔페에서 한턱을 못쏘네.. 좀 아쉽다

봇을 추가하려면 해당 채널에 서버관리권한이 필요하다고한다.

시험삼아 개인적으로 친구들이랑 만들어둔 모각코 채널에 봇을 추가했다.

오프라인으로 잘 참여한 모습을 확인할 수 있다.

채널 설정에서 앱 > 연동 탭에서도 촐랑이가 무사히 안착한 모습을 확인할 수 있다.

이제 서버에 무사히 안착한 촐랑이가 행동을 할 수 있도록 만들어주자.

행동하기

촐랑이가 행동하게 만들어보자.

익숙한 언어인 Java를 활용해보도록 하자

Java 생태계에서는 JDA라는 라이브러리가 존재한다.
해당 라이브러리를 활용하여 Discord 봇에 행동을 취하게 만들 수 있다.

https://github.com/DV8FromTheWorld/JDA

import net.dv8tion.jda.api.JDABuilder;
import net.dv8tion.jda.api.entities.Activity;
import net.dv8tion.jda.api.utils.cache.CacheFlag;

public class Main {

    public static void main(String[] args) {
        JDABuilder builder = JDABuilder.createDefault("token");

        // Disable parts of the cache
        builder.disableCache(CacheFlag.MEMBER_OVERRIDES, CacheFlag.VOICE_STATE);
        // Enable the bulk delete event
        builder.setBulkDeleteSplittingEnabled(false);
        // Set activity (like "playing Something")
        builder.setActivity(Activity.watching("TV"));

        builder.build();
    }
}

이걸 실행하니 다음과 같이 촐랑이가 TV를 보기 시작했다.

보다 구체적인 행동은 공식문서를 조금 더 익혀봐야겠다.

Reference

profile
안녕하세요 😆

0개의 댓글