discord.py — проверьте идентификатор нескольких гильдий

#python #discord.py #discord.py-rewrite

#python #discord.py

Вопрос:

Итак, я пытаюсь создать команду, доступную только для определенных гильдий.

Вот код.

Если я добавлю несколько идентификаторов гильдий, каждая гильдия сможет использовать эту команду.

 async def is_guild(ctx):
    return ctx.guild.id == someguildidhere, someguildidhere

@client.command()
@commands.check(is_guild)
async def checkispremium(ctx):
    await ctx.send("Guild owns lifetime premium.")

@checkispremium.error
async def checkispremium(ctx, error):
    if isinstance(error, commands.CheckFailure):
        await ctx.send("Guild doesn't owns premium ")
  

Однако, когда я добавляю только один идентификатор гильдии, все работает нормально. Только определенная гильдия может использовать команду, а другие получат сообщение об ошибке.

 async def is_guild(ctx):
    return ctx.guild.id == someguildidhere

@client.command()
@commands.check(is_guild)
async def checkispremium(ctx):
    await ctx.send("Guild owns lifetime premium.")

@checkispremium.error
async def checkispremium(ctx, error):
    if isinstance(error, commands.CheckFailure):
        await ctx.send("Guild doesn't owns premium")
  

Кто-нибудь знает, как у меня может быть несколько идентификаторов гильдий, я попытался просмотреть документы discordpy-rewrite, но, похоже, там ничего нет.

Ответ №1:

Используйте

 async def is_guild(ctx):
    return ctx.guild.id in [someguildidhere, someguildidhere, ...]