discord bot ロールの取得がうまくいかない python

実現したいこと

lockedロールを持っていなければ実行するという文章を追加し実行したのですが、ロールを所持していても毎回実行されてしまいます。

前提

discordのBotで!gatherと打った時にlockedロールを持っていなければ一か所のvoicechannelに集める機能
python3.9.2

発生している問題

if message.content == '!gather': channel = message.author.voice.channel if channel is not None: for guild in client.guilds: for member in guild.members: if member.voice: # "locked"という名前のロールを探す role = discord.utils.get(member.guild.roles, name="locked") print(role in member.roles) if role is None or role in member.roles: continue # "locked"ロールがあり、ユーザーがそのロールを持っていない場合 await member.edit(voice_channel=channel) print("command executed") else: await message.channel.send('あなたはボイスチャネルにいません')

試したこと

role = discord.utils.get(member.guild.roles, name="locked")
print(role in member.roles)の結果がlockedロールを所持してても
false
と返されてしまう
全員が所持しているとtrueとなるが処理は実行されてしまう

コメントを投稿

0 コメント