old_stalin
@old_stalin

Можно ли сделать 2 разных префикса?

хочу сделать что бы у меня он воспринимал 2 префикса, но через разные команды то есть:
bot1 = commands.Bot(command_prefix=['.'])
client = commands.Bot(command_prefix=settings['prefix'])

я делаю так и он просто не воспринимает
@bot1.command()
async def ...
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
В качестве значения аргумента command_prefix можно использовать функцию:
Bot.command_prefix
The command prefix is what the message content must contain initially to have a command invoked. This prefix could either be a string to indicate what the prefix should be, or a callable that takes in the bot as its first parameter and discord.Message as its second parameter and returns the prefix. This is to facilitate “dynamic” command prefixes. This callable can be either a regular function or a coroutine.


Вы можете создать функцию, которая будет возвращать префикс в зависимости от содержимого сообщения:
SPECIAL_PREFIX = "."


def context_prefix(bot, message):
    special_command = bot.get_command("choose")
    if any(
        message.content.startswith(f"{SPECIAL_PREFIX}{command_string}")
        for command_string in [special_command.name, *special_command.aliases]
    ):
        return SPECIAL_PREFIX
    return "&"


bot = commands.Bot(command_prefix=context_prefix)


Таким образом команда choose будет вызываться с префиксом ., в то время как остальные с префиксом &: 53Be2Ag.png
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix
yellow
Ну впишите нужный вам префикс в первую инициализацию

bot1 = commands.Bot(command_prefix=['.', settings[‘prefix’]])
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 130 000 ₽
deeplay Новосибирск
от 130 000 ₽
Enjoy PRO Санкт-Петербург
от 140 000 до 180 000 ₽
27 окт. 2020, в 22:07
50000 руб./за проект
27 окт. 2020, в 21:27
20000 руб./за проект
27 окт. 2020, в 20:58
60000 руб./за проект