python - 阻止某个 discord.py 频道中的命令
问题描述
所以我最近添加了这段代码
@bot.event
async def on_message(message):
prefix = re.findall('([;]|[-]|[=]+)', message.content.lower())
if prefix and message.channel.id == "405815888177266689":
await bot.delete_message(message)
机器人确实删除了消息,但机器人检测到命令太快,因此其他机器人回复。我想让它在其他机器人无法回复的地方。我要问的是 - 是否可以基本上将清除添加到此命令以使其清除最近的 2 条消息(命令 + 机器人回复)。
解决方案
你可以做这样的事情
@bot.event
async def on_message(message):
prefix = re.findall('([;]|[-]|[=]+)', message.content.lower())
if prefix and message.channel.id == "405815888177266689":
await bot.delete_message(message)
muted_bots = ['bot_1_id','bot_2_id']
async for msg in bot.logs_from(bot.get_channel("405815888177266689"), limit=4):
if msg.author.id in muted_bots:
await bot.delete_message(msg)
在某人使用该前缀写了一条消息并被删除后,它会检查最后的消息数量(无论您放置什么limit
,取决于有多少机器人响应)并检查写该消息的人是否在您的muted_bots
id 列表中。
推荐阅读
- python - 如何使用 python 自动上传 Youtube
- php - Foreach 从一个数组访问数据
- javascript - 如何在清单 v3 Chrome 扩展程序中定期调用函数?
- java - Java 使用带有 javax.sound.sampled.Clip 的 mp3、ogg 和 wav 文件(或获取声音文件的比特率)
- sql - 基于变量有条件地检索数据
- java - 我为这个计划编写了一个程序,但我想知道程序是否有任何答案和我的写作不同?
- c# - C# 将联系人同步到 AD 的最佳方法
- python - 执行批量插入 SQLAlchemy 的最佳方法
- reactjs - 通过改变反应状态来更改反应传单层网址会引发错误-> TypeError:无法读取未定义的属性“调用”
- mysql - 查找sql中每个不同行的最大计数