如何使我的discord.py bot只允许@everyone和@here来自管理员和mod,而不是普通成员


import discord
from discord.ext import commands 
bot = discord.Bot(command_prefix='!')
@bot.event
@commands.has_permissions(administrator=False)
async def delmessage(message):
await message.delete()

正如stijndcl在评论中解释的那样,最好的解决方案是直接在服务器设置中只允许管理员和版主使用@everyone@here

如果您仍然想使用bot,可以使用on_message处理程序轻松完成,然后检查消息作者的角色以删除或保留消息。

这个方法的问题是过滤过程在之后完成消息发布,因此删除一个未经授权的ping将创建幽灵ping,因此对您的服务器成员来说是一个糟糕的体验(再次说明,当存在一个用于此确切目的的设置时,为什么要麻烦)。

最新更新