본문 바로가기

discord

디스코드 봇 [discord.py 2.0] 기본

반응형

파이썬 버전 3.8

먼저 discord.py 최신 버전을 설치합니다.

22.12.07 기준 discord.py가 공식2.0으로 업데이트 되서 변경합니다

pip install discord.py

설치가 끝나셨으면 봇 실행파일을 작성해 줍니다.

from discord import Intents
from discord.ext import commands
from discord import Game
from discord import Status
from discord import Object


class MyBot(commands.Bot):
    def __init__(self):
        super().__init__(
            command_prefix='!',
            intents=Intents.all(),
            sync_command=True,
            application_id=
        )
        self.initial_extension = [
            "Cogs.hello"
        ]

    async def setup_hook(self):
        for ext in self.initial_extension:
            await self.load_extension(ext)
        await bot.tree.sync(guild=Object(id=))

    async def on_ready(self):
        print("login")
        print(self.user.name)
        print(self.user.id)
        print("===============")
        game = Game("....")
        await self.change_presence(status=Status.online, activity=game)


bot = MyBot()
bot.run('')

bot.tree.sync(guild.Object(id=여기에 자신이 테스트할 서버의 id를 입력해 줍시다.))

슬래시 커맨드를 사용 하기때문에 기입해주셔야 합니다. 나중에 여러 서버에 적용하실 땐

bot.tree.sync()만 기입.

 

 

봇의 토큰이랑 id를 구하기 위해

https://discord.com/developers/applications

 

Discord Developer Portal — API Docs for Bots and Developers

Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.

discord.com

접속해서 애플리케이션 생성 후 봇 새로 만들기.

봇 토큰을 구하고 코드에 기입

 

self.initial_extension = [] 
괄호 부분에  사용할 Cog를 기입
 
self.initial_extension = [
            "Cogs.hello"
        ]

Cogs라는 폴더를 생성 후 hello.py 파일 생성

 

 

hello.py 코드 작성

from discord import app_commands
from discord.ext import commands
from discord import Interaction
from discord import Object


class hello(commands.Cog):
    def __init__(self, bot: commands.Bot) -> None:
        self.bot = bot

    @app_commands.command(name="hello")
    async def hello(self, interaction: Interaction) -> None:
        await interaction.response.send_message("hi")


async def setup(bot: commands.Bot) -> None:
    await bot.add_cog(
        hello(bot),
        guilds=[Object(id=)]
    )

자 이제 코드 작성이 끝났으니 명령어가 작동하는지 실행을 해봅시다.

이 정도 권한만 부여해주고 초대해봅시다

끝.

반응형

'discord' 카테고리의 다른 글

디스코드 봇 [discord.py 2.0] prefix  (0) 2022.06.06
디스코드 봇 [discord.py 2.0] select  (0) 2022.06.06
디스코드 봇[discord.py 2.0] 버튼  (0) 2022.06.06