Hi Jack, thank you for your patience while I review your repo. There’s really only one minor issue I have with your repo. Once that’s fixed I’ll be happy to mark this as approved.
Commit hash at time of review - d585125113d0620891972084cd41d5f8a977356e
Line 126, : This could be a problem. The bot owner has the ability to give themselves any role lower than the bots role which means a user may get their bot on the server and easily assign themselves the highest role just below the bot. While this is technically possible regardless of this cog it makes it extremely easy to utilize this capability without relying on knowing how to code. I’m marking this as an optional change and more something to consider. Optional
Lines 4 and 5: You import Template, Any, and Iterable but never use them. Optional
Line 262: This is unnecessarily long, guild.get_channel returns None if the provided input is invalid. Optional
Lines 86 to 94: If a user in the ignore list leaves the server or any ignored roles or voice channels are delete this will error out.