목록언어/파이썬 디스코드봇 (7)
안 쓰던 블로그
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) awa..
이전 글: foxtrotin.tistory.com/277 저번 글에서 썼던 코드는 몇 가지 문제가 있었다 1. 다른 사람이 반응을 눌러도 봇이 반응한다 2. 반응을 취소했다가 다시 누르면 또 반응한다 3. 메시지를 올릴 때마다 중복된다 해결 방법은 다음과 같다 1->if문으로 현재 message에 반응한 유저와 명령어를 실행한 유저가 동일 인물인지 확인 2->try문으로 한 번만 실행하게 한다 3->유저가 반응하면 바로 끝나고, 반응하지 않으면 일정 시간 뒤 자동 종료한다 @client.event async def on_message(message): if message.content.startswith('!thumb'): channel = message.channel await channel.send(..
봇이 이모지로 반응하기 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",de..
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⚔️", val..
import discord import asyncio from discord.ext import commands from discord.ext.commands import Bot client = discord.Client() @client.event async def on_ready(): print("디스코드 봇 로그인이 완료되었습니다.") print("디스코드봇 이름:" + client.user.name) print("디스코드봇 ID:" + str(client.user.id)) print("디스코드봇 버전:" + str(discord.__version__)) print('------') await client.change_presence(status=discord.Status.online, activi..
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 == "이모지 출력": msg = await message.channel.send("\U00000030\U0000FE0F\U000020E3 을 반응으로 추가") await msg.add_reaction("\U00000030\U0000FE0F\U000020E3") client.run('봇토큰') 이모지 출력 이라고 쓰면 반응으로 추가해 준다 on_message는 메시지가 ..
import discord from discord.ext import commands client = commands.Bot(command_prefix='a!) @client.event async def on_ready(): print('ready!') token='봇토큰' client.run(token, bot=True) 이렇게 실행시키면 봇이 앞으로 a!명령어 이런 식으로 반응할 것이다 명령어 부분은 원하는 명령어로 구현해 주면 된다 만약 hello라는 명령어가 hi!를 출력하게 했으면 a!hello 라고 봇을 부를 수 있다 아니면 아래같이 할 수도 있다 import discord import asyncio from discord.ext import commands from discord.ext.co..