【discordpy】リアクションを付けた人に役職を付与する

公開日:2019-05-19
最終更新:2019-05-31

仕様

#はじめにお読みください というチャンネルのメッセージに
リアクションを付けると役職が付く。

いわゆる関門的なセキュリティ。

ソースコード

import discord  
import os  

client = discord.Client()  
token = os.environ['DISCORD_BOT_TOKEN']  

ID_CHANNEL_README = 0 # 該当のチャンネルのID  
ID_ROLE_WELCOME = 0 # 付けたい役職のID  

@client.event  
async def on_raw_reaction_add(payload):  
    channel = client.get_channel(payload.channel_id)  
    if channel.id == ID_CHANNEL_README:  
        guild = client.get_guild(payload.guild_id)  
        member = guild.get_member(payload.user_id)  
        role = guild.get_role(ID_ROLE_WELCOME)  
        await member.add_roles(role)  
        await channel.send('いらっしゃいませ!')  

client.run(token)  

固定のメッセージに対するリアクションであれば、
on_reaction_add ではなく on_raw_reaction_add を使う。
(on_reaction_add はbotのログイン前のメッセージに付くリアクションを検知できない)

コマンド打つ -> botがメッセージを出す -> リアクションを見る
という流れなら on_reaction_add の方がやりやすい。

記事が少しでもいいなと思ったらクラップを送ってみよう!
1
+1
備忘録のようなもの

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする