Ну я бы сказал, зачем это вообще?
Во-первых, дискорд активно подталкивает ботов на использование слэш-команд, которым префикс не нужен.
Во-вторых, дискорд.пи и его клоны типа nextcord имеют параметр бота
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 nextcord.Message as its second parameter and returns the prefix.
Т.е. вместо тупо строки префикса можно передать функцию вида
def prefix_func(bot, message) -> str:
, которая будет вызываться для каждого сообщения, и возвращать желаемую строку префикса. Это не только позволяет менять префикс динамически, не трогая бота (бот как дёргал функцию, так и будет дёргать), но и позволяет делать вещи типа "свой префикс у разных серверов".
И никаких велосипедов изобретать не потребуется. Всё уже придумано.