Jadi saya membuat perintah bantuan dengan menu bantuan yang berbeda. Seperti yang dimiliki mee6. tetapi saya ingin menambahkan pesan karena tidak ada argumen yang diberikan. Bagaimana cara melakukannya? Inilah yang saya miliki sekarang:

@bot.command(name='help')
async def help(ctx, *, content):
    if content == ('Moderation'):
        await ctx.send(moderationmenu)
    if content == ('fun'):
        await ctx.send(funmenu)
    if content == None:
        await ctx.send('please provide an argument (Moderation / fun)')
0
kezz 1 Juni 2020, 22:40

1 menjawab

Jawaban Terbaik

Anda dapat memberikan nilai argumen default seperti:

@bot.command(name="help")
async def help(ctx, *, content = None):
    if not content: # more pythonic way of checking a variable is None or not
        await ctx.send("Please provide an argument (moderation / fun)")
    elif content.lower() == "fun": # brackets not necessary
        await ctx.send(funmenu)
    elif content.lower() == "moderation": # makes it case insensitive
        await ctx.send(moderationmenu)
    else:
        await ctx.send("Sorry, I didn't recognise that category. Please choose (moderation / fun)")

Pengeditan cepat - jika Anda memiliki menu yang diurutkan ke dalam variabel terpisah, Anda dapat memetakannya dalam dict:

@bot.command(name="help")
async def help(ctx, *, content = None):
    menus = {"fun": funmenu, "moderation": moderationmenu}
    if not content:
        await ctx.send("Please provide an argument (moderation / fun)")
    else:
        try:
            await ctx.send(menus[content.lower()])
        except KeyError:
            await ctx.send("Sorry, I didn't recognise that category. Please choose (moderation / fun)")

Referensi:

0
Diggy. 1 Juni 2020, 20:09