我尝试了不同的选择,这是我最想要的一个,但我似乎无法让它工作。我能得到一些帮助吗? (对不起,我对编码很陌生)
这是我的代码:
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!')
谢谢
答案 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()
您的命令没有执行,因为您定义了 client
和 bot
。
只需删除 client = discord.Client()
就可以了。