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 のプライベートを使用してボットを認証します。実際のネットワークが指定される必要があります。
すべてのコード
ここから先は
¥ 300
この記事が気に入ったらサポートをしてみませんか?