И как сделать, чтобы по истечению срока юзер разбанился - даже если бот перезапускался итд?
Сохранять в базе данных, когда нужно разбанить его.
Когда бот выключен - он конечно ничего не сможет сделать, но после включения - просто можно прочитать БД и разбанить всех, кому пришёл срок
Как сделать такую опцию?
Для этого нужно использовать Application Command:
https://ptb.discord.com/developers/docs/interactio...
Предварительно её нужно зарегистрировать:
https://ptb.discord.com/developers/docs/interactio...
Вот так это делается через discord js:
https://discordjs.guide/interactions/slash-command...
Для того чтобы сделать выбор из вариантов, как сделано для duration - тебе нужен тип NUMBER или STRING и заполнить поле choices