【发布时间】:2020-10-25 16:41:39
【问题描述】:
我的目标
我正在开发一个类似于“Discord Delivers”和“Pizza Byte”的不和谐机器人。我正在尝试获取术语/关键字列表并检查命令后的参数(命令的代码在这篇文章的末尾);因此,如果他们执行>order BadWord,那么它会检查它是否包含先前指定的列入黑名单的术语之一,如果是,则确实像await ctx.send("Due to your order containing one of the blacklisted terms, your order will not be placed.") 或类似的东西。我很抱歉没有说出我所尝试的,我所能想到的,是对每个单词做if args in blacklist: 或类似的事情。
我的密码
@bot.command(pass_context=True)
async def order(ctx, *, orderItem):
channel = bot.get_channel(CHANNEL ID OF THE CHANNEL)
link = await ctx.channel.create_invite(max_age = 300)
global baseNumberID
baseNumberID += 1
global orderIDdf
global df
df[str(baseNumberID)] = ctx.author.name
embed=discord.Embed(title="New order", color=0xfc57ff)
embed.add_field(name="Who and Where", value="{} in {} in the {} channel".format(ctx.message.author, ctx.message.guild.name, ctx.message.channel.mention), inline=False)
embed.add_field(name="What", value="{}".format(orderItem), inline=False)
embed.add_field(name="Invite", value="{}".format(link), inline=False)
embed.add_field(name="Order ID", value="Order ID is {}".format(baseNumberID), inline=False)
embed.add_field(name="Time", value="{} GM time".format(strftime("%Y-%m-%d %H:%M:%S", gmtime())), inline=True)
embed.set_footer(text="End of this Order")
#Second embed that will be used later.
deliverIDInfo = str(baseNumberID)
deliverInfoEmbed=discord.Embed(title="Order Info")
deliverInfoEmbed.add_field(name="Who and Where", value="{} in {} in the {} channel".format(ctx.message.author, ctx.message.guild.name, ctx.message.channel.mention), inline=False)
deliverInfoEmbed.add_field(name="What", value="{}".format(orderItem), inline=False)
deliverInfoEmbed.add_field(name="Invite", value="{}".format(link), inline=False)
deliverInfoEmbed.add_field(name="Order ID", value="Order ID is {}".format(baseNumberID), inline=False)
deliverInfoEmbed.add_field(name="Time", value="{} GMT time".format(strftime("%Y-%m-%d %H:%M:%S", gmtime())), inline=True)
deliverInfoEmbed.set_footer(text="End of this Order")
orderIDdf[deliverIDInfo] = deliverInfoEmbed
await ctx.author.send("Your order has been placed!")
await ctx.author.send(embed=embed)
await channel.send(embed=embed)
额外
如果可能的话,列入黑名单的术语可以是 json 文件还是文本文件?谢谢。
编辑:澄清
我想我应该澄清一下,我确实定义了所使用的变量。一切正常。
【问题讨论】:
标签: python python-3.x discord discord.py discord.py-rewrite