discord botでのサーバー全員ban サーバーの全チャンネル削除

こんかいのコードはdiscord botでサーバーをclearしたい時などに使えるbotです。

モジュールのインポート

import discord
from discord.ext import commands

Discord APIを利用するためのdiscord.pyのライブラリと、コマンド機能を活用するためのモジュールをインポートしていますcommands

サーバーIDの設定:

server_id = serverid

serveridという変数がここで使用されていますが、実際のコードでは使用されるサーバーのIDを設定する必要があります。

ボットの初期化:

bot = commands.Bot(command_prefix=">", self_bot=True)

Discord ボットを初期設定、コマンドのプレフィックスを設定しています。また、としていますが、これは>自己self_bot=Trueボットとして動作させるための設定です。

on_readyイベントハンドラ:

@bot.event
async def on_ready():
    print('ログインしました:', bot.user.name)

banという名前のコマンドを定義しています。このコマンドは、サーバー内のすべてのメンバーをBANする役割を実行します。

if ctx.guild.id == server_id:

コマンドを実行したサーバーのIDが、設定したserver_idと一致するか確認しています。

banned_users = []

BANされたユーザーの名前を隠すための空のリストを作成します。

for member in ctx.guild.members:

サーバー内のすべてのメンバーに対してループを実行します。

await member.ban(reason="指定のコマンドによるban")
banned_users.append(member.name)

各メンバーをBANし、BANされたユーザーの名前をリストに追加します。侵害されるにはBANの理由が指定されていますreason

except discord.Forbidden:
print(f"Botの権限が不足しています。{member.name} をbanできません。")

discord.Forbidden例外が発生した場合、ボットの権限が不足していることを示し、そのメンバーのBANは試みられないことを示します。

print("以下のユーザーがbanされました:")
for username in banned_users:
    print(username)

最終的には、BANされたユーザーの名前をコンソールに表示します。

clearコマンド:

@bot.command()
async def clear(ctx):

clearという名前のコマンドを定義しています。このコマンドは、サーバー内のすべてのチャンネルを削除する役割を実行します。

channels = ctx.guild.channels

サーバー内のすべてのチャンネルをというフォルダーにchannels格納されます。

for channel in channels:
    await channel.delete()

チャンネルを1つずつ削除します。

print('全てのチャンネルが削除されました。')

すべてのチャンネルが削除されたことをコンソールに表示します。

ボットの実行:

bot.run("token")

ボットを実行し、Discord のプライベートを使用してボットを認証します。実際のネットワークが指定される必要があります。

すべてのコード

ここから先は

882字

¥ 300

この記事が気に入ったらサポートをしてみませんか?