実現したいこと
discord.py を使ってDiscordのDMで特定の言葉を入力すると、自動でチャンネルを閲覧可能になる役職(権限)を付与する、合言葉BOTを制作したいと思っているのですが、可能ですか?
DMで行うことに関して、サーバーのテキストチャンネルで合言葉を入力するとなると、他の参加者にも見えてしまう恐れがあると思ったので、出来ればDM内で行いたいという事です。
例
DM内にて 「?r ラーメン大好き」 と入力すると、ラーメン好き という役職が付与され、チャンネルが閲覧できるようになる
該当のソースコード
role_ID = 0 role = message.guild.get_role(role_ID) await user.add_roles(role)
これらを使ってメッセージを読み込むと役職付与する事が、DM内で出来るかどうか...
DMにこだわらなくても匿名で出来るのであれば教えてください
補正したソースコード
下記の回答を基に組んだソースコード
Python
1import discord 2from discord.ext.commands import Bot 3 4 5# discord.ext.commands.Botはdiscord.Clientのサブクラスなので 6# discord.Clientのメソッド(get_guild()とか)も使える 7bot = Bot(command_prefix='?') 8 9GUILD_ID = 0 10ROLE_ID = 0 11 12 13role = None 14 15 16@bot.event 17async def on_ready(): 18 guild = bot.get_guild(GUILD_ID) 19 role = guild.get_role(ROLE_ID) 20 21 22@bot.command(name='r') 23async def add_role(ctx, word): 24 if (role is not None 25 and isinstance(ctx.message.channel, discord.DMChannel) 26 and word == 'ラーメン大好き'): 27 await ctx.message.author.add_roles(role) 28 29 30bot.run('TOKEN')
###補正したソースコードのエラーコード
Pyhton
1Run flake8 --ignore=E302,E501 2./discordbot.py:19:5: F841 local variable 'role' is assigned to but never used 3./discordbot.py:25:9: W503 line break before binary operator 4./discordbot.py:26:13: W503 line break before binary operator 5Error: Process completed with exit code 1.

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/21 20:26 編集
2021/10/22 01:47
2021/10/22 10:21 編集
2021/10/22 10:24
2021/10/22 12:27 編集
2021/10/22 12:36
2021/10/22 13:20
2021/10/22 13:47 編集
2021/10/22 16:44
2021/10/22 18:32 編集
2021/10/22 18:30
2021/10/22 19:42
2021/10/22 20:41
2021/10/22 20:52
2021/10/23 09:17
2021/10/23 09:19
2021/10/23 09:39
2021/10/23 11:16 編集
2021/10/23 11:20
2021/10/23 11:21
2021/10/23 11:32 編集
2021/10/23 11:40
2021/10/23 11:48
2021/10/23 12:13 編集
2021/10/23 12:14
2021/10/24 16:17
2021/10/24 23:59