尝试创建一个!在我的discord.py重写机器人中说出命令

2024-04-25 11:35:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用discord.py rewrite,希望创建一个命令,将命令“$say”后面的文本吐回。我查看了文档并联机查看,但找不到任何最新代码。有人知道我怎样才能做到这一点吗?谢谢


Tags: 代码文档py文本命令联机saydiscord
3条回答

在这里,我有一个say命令,它只适用于指定的用户id

async def speak(ctx, *, text):
    if ctx.message.author.id == 621102107621326878:
        message = ctx.message
        await message.delete()

        await ctx.send(f"{text}")
    else:
        await ctx.send('lol mate what u doin that isn\'t a real command')

如果您想要普通的,请执行以下操作:

async def speak(ctx, *, text):
    message = ctx.message
    await message.delete()

    await ctx.send(f"{text}")

如果要使用命令,请确保导入命令,然后创建上下文参数。像这样:

import discord
from discord.ext import commands

bot = commands.Bot(command_prefix='$')

@bot.command()
async def say(ctx, message=None)
    await ctx.send(message)

bot.run("TOKEN HERE")

这个命令将由$say message执行,因为当我们定义bot时,我们设置了前缀,当我们设置命令时,我们执行了async def name,显然我们的命令名是say

因此,当您的bot运行时,在discord中,您可以执行$say good morning!,bot将在该通道中使用good morning!进行回复

发送是一个协同程序,这就是为什么我们在它前面等待的原因。ctx定义了通道,而message是我们的message参数

一些有用的资源:

@bot.command()
async def say(ctx, *, question):
    await ctx.message.delete()
    await ctx.send(f'{question}')

我之所以发送此邮件,是因为您可以使用此邮件并让它删除作者的邮件。然后它还会在您发出命令后发送任何类型的消息

相关问题 更多 >