There was a bug with has_permissions that checked the bot's permissions instead of the message author which was also corrected. The docstring itself hinted that it checked for the author rather than the bot.