개인 자료란 (JE)

  서버 커뮤니티

Profile kiki7000 대표칭호 없음
Profile

python

Discord.py 고급 기능 3: 커맨드를 분리하는 핸들러 사용!

2020.04.10 조회 수 1048 추천 수 0
안녕하세용 키키입니당.

오늘은 커맨드 핸들러를 만들거인데요.

Discord.py 안에 Cogs라는 것이 내장되있지만 전 제가 원하는 역할을 하지 않기에 안쓰고 제가 핸들러를 직접 만들어 쓰고 있습니당.

https://github.com/kiki7000/chdp

오늘의 전체 코드인데요, 너무 길어 분리했습니다.

하지만 길다고 걱정하지 마세요.

저기서 파일이 4개인데 우리는 앞으로 2개는 안쓰고 1개는 지우고 파일을 만들어 사용할 것이거든요.


CHDP를 이용한 커맨드 핸들러!

일단 https://github.com/kiki7000/chdp 를 git을 이용해 클론하거나 zip으로 다운로드 해줍니다.(zip로 다운로드하면 압축 풀고 옮겨야겠죠^^)

그리고 에디터에서 연 후 같은 경로에 .env 를 만들어줍니다.

.env 내용은 간단하게 "TOKEN=토큰" 뿐입니다.(당연히 큰따옴표 제거, 토큰을 자기 봇 토큰으로 변경)

그리고 저장하면 이 파일은 평생(토큰이 바뀔때 외) 안쓰게 될것입니다.

이 파일은 보안 파일 같은 존재로 토큰같이 비밀번호 같은것을 저장하면 됩니다.

토큰이 바뀌면 단순히 다시 "TOKEN=재발급한 토큰"으로 수정해주시면 됩니다.

이제 index.py로 갑니다.

index.py로 가면

token = 'Your Bot\'s Token'
prefix = 'Your Bot\'s Prefix'
game = 'Your Bot\'s Game'

이렇게 되어있을텐데

이 코드를

import os
token = os.environ['TOKEN']
prefix = '봇 접두사(슷칼봇의 슷, 키키봇의 ㅋ 이런것)
games = [게임 목록]

로 바꿔주세요.

그리고 await client.change_presence(status = discord.Status.online  , activity = discord.Game(game))  이 부분을 await funcs.bt(games)로 바꿔주세요

이제 index.py는 수정이 끝났습니다.

저장해주시고 평생 안쓰면 됩니다.

command.py는 애초부터 안건드리고 funcs.py는 우리가 저번에 만든 모듈입니다.

그 파일에는 우리가 만든 함수들이 없는데 옮겨주시면 됩니다. (당연히 import discord 해주고요)

이제 funcs.py 파일 빼고 우리가 사용할 파일은 commands 폴더 안에 있는 파일들입니다.

commands 안에 있는 example.py를 지우고 파일을 하나 만들어주세요(이름은 상관 ㄴㄴ).

그리고 아래 코드 형식대로 만들어주세요.

import funcs
aliases = [명령어 목록]
async def run(client, message, args):
    실행 코드

이 형식대로 만들어주세요.

여기서 명령어 목록이 봇의 명령어가 아닌 서버정보 를 이 파일의 명령어라 할때 섭정, 서버, 서버인포 이런 부명령어들이랑 서버정보인 명령어를 리스트로 만들어 넣으시면 됩니다.

실행 코드는 단순히 실행 코드를 적으시면 됩니다.

async여서 await는 되고요, client랑 message도 됩니다.


전 이제 밀린 강의를 다 채웠으니 일주일에 한번씩 쓸게요^^(좋아요랑 댓글이 너무 없어서 조금만..<퍼미ㅏㄴ어미ㅏㅓㅇ리ㅏ멀이ㅏㄴㅁ)


https://discord.gg/2gxSqWu - 마인크래프트 개발자 디스코드

Warning
댓글이 없습니다.

새로운 댓글을 등록해 주세요!

뉴스 및 창작물
/files/thumbnails/487/784/003/262x150.crop.jpg?20240508163729

모드

Windows Borderless 모드에서 악성코드 발견

학교가기싫다

2024-05-08

0

/files/thumbnails/384/778/003/262x150.crop.jpg?20240507003327

업데이트

마인크래프트 자바 에디션 스냅샷 24w18a

학교가기싫다

2024-05-06

0

/files/thumbnails/855/781/003/262x150.crop.jpg?20240505141129

레드스톤

레이저 클리너

GlassesFilm

2024-05-05

1

/files/thumbnails/576/775/003/262x150.crop.jpg?20240426232553

아티클

이달의 블록: 단단한 진흙

학교가기싫다

2024-04-26

0

/files/thumbnails/115/774/003/262x150.crop.jpg?20240428135129

업데이트

마인크래프트 1.20.5 정식 업데이트

학교가기싫다

2024-04-24

0