Discord Bot을 만들어 보자.

Python에서 Discord Bot을 변덕스럽게 만들었으므로 절차에서도 소개해 보겠습니다.


환경 만들기


  • Python3.7.6 (Anaconda)
  • 편집기는 VScode를 사용합니다 (Pycharm? 모릅니다..)

    discord.py 다운로드



    Python 개발 환경에 pip로 discord.py를 설치합니다.
    python3 -m pip install -U discord.py
    

    DEVELOPER PORTAL에서 Bot 등록



    DEVELOPER PORTAL 로 이동하여 Bot을 등록합니다. NewApplication을 클릭하여 Bot의 이름을 결정합니다.

    메뉴에서 Bot을 선택하고 Build-A-Bot에서 Add Bot을 클릭합니다.

    이 화면이 되면 Bot의 이름이나 아이콘을 좋아하는 것으로 바꾸어 둡시다.


    Token 받기



    Click to Reveal Token을 클릭하여 Token을 복사합니다. (Token은 다른 사람들에게 가르치지 않도록합시다.

    Bot을 서버에 가입시킵니다.



    Bot을 서버에 넣지 않으면 이야기가되지 않습니다.
    Bot을 서버에 넣으려면 메뉴의 OAuth2에서 확인란의 Bot을 선택하고 아래에 나타나는 링크에 액세스하여 Bot에 가입합니다.
    (Bot의 사용 용도에 따라 권한 설정을 해 두면 좋다고 생각합니다.)


    Bot 프로그램 작성



    적절하게 Python 파일을 만들고 엽니다.

    pip로 설치한 Discord.py를 가져옵니다.
    import discord #Discord.pyをインポート
    
    TOKEN = "YOUR TOKEN" #Tokenはここに書きます。
    client = discord.Client()
    

    Bot이 온라인 상태가 될 준비가 되었을 때 메시지를 보내는 처리를 작성합니다.
    @client.event
    async def on_ready(): #Botが準備完了した場合
       print("Botがログインしました")
       ChannelID = int(0000000000000) #送信するチャンネルIDを書く
       channel = client.get_channel(ChannelID)
       await channel.send("私が参ったぞ!")
    

    특정 문자열로 회신하는 코드를 작성합니다.
    @client.event
    async def on_message(message)
       if message.author.bot: #Botだった場合は反応しない
            return
       if message.content == "/hello": #/helloが送られた場合
            print("/helloが実行されました。")
            await message.channel.send("こんにちは!")
    

    Bot을 시작하는 코드를 작성합니다.
    client.run(TOKEN)
    

    on_ready () 및 on_message () 이외에도 ..



    on_ready() 및 on_message() 이외에도 다음 이벤트 핸들러가 있습니다.

    ※반드시 @client.event , async def 를 써 주세요.
    @client.event
    async def on_member_join(member): #新規ユーザー参加時
      #処理
    
    @client.event
    async def discord.on_voice_state_update(member, before, after): #メンーのボイスチャンネル出入り時
      #処理
    
    @client.event
    async def on_reaction_add(reaction, user): #リアクションが追加された時
      #処理
    

    코드 설명 예



    Discord_Bot.py
    import discord #Discord.pyをインポート
    
    TOKEN = "YOUR TOKEN" #Tokenはここに書きます。
    client = discord.Client()
    
    @client.event
    async def on_ready(): #Botが準備完了した場合
       print("Botがログインしました")
       print("----------")
       ChannelID = int(0000000000000) #送信するチャンネルIDを書く
       channel = client.get_channel(ChannelID)
       await channel.send("私が参ったぞ!")
    
    @client.event
    async def on_message(message)
       if message.author.bot: #Botだった場合は反応しない
            return
       if message.content == "/hello": #/helloが送られた場合
            print("/helloが実行されました。")
            await message.channel.send("こんにちは!")
    @client.event
    async def on_member_join(member): #新規ユーザー参加時
            print("新規ユーザー参加")
            await message.channel.send("ようこそ!")
    @client.event
    async def discord.on_voice_state_update(member, before, after): #メンーのボイスチャンネル出入り時
            print("ボイスチャンネル更新")
            await message.channel.send("ボイスチャンネルに動きが...")
    @client.event
    async def on_reaction_add(reaction, user): #リアクションが追加された時
            print("リアクション")
            await message.channel.send("リアクションしてくれた!")
    
    client.run(TOKEN)
    

    Bot을 움직여보세요



    Ctrl+S로 저장하고 실행해 봅시다.
    $ python Discord_Bot.py
    Botがログインしました
    ----------
    

    이런 표시가 나오면 성공입니다.
    그리고는 자신이 좋아하는 기능을 더해 보면 좋다고 생각합니다.

    요약



    Discord Bot은 discord.py라는 편리한 라이브러리가 있으므로 쉽게 만들 수 있습니다. 여러분도 꼭 도전해 보세요(^▽^)/

    인용


  • discord.py 문서
  • discord.py Github
  • 좋은 웹페이지 즐겨찾기