使用 Python Discord 机器人删除消息?

Delete Messages with Python Discord bot?(使用 Python Discord 机器人删除消息?)
本文介绍了使用 Python Discord 机器人删除消息?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

限时送ChatGPT账号..

我正在尝试制作一个 Python Discord Bot,它首先可以删除频道中的消息.我希望它以终结者 3 为主题,所以它会从用户说天网开始,然后机器人要求激活 Y 或 N?当用户输入Y时,它会删除频道中的所有消息,如果用户输入N,它会说审判日是不可避免的.任何帮助将不胜感激.

I'm trying to make a Python Discord Bot that firstly can delete messages within a channel. I wanted it to be Terminator 3 themed so it would start out by the user saying Skynet then the bot asks to activate Y or N? and when the user types Y it would delete all the messages in the channel if the user typed N it would say judgment day is inevitable. any help would be greatly appreciated.

import discord
from discord.ext.commands import Bot
from discord.ext import commands
import asyncio

token = 'Token'

Client = discord.Client()
client = commands.Bot(command_prefix = '!')


@client.event
  async def on_ready():
     print("Skynet Online")

@client.event

  async def on_message(message):
    if message.content == 'skynet':
        await client.send_message(message.channel, 'Execute Y/N?')

@asyncio.coroutine
  async def delete_messages(messages):
    if message.content == 'Y':
        await client.delete_messages()


client.run('Token')

推荐答案

import discord
from discord.ext.commands import Bot
from discord.ext import commands
import asyncio

@has_permissions(manage_messages=True, read_message_history=True)
@bot_has_permissions(manage_messages=True, read_message_history=True)
async def purge(ctx, limit: int = 100, user: d.Member = None, *, matches: str = None):
    """Purge all messages, optionally from ``user``
    or contains ``matches``."""
    logger.info('purge', extra={'ctx': ctx})
    def check_msg(msg):
        if msg.id == ctx.message.id:
            return True
        if user is not None:
            if msg.author.id != user.id:
                return False
        if matches is not None:
            if matches not in msg.content:
                return False
        return True
    deleted = await ctx.channel.purge(limit=limit, check=check_msg)
    msg = await ctx.send(i18n(ctx, 'purge', len(deleted)))
    await a.sleep(2)
    await msg.delete()

即删除消息的命令

这篇关于使用 Python Discord 机器人删除消息?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

How do I make a list of all members in a discord server using discord.py?(如何使用 discord.py 列出不和谐服务器中的所有成员?)
how to change discord.py bot activity(如何更改 discord.py 机器人活动)
Issues with getting VoiceChannel.members and Guild.members to return a full list(让 VoiceChannel.members 和 Guild.members 返回完整列表的问题)
Add button components to a message (discord.py)(将按钮组件添加到消息(discord.py))
on_message() and @bot.command issue(on_message() 和@bot.command 问题)
How to edit a message in discord.py(如何在 discord.py 中编辑消息)