2021.05.15 - [프로젝트/[파이썬] 디스코드 봇 만들기] - [디스코드 봇 만들기] part 1 - 봇 생성
오늘은 지난번에 만든 봇이 작동하도록 만들 겁니다.
오늘의 목표는 사용자가 "@안녕"이라고 메시지를 보내면
봇이 대답하는 것입니다.
전체 코드
from discord.ext import commands
bot = commands.Bot(command_prefix="")
# 봇이 준비되었을때
@bot.event
async def on_ready():
await bot.change_presence(status=discord.Status.online, activity=discord.Game("@안녕")) # 봇의 상태를 설정합니다
# 메시지를 받았을 때
@bot.event
async def on_message(message):
"""
message.author : 메시지를 보낸 사람
message.guild : 메시지를 보낸 서버
message.channel : 메시지를 보낸 채널
"""
if message.author.bot: # 봇이 보낸 메시지이면 반응하지 않게 합니다
return
if message.content == "@안녕":
await message.channel.send(message.author.name + "님 안녕하세요!")
bot.run("토큰")
await 가 있는 이유는 이 프로그램이 비동기로 돌아가기 때문입니다.
메시지를 보내는동안 다른 서버나 채널, 메시지등에 대해서 동시에 작동해야하기 떄문에 비동기입니다.
bot.change_presence 는 봇의 상태를 바꾸는 함수입니다.
보통 "n개 서버에서 활동하는중". "!명령어" 등을 넣습니다.
자주 사용되지만 잘 까먹는 변수, 함수들
await message.delete() : 메시지 삭제
message.content : 메시지의 내용
message.author.id : 메시지 보낸 사람의 ID
message.author.name : 메시지 보낸 사람의 디스코드 닉네임
message.author.nick : 메시지를 보낸 사람의 그 서버에서만 사용하는 닉네임
message.author.dm_channel : 보낸 사람의 DM채널(없으면 None)
await message.author.create_dm() : DM채널을 생성합니다
message.author.bot : 봇이 보낸 메시지면 True, 아니면 False
message.channel.id : 채널 ID
message.channel.name : 채널 이름
await message.channel.send(content="문자열", file=discord.File객체, embed=discord.Embed객체) : 채널로 메시지를 보냅니다.
await message.channel.purge(limit=삭제할 개수) : 삭제할 개수만큼 메시지를 삭제합니다
await message.channel.create_invite() : 채널로 초대하는 링크를 생성합니다
await message.channel.send("내용") : 메시지를 받은 채널에 메시지를 보냄
message.guild.name : 서버 이름
message.guild.id : 서버 ID
message.guild.system_channel : 시스템채널
message.guild.members : 서버에 있는 멤버들
await message.guild.kick(user, reason=None) : user를 킥합니다
await message.guild.ban(user, reason=None, delete_message_days=1) : user를 밴합니다
await message.guild.unban(user, reason=None) : user를 언밴합니다
await message.guild.bans() : 밴된 유저들을 불러옵니다
await message.guild.invites() : 초대 목록을 불러옵니다
discord.py의 모든 API Refernce 보기 :
https://discordpy.readthedocs.io/en/stable/api.html
'코딩 > Python' 카테고리의 다른 글
파이썬 설치하기 (0) | 2022.09.10 |
---|---|
[PYTHON] PYMONGO 사용하기 (0) | 2021.08.25 |
[PYTHON] 바탕화면 바꾸기 (2) | 2021.06.09 |
[디스코드 봇 만들기] part 1 - 봇 생성 (0) | 2021.05.15 |
[PYTHON] 웹소켓 서버 (0) | 2021.04.09 |