как сделать уникальный префикс для сервера discord.py?

Подскажите, пожалуйста, как сделать уникальный префикс для каждого сервера на котором находится бот. Допустим чтобы на одном сервере пользователь мог поставить для бота тот префикс, который хочет и это бы не влияло на префиксы на других серверах. Необходимо чтобы работало с декоратором @bot.command(). Возможно ли обойтись без on_message?


Ответы (1 шт):

Автор решения: Fixator10

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

GUILD_PREFIXES = {840938031829325150: "?"}

def guild_based_prefix(bot, message):
    return GUILD_PREFIXES.get(message.guild.id, "!")

bot = commands.Bot(prefix=guild_based_prefix)

Таким образом, на сервере с ID 840938031829325150 все команды будут выполняться с префиксом ?, а на остальных серверах - с префиксом !

→ Ссылка