前提・実現したいこと
Discord.pyを使って自分で荒らし対策Botを作ろうとしていまして、特定の言葉を発言して何回か以上それを発言したらBanするものを作りたいです。特定の言葉を発したメッセージを削除することはできたのですが、Banはなぜかできません。初心者ですので、できれば初心者にもわかりやすいようにお願い致します。
発生している問題
3, 4回以上フィルターした言葉を発しても削除されるだけでBANされない
該当のソースコード
Python
@bot.event async def on_message(message): filtered_words = ["フィルターしたいもの"] for word in filtered_words: if word in message.content.lower(): await message.delete() embed= discord.Embed(color=discord.Color.red()) embed.set_author(name="自動削除") embed.add_field(name="ユーザー:", value=f"{message.author.mention}", inline=False) embed.add_field(name="削除されたワード:", value=f"{word}", inline=False) embed.add_field(name="メッセージ:", value=f"{message.content}", inline=False) embed.set_footer(text=f'ユーザー ID: {message.author.id}') embed.timestamp = datetime.datetime.utcnow() ch_name = "チャンネル名" for channel in bot.get_all_channels(): if channel.name == ch_name: await channel.send(embed=embed) counter = 0 counter += 1 if counter > 3: user = bot.get_user(message.author.id) await user.ban() print(str(counter))
試したこと
同様な症状やコードの書き方を調べて改善できるか試してみましたがダメでした。
補足情報(FW/ツールのバージョンなど)
Python3.9
まだ回答がついていません
会員登録して回答してみよう