안 쓰던 블로그

[디스코드봇] 봇이 특정 메시지에 메시지로 반응하기 본문

언어/파이썬 디스코드봇

[디스코드봇] 봇이 특정 메시지에 메시지로 반응하기

proqk 2020. 9. 11. 20:20
반응형

1편: foxtrotin.tistory.com/277

2편: foxtrotin.tistory.com/284

 

이번엔 이모지 반응 말고 유저가 어떤 메시지를 쓰면 봇이 메시지로 반응해 본다

역시 wait_for()을 사용할 것이다

@client.event
async def on_message(message):
    if message.content.startswith('!hello'):
        channel = message.channel
        await channel.send('hello라고 말해 주세요')

        def check(m):
            return m.content == 'hello' and m.channel == channel

        msg = await client.wait_for('message', check=check)
        await channel.send('Hello {.author}!'.format(msg))

 

채널에 hello라고 말해 주세요라고 보내고 메시지가 올 때까지 대기한다

메시지가 오면 check라는 함수로 메시지를 체크한다

check함수는 보내진 메시지에 hello 라는 문자열이 있는지, 그리고 hello라는 메시지가 현재 채널에 보내진 게 맞는지 확인하는 함수다

체크 함수를 통과하면 채널에 hello 메시지 작성자! 라고 보낸다

 

 

반응형
Comments