このBotは、指定したユーザーに順次ロールを自動で付与するDiscordボットです。MEE6などの初期ロールが付与されたことをトリガーに、その後のロールを自動的に時間間隔を開けて付与します。このBotはPythonのdiscord.py
ライブラリを利用しています。
-
Pythonとライブラリのインストール
- Python 3.8以上がインストールされていることを確認してください。
discord.py
ライブラリをインストールするには、以下のコマンドを実行します:pip install discord.py
pytz
ライブラリも必要です。以下のコマンドでインストールしてください:pip install pytz
-
Botトークンの取得
- Discord Developer Portal (https://discord.com/developers/applications)で新しいアプリケーションを作成し、Botのトークンを取得してください。
bot.run('YOUR_TOKEN_HERE')
の部分に取得したトークンを貼り付けてください。
-
ロールIDの設定
role_ids
とinitial_role_id
に各ロールのIDを設定する必要があります。role_ids
は、順次付与したいロールのIDを順番にリストとして設定します。initial_role_id
は、初期ロールとして付与されるロールのIDを設定します。- 各ロールIDの取得方法については、Discordの開発者モードを有効にし、サーバー内の各ロールを右クリックして「IDをコピー」を選択してください。
-
Botの起動
- コードをPythonで実行してBotを起動します:
python app.py
- Botは指定されたトークンでDiscordサーバーに接続し、ロールの付与処理を行います。
- コードをPythonで実行してBotを起動します:
-
ロールの自動付与の流れ
- メンバーが
initial_role_id
のロールを付与された際、設定されたタイミングで次々にrole_ids
のロールが付与されます。 - それぞれのロールは、指定された時間(例:1日と18時間後など)の遅延をもって順次付与されます。
- メンバーが
-
ロール付与の監視 (
on_member_update
)on_member_update
イベントはメンバーのロールが変更された際に呼び出されます。- 初期ロールが付与されたタイミングで次のロールを順次付与するプロセスを開始します。
-
ロールの付与 (
give_role
)give_role
関数は指定されたロールIDを使ってメンバーにロールを付与します。- ロール付与中にエラーが発生した場合には、コンソールにエラーメッセージを表示します。
-
ロール付与のタイミング制御 (
start_role_assignment
)start_role_assignment
関数は指定した遅延時間後に次のロールを付与します。- 初期ロールからの時間や、それぞれの次のロールまでの遅延時間を設定し、順次実行します。
- Botを実行するためには、対象のDiscordサーバーで適切な権限(ロール管理権限など)が必要です。
- ロールIDを設定する際には、必ず正しいIDを使用してください。不適切なIDを設定すると、ロールが見つからないエラーが発生します。
discord.py
ライブラリのバージョンによっては、コードの修正が必要な場合があります。discord.py
v2.0以上の場合は注意してください。
- Botがオンラインにならない: Botトークンが正しいか確認してください。また、Botがサーバーに追加されていることを確認してください。
- ロールが付与されない: 設定したロールIDが正しいか、Botにロール管理の権限があるか確認してください。
- エラーメッセージ: コンソールに出力されるエラーメッセージを確認し、適切に対応してください。
このプロジェクトはMITライセンスの下で公開されています。自由に使用・修正が可能です。