저번에
import discord from discord.ext import commands app = commands.Bot(command_prefix='prefix that you want') @app.event async def on_ready(): print('다음으로 로그인합니다: ') print(app.user.name) print('connection was succesful') await app.change_presence(status=discord.Status.online, activity=None) app.run('token that you copied')
여기까지 했었져?
이제 명령어를 만들어봅시다!
명령어 만들기
@app.command() async def hello(ctx): await ctx.send('Hello, World!')
이게 명령어를 만드는 코드입니다.
한번 자세히 보자면, @app.command()는 이 아래있는 함수가 명령어라는 뜻이고,
def 뒤에 쓰는 함수 이름은 명령어의 이름이 됩니다.
그리고 그 뒤에 ():가 있는데 괄호 안에는 꼭 ctx를 넣어야합니다.
그리고 await ctx,send()는 메시지를 보내는 역할을 합니다.
만약, 따라하기라는 명령어를 만들면, 파라미터를 써주면 됩니다.
@app.command() async def 따라하기(ctx, *, text): await ctx.send(text) @app.command() async def 따라하기2(ctx,text): await ctx.send(text) @app.command() async def 따라하기3(ctx,*text): txt = '' for tmp in text: txt += tmp txt += ', ' await ctx.send(txt[:-2])
이런식으로 사용자의 파라미터를 받을수 있습니다.
설명
첫번째 방법은, 명령어 뒤에있는 단어를 모두다 파라미터에 넣는겁니다.
원래 파라미터는 뛰어쓰기로 나뉘는데 이걸 쓰면 뛰어쓰기를 해도 인식해서 좋습니다.
두번쨰는, 첫번째 파라미터만 받는건데 이건 추천드리지 않습니다.
두번쨰는 원래
async def hello(ctx, health, height):
이런식으로 쓰는겁니다.
세번째는, 리스트 ( 배열)로 하는건데 파라미터 앞에 *을 붙이면, 배열로 인식을 해서
/hello(명령어) 안녕하세요, 명이입니다.
라고 치면, ['안녕하세요,','명이입니다.']라고 반환됩니다.
그래서 for문을 이용해서 붙이는겁니다.
마무리
오늘은 이렇게 명령어 입력과 출력에 대해 알려드렸는데요,
이런식으로 자신만의 명령어를 만들어보세요!
다음시간 예고
다음시간에는 한번 암배드 만드는법을 알려드리겠습니다.