質問: discord.utils.get(message.guild.roles, name='権限名') await message.author.remove_roles(role) ``` ### 知りたい事 今まではこのように ``` discord.utils.get(message.guild.roles, name='権限名') ``` 役職名を指定していましたが ・チャンネルidでチャンネルを指定して ・idで権限を付与するメンバーを指定して ・付与する権限を選択する方法 がわかりません。 ### 補足情報 ちなみに、付与したい権限は「チャンネルを見る」と「メッセージを送信」です。 Discord開発者ポータルを使って権限を選択し、許可整数というものは出す事ができました。「3072」 ここ↓に「channle=123456...(チャンネルid)」のようにするのか...?と予想しています。 ``` discord.utils.get(message.guild.roles, ここ) ```
回答: 補足情報にある許可整数はBOTの持つデフォルトの権限を計算するためのものです。ユーザーには関係がありません。 discord.py 1.3.0a ドキュメント `discord.TextChannelクラス`の`set_premission`メソッドを使います。 ``` channel = client.get_channel(チャンネルID) member = channel.guild.get_member(メンバーID) await channel.set_permissions(member,read_messages=True,send_messages=True) ``` 第一引数には`target`、つまり権限を上書きしたい役職やメンバーを指定します。 なお、このコードでは権限を直書きしましたが、ドキュメントの通り`discord.PermissionOverWrite`クラスのインスタンスを作成しそれを`overwrite`引数に指定することでも権限を設定できます。