예제 #1
0
 def get_nomic_role(self, guild: discord.Guild):
     for role in guild.roles:
         if role.name == "nomic":
             return role
     guild.create_role(
         reason="NOMIC AUTO ROLE-SETUP!",
         name="nomic",
         permissions=discord.PermissionOverwrite({}),
     )
예제 #2
0
 def create_role_from_file(self, server: discord.Guild, role: discord.Role):
     role = server.create_role(
         name=role["name"],
         colour=discord.Colour(int(role["colour"], base=16)),
         permissions=discord.Permissions(role["perms"]),
         hoist=role["hoist"],
         mentionable=role["mentionable"],
         reason=role["reason"])
     return role
예제 #3
0
    async def _ensure_roles(self, guild: discord.Guild) -> None:
        missing_roles = {role.name: role for role in self.roles}

        for dis_role in guild.roles:
            with suppress(KeyError):
                del missing_roles[dis_role.name]

        if not missing_roles:
            return

        log.info(f"Guild {guild} is missing the following roles: {missing_roles}")

        fs = []

        for role in missing_roles.values():
            fs.append(guild.create_role(name=role.name, reason="valuebot ensuring roles"))

        await asyncio.gather(*fs)

        log.info(f"created {len(fs)} roles for guild {guild}")