有没有办法用 python 将“说”命令编码到我的不和谐机器人中?

时间:2021-05-16 14:57:03

标签: python discord.py

我尝试了不同的选择,这是我最想要的一个,但我似乎无法让它工作。我能得到一些帮助吗? (对不起,我对编码很陌生)

这是我的代码:

import discord
from discord.ext import commands

client = discord.Client()
bot = commands.Bot(command_prefix='-')

@bot.command()
async def speak(ctx, *, text):
  if ctx.message.author.id == ID here:
    message = ctx.message
    await message.delete()
    
    await ctx.send(f"{text}")
  else:
    await ctx.send('I need text!')

谢谢

1 个答案:

答案 0 :(得分:1)

您的 else 语句在这里毫无意义。最好以不同的方式设置条件,即您需要 text 一次,如果没有发生,则存在 else 参数。

我也不知道这是否相关,但显然您希望只有一个人能够执行此命令。对于所有者,将有:

@commands.is_owner()

但是如果你想让它引用另一个人,请使用:

@bot.command()
@commands.is_owner() # If you want to set this condition
async def say(ctx, *, text: str = None):
    if ctx.message.author is not ID_You_Want:
        await ctx.send("You are not allowed to use the command.")
        return # Do not proceed
    if text is None: # If just say is passed with no text
        await ctx.send("Please insert a text.")
    else:
        await ctx.send(text) # Send the text

可选:您还可以删除使用 ctx.message.delete()

发送的命令

您的命令没有执行,因为您定义了 clientbot。 只需删除 client = discord.Client() 就可以了。