2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

コマンドを打つとチャンネルを作ってくれるdiscordbotをPythonで作ろう #4 ~おまけ~

Last updated at Posted at 2021-12-27

前回までは
テキストチャンネル作成: guild.create_text_channel()

ボイスチャンネル作成 : guild.create_voice_channel()

カテゴリ作成     : guild.create_category()

の3つに触れました。

ついでなのでチャンネル削除についても作ってみたいと思います。

チャンネルを削除する

.chdel の後に

  • チャンネルidを入力しない場合: そのチャンネルを削除

  • チャンネルidを入力した場合 :id指定されたチャンネルを削除

  • idを入力したが存在しない場合:削除しない

このパターンで行きます。

コードです。

# 新しくモジュールをインポートします
from asyncio import sleep


if message.content.startswith('.chdel'):
    try:
        msg = message.content.split()
        if len(msg) == 1:
            await message.channel.send(f'{message.author.mention} が チャンネル : {message.channel}を 10秒後に 削除します。')
            await sleep(10)
            await message.channel.delete()

        else:
            ch_id = int(msg[1])
            del_channel = message.guild.get_channel(ch_id)
            if del_channel is None:
                await message.channel.send('チャンネルが見つかりません。')

            else:
                await message.channel.send(f'{message.author.mention} が チャンネル : {del_channel}を 10秒後に 削除します。')
                await sleep(10)
                await del_channel.delete()
                await message.channel.send(f'{message.author.mention} が チャンネル{del_channel} を削除しました。')
    
    except:
        await message.channel.send(f'{message.author.mention}, エラーです。')

解説

.delete()
を使います。


if len(msg) == 1: から

これは上のmsgが .chdel の1つだったらという意味です。

この場合、メッセージを送信したチャンネルを削除します。

await sleep(10)
await message.channel.delete()

10秒待ってからメッセージを送信したチャンネルを削除します。

else: 以下

  • if の条件に当てはまらなかったら(チャンネルidが入力されていなかったら)
    もしその中で指定したチャンネルが見つからなかった場合、

チャンネルが見つかりません。

と返します。

  • もしその中で指定したチャンネルが見つかった場合、
    del_channel = message.guild.get_channel(ch_id) にそのチャンネルのデータが入ります。
await sleep(10)
await del_channel.delete()

del_channel を10秒後に削除します。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?