파이톤으로 지령 하나면 채널을 만들 수 있는discordbot 만들자#2

저번의 계속.
편지 받은 후 동작
다음은 메시지 내의 특정한 정보에 반응하는 프로그램을 써 보세요.!;; 등에서 시작된 bot 기능은 모두 사용한 적이 있을 것이다.
이 글자는Prefix라고 합니다.이것에 대한 코드를 쓰면 길어지니까 안 쓰는 방법을 설명해 주세요.(나도 언제 그것을 사용하는 사이트를 만들고 싶다.)
@client.event
async def on_ready():
    print(f'Logged in as: {client.user.name}')
    print(f'With ID: {client.user.id}')

# ここに書いていきます

client.run('TOKEN')
on_ready()client.run()사이
@client.event
async def on_message(message:discord.Message):
    if message.content.startswith('.txt'):
        :
        :
이렇게 써.on_message(message:discord.Message)
여기에 쓴 정보를 보낼 때 다음 프로그램을 실행하십시오.그래서 기본적으로 여기에 많은 것을 첨가했다.if message.content.startswith('.txt'):.txt정보를 시작하면 다음과 같은 일을 한다는 뜻이다.
반면if message.content.endswith('。'):끝난글이발표되면다음과 같은일을 하겠다는의미다.
받은 정보에 따라 행동을 결정하다
예를 들어 Rythm에서는 !p (曲の名前やURL) 또는 !loopqueue 명령이 있습니다.
이와 마찬가지로 공백이 있을 때의 정보로 분리합니다.
# on_message内
async def on_message(message: discord.Message):
    msg=message.content.split()
    # '.txt (新しいチャンネル名)' で新しいテキストチャンネルを作る
    if message.content.startswith('.txt'):
        # try文でエラーが出る部分を例外処理
        try:
            if len(msg[1]) > 0:
                await message.channel.send(f'{message.author.mention}がテキストチャンネルを作成しました。\n'
                                       f'チャンネル名は、{msg[1]} です。')

        # エラーが出た時の対処
        except:
            await message.channel.send(f':thinking: ,{message.author.mention} チャンネル名を入力してください。')
코드 해설msg=message.content.split()부터 설명합니다..split()는 괄호의 내용으로 문장을 나눈다는 뜻이다.여기는 공백이니 구분자를 사용하지 마세요.message.contentif문 해설 때도 했던 채널에 적힌 메시지의 내용이다.
이 경우 .txt부터 시작된 정보는'.txt', (채널명) 두 가지로 나뉜다.msg= 밑에 print(msg)를 붙여 보세요. 사진의 예에서.['.txt', 'wow'].

다음은try문장 아래의 설명이다.
try문은 프로그램을 실행할 때 오류가 발생한 경우 예외가 발생한 경우에만 어떤 처리를 할 수 있는지에 대한 또 다른 기술이다.
참조(try 정보)
채널을 만들다
채널을 만들려면 discord.Guild 클래스의 create_text_channel(), create_voice_channel()를 사용합니다.
채널은 기본적으로 어떤 종류에 속한다.
# msg[1] に入っている文字列をチャンネル名にする
await message.guild.create_text_channel(name=msg[1])
이것을 위try문의 맨 아래에 연결해라.
if message.content.startswith('.txt'):
    msg = message.content.split()

    #チャンネルを作る
    try:
        # チャンネル名が存在した時
        len(msg[1]) > 0
        await message.channel.send(f'{message.author.mention}がテキストチャンネルを作成しました。'
                                       f'\nチャンネル名は、{msg[1]} です。')
        # メッセージの発せられたカテゴリに新しいチャンネルを作る
        await message.guild.create_text_channel(name=msg[1])
        # 2021/12/27追記
        # 同じカテゴリに作りたい場合、(name=msg[1], category=message.channel.category)としてください

    except:
        # チャンネル名が入っていない時
        await message.channel.send(f':thinking: ,{message.author.mention} チャンネル名を入力してください。')
해설
>> await message.channel.send(f'{message.author.mention}がテキストチャンネルを作成しました。… :
(성공시)
텍스트 채널을 만들었습니다.
채널 이름은 입니다.
(실패 시)
,, {message.author.mention} 채널 이름을 입력하십시오.

이렇게 돼서
다음은 삶은 종이의 제작과 분류 제작에 관한 것이다.
다음번 여기 있습니다.

좋은 웹페이지 즐겨찾기