old_stalin
@old_stalin

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

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

я делаю так и он просто не воспринимает
@bot1.command()
async def ...
  • Вопрос задан
  • 258 просмотров
Решения вопроса 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 Куратор тега Python
yellow
Ну впишите нужный вам префикс в первую инициализацию

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

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект