반응형
Notice
Recent Posts
Recent Comments
Link
안 쓰던 블로그
[디스코드봇] 이모지를 누르면 봇이 반응하기 본문
반응형
봇이 이모지로 반응하기 foxtrotin.tistory.com/274
메시지를 이쁘게 출력하기 foxtrotin.tistory.com/276
이전 글에서 봇이 메시지에 반응해 주는 기능을 구현했다
이번엔 유저가 그 반응을 누르면 봇이 메시지를 보내보는 기능이다
import discord
import asyncio
from discord.ext import commands
from discord.ext.commands import Bot
client = discord.Client()
@client.event
async def on_message(message):
if message.content.startswith('!shop'):
embed = discord.Embed(title="SHOP BOT",description="SHOP 아이템 목록. 쇼핑을 합시다", color=0x00aaaa)
embed.add_field(name="STEP🦶", value="빠르게 이동한다", inline=False)
embed.add_field(name="STUN⚔️", value="스턴!", inline=False)
msg = await message.channel.send(embed=embed)
await msg.add_reaction("🦶") #step
await msg.add_reaction("⚔️") #stun
@client.event
async def on_reaction_add(reaction, user):
if user.bot == 1: #봇이면 패스
return None
if str(reaction.emoji) == "🦶":
await reaction.message.channel.send(user.name + "님이 step 아이템을 구매")
if str(reaction.emoji) == "⚔️":
await reaction.message.channel.send(user.name + "님이 stun 아이템을 구매")
client.run('봇토큰입력')
on_reaction_add()는 리액션으로 반응이 왔을 때 할 행동을 적는다
매개변수로 무슨 리액션이 왔는지에 대한 내용인 reaction과, 리액션을 한 유저의 정보 user를 받았다
만약 리액션이 ~라면 ~행동을 한다라고 구현해 주면 된다
다만 이런 식으로 하면 다른 사람이 눌렀을 때도 반응하게 되는데
봇을 필터링 한 것처럼 리액션한 user가 메시지를 보낸 본인이 아니면 패스하는 식으로 걸러줄 수 있다
반응형
'언어 > 파이썬 디스코드봇' 카테고리의 다른 글
[디스코드봇] 봇이 특정 메시지에 메시지로 반응하기 (2) | 2020.09.11 |
---|---|
[디스코드봇] 이모지를 누르면 봇이 반응하기2 (wait_for()사용) (2) | 2020.09.11 |
[디스코드봇] 메시지를 이쁘게 출력하기 embed (0) | 2020.09.07 |
[디스코드봇] 봇 프로필에 ~하는 중이라고 표시하기 (0) | 2020.09.07 |
[디스코드봇] 봇이 이모지로 반응하기 (0) | 2020.09.07 |
Comments