Есть целый ряд библиотек на Python с реализацией Discord API, но почти всеми никто не пользуется, за исключением одной - discord.py. Библиотека настолько хороша, что весь интернет усыпан примерами и решениями именно с её использованием, а про другие никто и не знает почти. К сожалению, автор забросил разработку по личным причинам, но есть форки, идентичные натуральным, в частности, disnake, nextcord, pycord. Но многие до сих пор пользуются оригинальной библиотекой. Для указанной в вопросе функциональности её возможностей более чем хватает, нет только поддержки новомодных slash commands, но если они понадобятся - то перейти на любой форк можно почти безболезненно, так как они полностью совместимы с оригиналом.
Раздача ролей и обработка команд на основе роли - это настолько популярный вопрос у начинающих ботописателей, что повсюду (и на этом сайте в том числе) просто море вопросов, ответов, примеров, советов итд итп по этой тематике.