如何让 discord.py 中的机器人按指定次数发送特定消息

时间:2021-01-11 23:24:21

标签: python discord discord.py

我正在尝试让我的机器人将特定消息发送一定次数。例如,您可以执行 .say hello 5 并且它会发送 5 次“hello”。这是我的 say 命令代码:

@has_permissions(manage_messages=True)
async def say(ctx, *, message=None):
    message = message or "you have to make it say something"
    message_components = message.split()
    await ctx.message.delete()
    await ctx.send(message)

3 个答案:

答案 0 :(得分:1)

在python中如果是字符串,你可以加一个*5来表示“重复字符串5次”的含义

答案 1 :(得分:1)

您必须为消息量传递一个新参数。然后,您可以在 for 循环中发送消息。此外,您不必执行 message = message or "something"。您可以将 message=None 替换为 message="something"

@has_permissions(manage_messages=True)
async def say(ctx,  amount=1, *, message="you have to make it say something"):
    message_components = message.split()
    await ctx.message.delete()
    for i in range(0, amount):
        await ctx.send(message)

答案 2 :(得分:1)

@client.command()
@commands.has_permissions(manage_messages=True)
async def say(ctx,  amount=1, *, message=None):
    if message == None:
        await ctx.send('You must provide a message to say!')
        return
    await ctx.message.delete()
    for i in range(amount):
        await ctx.send(message)