質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Discord

Discordは、ゲーマー向けのボイスチャットアプリです。チャット・通話がブラウザ上で利用可能で、個人専用サーバーも開設できます。通話中でも音楽を流したり、PC画面を共有できるなど多機能な点が特徴です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1968閲覧

Discord.py テキストチャンネルを表示する権限を付与

Super--Beginner

総合スコア44

Discord

Discordは、ゲーマー向けのボイスチャットアプリです。チャット・通話がブラウザ上で利用可能で、個人専用サーバーも開設できます。通話中でも音楽を流したり、PC画面を共有できるなど多機能な点が特徴です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/10/12 13:22

編集2019/10/12 13:25

Discord.pyで作ったBotを使ってチャンネル毎の権限を付与したい

Discord.pyで作成したBotを使って役職を付与すること無く、チャンネルごとの権限を付与したり剥奪したい。

わからない事

役職毎付与する時にはこのようにして付与していましたが、チャンネルごとに付与する方法がわかりません。

python

1role = discord.utils.get(message.guild.roles, name='権限名') 2 await message.author.remove_roles(role)

知りたい事

今まではこのように

python

1discord.utils.get(message.guild.roles, name='権限名')

役職名を指定していましたが
・チャンネルidでチャンネルを指定して
・idで権限を付与するメンバーを指定して
・付与する権限を選択する方法
がわかりません。

補足情報

ちなみに、付与したい権限は「チャンネルを見る」と「メッセージを送信」です。

Discord開発者ポータルを使って権限を選択し、許可整数というものは出す事ができました。「3072」

ここ↓に「channle=123456...(チャンネルid)」のようにするのか...?と予想しています。

python

1discord.utils.get(message.guild.roles, ここ)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

補足情報にある許可整数はBOTの持つデフォルトの権限を計算するためのものです。ユーザーには関係がありません。

discord.py 1.3.0a ドキュメント

discord.TextChannelクラスset_premissionメソッドを使います。

py

1channel = client.get_channel(チャンネルID) 2member = channel.guild.get_member(メンバーID) 3 4await channel.set_permissions(member,read_messages=True,send_messages=True)

第一引数にはtarget、つまり権限を上書きしたい役職やメンバーを指定します。

なお、このコードでは権限を直書きしましたが、ドキュメントの通りdiscord.PermissionOverWriteクラスのインスタンスを作成しそれをoverwrite引数に指定することでも権限を設定できます。

投稿2019/10/14 10:40

編集2019/10/17 07:22
coolwind0202

総合スコア708

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問