目前我正在使用
vouch_channel = client.get_channel(828696942250295316)
@client.command()
async def vouch(message):
async def vouch(ctx,member : discord.Member):
if ctx.author == member:
await ctx.send("You can't vouch yourself")
if message.channel.id == vouch_channel.id:
auth = ctx.author and ctx.author.mention and ctx.author.id
await open_vouches(ctx.author)
await open_vouches(member)
await update_vouches(member,+1,'vouches_gotten')
await update_vouches(ctx.author,+1,'vouches_given')
await ctx.reply(f'<:icon_checkmark:827639277285408829> {ctx.author.mention} You vouched for {member}!')
print('[LOGS] bot was used for vouch')
else:
#command attempted in non command channel - redirect user
await message.channel.send('Write this command in {}'.format(vouch_channel.mention))
尝试这样做,我尝试改变周围的事物,但没有奏效。
我真的不知道该怎么办
我也在做黑社会
@client.command()
async def vouch(message,ctx,member : discord.member):
而不是做我在那里做过的事情,我也尝试过
@client.command()
async def vouch(message)(ctx,member : discord.member):
但这也没有用。
请帮帮我
答案 0 :(得分:0)
乍一看,您的函数中的参数顺序似乎已关闭。如果您不使用 cog,则 ctx 应该是要传递的第一个参数。 您可能还会遇到多字消息的问题,因此您可以使用 * 参数表示“传递的第二个参数之后的所有内容都是消息的一部分”。
试试下面的代码。您可以按如下方式使用该命令:!vouch @Kelo This is my message
@client.command()
async def vouch(ctx, member : discord.Member, *, message):
if ctx.author == member:
await ctx.send("You can't vouch yourself")
return
elif ctx.channel.id != 828696942250295316:
await ctx.send("You can't vouch in this channel")
return
#Rest of your code