如何在Disnake中创建可删除100条消息的删除命令?
使用Disnake实现批量删除消息命令
下面是实现删除当前频道100条消息的Disnake命令代码,包含权限校验和错误处理:
import disnake from disnake.ext import commands # 初始化Bot,可根据需求调整命令前缀和Intents配置 bot = commands.Bot(command_prefix="!", intents=disnake.Intents.all()) @bot.slash_command(name="clear", description="批量删除当前频道的100条消息") @commands.has_permissions(manage_messages=True) async def clear_messages(ctx): try: # 执行批量删除操作,limit参数指定删除消息数量 deleted_messages = await ctx.channel.purge(limit=100) # 发送删除结果提示,5秒后自动删除该提示消息 await ctx.send(f"已成功删除 {len(deleted_messages)} 条消息", delete_after=5) except Exception as error: # 捕获并反馈错误信息 await ctx.send(f"删除失败:{str(error)}", delete_after=5) # 替换为你的Bot令牌 bot.run("YOUR_BOT_TOKEN")
关键说明
- 用
slash_command定义斜杠命令,贴合Discord当前交互规范;若需要前缀触发命令,可替换为@bot.command() @commands.has_permissions(manage_messages=True)限制仅拥有管理消息权限的用户能执行该命令ctx.channel.purge(limit=100)是核心删除逻辑,会删除频道内最近的100条消息(Discord API限制无法删除超过14天的消息)- 异常处理避免因权限不足、频道类型不支持等情况导致Bot崩溃
内容的提问来源于stack exchange,提问作者kaon8name
相关产品推荐
相关产品推荐

