【问题标题】:Discord.PY Warn command reason is spaced outDiscord.PY 警告命令原因被隔开
【发布时间】:2021-05-05 23:30:21
【问题描述】:

试图发出警告命令,原因部分被隔开。

@bot.command(pass_context = True)
async def warn(ctx, user:discord.User, *, reason="None"):
    if ctx.message.author.guild_permissions.manage_messages:
        if not reason:
            await ctx.send("Please provide a reason")
            return
        reason = ' '.join(reason)
        for current_user in report['users']:
            if current_user['name'] == user.name:
                current_user['reasons'].append(reason)
                break
        else:
            report['users'].append({
                'name':user.name,
                'reasons': [reason,]
                })
        with open('vnreports.json','w+') as f:
            json.dump(report,f)
            await ctx.send(f"Succesfully reported {user} for {reason}")
        await logs(member=f'{user}', action='warned', reason=f'{reason}', mod=ctx.author)
    else:
        await ctx.send("no")
        return

以上是该命令的代码。 “logs”是一个与其他所有功能完美配合的功能。

async def logs(member, action, reason, mod):
    channel = bot.get_channel(801989689149882388)
    embed = discord.Embed(title=f"Audit Channel Post", description="---")
    embed.add_field(name=f"{member} has been {action}", value=f"Reason is {reason}", inline=False)
    embed.add_field(name=f"Action was done by:", value=f"{mod}", inline=False)
    embed.set_footer(text=f"Bot made by @vito#1000")
    await channel.send(embed=embed)

【问题讨论】:

    标签: python discord bots discord.py


    【解决方案1】:

    因为' '.join(reason)reason 已经是一个字符串,没有理由这样做。但如果它是一个列表,您可以使用''.join(reason)。这样,它不会在字符之间添加空格。你只需要删除这一行:

    @bot.command(pass_context = True)
    async def warn(ctx, user:discord.User, *, reason="None"):
        ...
        reason = ' '.join(reason) # This line has to be removed.
        ...
    

    【讨论】:

      【解决方案2】:
      reason = ' '.join(reason)
      

      这就是问题所在。这就是在行中插入空格的原因,实际上没有必要。原因已经是一个字符串。所以你可以删除那行。

      或者评论那条线到底应该做什么..

      还有

      @bot.command(pass_context = True)
      

      pass_context 不再需要,因为几个版本回来了。就做@bot.command()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-03-04
        • 2020-03-31
        • 2021-10-20
        • 1970-01-01
        • 1970-01-01
        • 2022-12-10
        • 2021-06-11
        相关资源
        最近更新 更多