前提・実現したいこと
Discordpyでグローバルチャットを作りたくてコードを書きましたが、うまく動作しません。
上手く動作させるためにはどうすればよいでしょうか。
発生している問題・エラーメッセージ
コンソールには何も表示されませんでした。
該当のソースコード
python
1@client.event 2async def on_message(message): 3 if message.author.bot: 4 return 5 6 with open("gchat_ch.txt") as f: 7 gchat_ch=f.read() 8 9 GLOBAL_WEBHOOK_NAME = "Broccoli Candy" 10 11 if message.channel.id == gchat_ch: 12 await message.delete() 13 14 channels = client.get_all_channels() 15 global_channels = [ch for ch in channels if ch.id == gchat_ch] 16 17 for channel in global_channels: 18 ch_webhooks = await channel.webhooks() 19 webhook = discord.utils.get(ch_webhooks, name=GLOBAL_WEBHOOK_NAME) 20 21 if webhook is None: 22 continue 23 embed = discord.Embed(description=f"\n{message.content}", color=0x00bfff) 24 embed.set_author(name=f"{message.author.name}#{message.author.discriminator}(ID:{message.author.id})") 25 embed.set_footer(text=f"{message.guild.name} | サーバーID:{message.guild.id}",icon_url=message.guild.icon_url_as(format="png")) 26 embed.set_thumbnail(url="https://cdn.discordapp.com/avatars/"+str(message.author.id)+"/"+message.author.avatar+".png") 27 if message.attachments: 28 message2 = await client.get_channel(731052201601925151).send(file=await ctx.message.attachments[0].to_file()) 29 embed.set_image(url=message2.attachments[0].url) 30 await webhook.send(content=embed,username="Broccoli Candy")
試したこと
inの代わりにre.searchを使用して試しましたが状況は全く変わらず、エラーメッセージも出力されません。
gchat_ch.txtの中身には000000,111111のような感じでグローバルチャット化したいチャンネルIDを指定しています。
補足情報(FW/ツールのバージョンなど)
WindowsのVScode上のターミナルでデバックしました。
VScode上のPythonバージョンは3.9.2です。
他にUbuntu20.04環境下でデバックも行いましたがWindowsと同様の症状です。
Discordのテキストチャンネル上での権限不足は何度も確認しましたが一切ありません。
またgchat_ch.txtに記入しているチャンネルID間のみに制限する理由としては、gchat_ch.txtには信頼できるDiscordサーバー上のチャンネルIDを指定しておくことで、荒らしやセルフボット等を未然に防ぐためです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。