🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Discord

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

Python 3.x

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

Python

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

Q&A

解決済

1回答

927閲覧

Discord.py/if文を使用した警告システムのエラー

Raifu

総合スコア32

Discord

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

Python 3.x

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

Python

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

0グッド

0クリップ

投稿2020/12/19 11:50

###したい事
Discord.pyにてロールが無ければwarnロール付与、あらば別ロールを付与したい
###エラー内容

Python

1Traceback (most recent call last): 2 File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 903, in invoke 3 await ctx.command.invoke(ctx) 4 File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/discord/ext/commands/core.py", line 859, in invoke 5 await injected(*ctx.args, **ctx.kwargs) 6 File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/discord/ext/commands/core.py", line 94, in wrapped 7 raise CommandInvokeError(exc) from exc 8discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'Member' object has no attribute 'role'

###補足
Python3.8.3
###コード

Python

1@client.command() 2@commands.has_permissions(administrator=True) 3async def warn(ctx,user:discord.Member): 4 guild = ctx.guild 5 role = discord.utils.get(guild.roles, name="warn") 6 userAvatarUrl = user.avatar_url 7 if role not in user.role: 8 embed=discord.Embed(title=f"✅ __{user.name}__を警告しました", color=0xFFFF00) 9 embed.timestamp = datetime.datetime.utcnow() 10 embed.set_thumbnail(url=f'{userAvatarUrl}') 11 await user.add_roles(role) 12 await ctx.send(f'{user.mention}',embed=embed) 13 else: 14 role = discord.utils.get(guild.roles, name="権限規制") 15 embed=discord.Embed(title=f"__{user.name}__は既に警告されています",description='このBotにより自動的に処罰されました\n__処罰内容__/```権限規制```',color=0xFFFF00) 16 embed.timestamp = datetime.datetime.utcnow() 17 embed.set_thumbnail(url=f'{userAvatarUrl}') 18 await user.add_roles(role) 19 await ctx.send(f'{user.mention}',embed=embed)

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

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

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

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

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

guest

回答1

0

ベストアンサー

python

1if role not in user.role:

ここです。
Member.roleではなくMember.role**s**です。

python

1if role not in user.roles:

このように変えましょう。
また、エラー文は原因を示してくれているので、
Pythonの基本的なエラー一覧とその原因の確認方法みたいなのを参考に自分で読んでみるのもおすすめです。

投稿2020/12/19 12:03

sevenc-nanashi

総合スコア643

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問