Создание команд, чтобы только определенные серверы могли это делать - PullRequest
0 голосов
/ 27 мая 2018

Я хочу, чтобы только некоторые серверы могли использовать эту функцию, показанную ниже.

Я хочу знать, есть ли способ сделать это так, чтобы только определенные идентификаторы сервера могли использовать эту команду.

@bot.command(pass_context = True)
async def shittymeme(ctx):
    api = 'https://api.imgflip.com/get_memes'
    response = requests.get(api)
    url = random.choice(response.json()['data']['memes'])
    url = url['url']
    await bot.say( embed = discord.Embed(color = 0x0072ff, title = "Here you go").set_image(url = url))

1 Ответ

0 голосов
/ 27 мая 2018

Если у вас есть белый список идентификаторов серверов, вы можете воспользоваться функцией Checks, встроенной в расширение commands.

whitelist = ["id1", "id2"]

def is_in_server_list(server_list):
    def predicate(ctx):
        return ctx.message.server.id in server_list
    return commands.check(predicate)

@bot.command(pass_context = True)
@is_in_server_list(whitelist)
async def shittymeme(ctx):
    api = 'https://api.imgflip.com/get_memes'
    response = requests.get(api)
    url = random.choice(response.json()['data']['memes'])
    url = url['url']
    await bot.say( embed = discord.Embed(color = 0x0072ff, title = "Here you go").set_image(url = url))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...