You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 08:20:48