Ejemplo n.º 1
0
 def _set_gm_role_id(self, val):
     self.__gm_role_id = val
     self.add.add_check(
         commands.check_any(commands.has_role(self.gm_role_id),
                            commands.has_permissions(administrator=True)))
     self.kick.add_check(
         commands.check_any(commands.has_role(self.gm_role_id),
                            commands.has_permissions(administrator=True)))
     self.add_gm.add_check(
         commands.check_any(commands.has_role(self.gm_role_id),
                            commands.has_permissions(administrator=True)))
     self.resign_gm.add_check(commands.has_role(self.gm_role_id))
Ejemplo n.º 2
0
    et empêche le bot de réagir à nouveau.

    Dérive de :exc:`RuntimeError`.
    """
    pass


# ---------------------------------------------------------------------------
# Décorateurs pour les différentes commandes, en fonction de leur usage
# ---------------------------------------------------------------------------

#: Décorateur pour commande (:func:`discord.ext.commands.check`) :
#: commande exécutable uniquement par un :attr:`MJ <.config.Role.mj>`
#: ou un webhook (tâche planifiée)
mjs_only = commands.check_any(
    commands.check(lambda ctx: ctx.message.webhook_id),
    commands.has_role(config.Role.get_raw("mj"))  # nom du rôle
)

#: Décorateur pour commandes d'IA (:func:`discord.ext.commands.check`) :
#: commande exécutable par un :attr:`MJ <.config.Role.mj>`, un
#: :attr:`Rédacteur <.config.Role.redacteur>` ou un webhook (tâche planifiée)
mjs_et_redacteurs = commands.check_any(
    mjs_only, commands.has_role(config.Role.get_raw("redacteur")))

#: Décorateur pour commande (:func:`discord.ext.commands.check`) :
#: commande exécutable uniquement par un joueur,
#: :attr:`vivant <.config.Role.joueur_en_vie>` ou
#: :attr:`mort <.config.Role.joueur_mort>`.
joueurs_only = commands.has_any_role(config.Role.get_raw("joueur_en_vie"),
                                     config.Role.get_raw("joueur_mort"))
    'separate': False,
}

logger = logging.getLogger('logs_uploader')
logger.setLevel(logging.INFO)
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(logging.INFO)
logger.addHandler(handler)

# Don't post to team channels and force the guild used so testing can you DMs
DISCORD_TESTING = bool(os.getenv('DISCORD_TESTING'))
# Just post all messages to calling channel, allow DMs
DISCORD_DEBUG = bool(os.getenv('DISCORD_DEBUG'))
if DISCORD_TESTING or DISCORD_DEBUG:
    # Allow DMs in testing
    guild_only = commands.check_any(commands.guild_only(),
                                    commands.dm_only())  # type: ignore
    # print all debug messages
    logger.setLevel(logging.DEBUG)
    handler.setLevel(logging.DEBUG)
else:
    guild_only = commands.guild_only()

bot = commands.Bot(command_prefix='!')


async def log_and_reply(ctx: commands.Context, error_str: str) -> None:
    logger.error(error_str)
    await ctx.reply(error_str)


async def get_channel(
Ejemplo n.º 4
0
def is_admin() -> "_CheckDecorator":
    """Do you have permission to change the setting of the bot"""
    return commands.check_any(
        commands.is_owner(), commands.has_guild_permissions(manage_guild=True),
        commands.has_guild_permissions(administrator=True))
Ejemplo n.º 5
0
def permission_check_fun(permission):
    if not permission:
        return commands.check(lambda context: True)
    return commands.check_any(commands.is_owner(),
                              commands.has_any_role(*permission["roles"]),
                              is_one_of_members(*permission["members"]))
Ejemplo n.º 6
0
 def predicate(ctx):
     return commands.check_any(commands.has_role(STUDENT_ROLE_NAME))
Ejemplo n.º 7
0
 def predicate(ctx):
     return commands.check_any(commands.is_owner(), commands.has_role(MODERATOR_ROLE_NAME))
Ejemplo n.º 8
0
def has_bot_perms():
    """Perms to manage bot internal DB"""
    return commands.check_any(commands.is_owner(), is_whitelisted())
Ejemplo n.º 9
0
 def predicate(ctx):
     return commands.check_any(commands.has_role(TEAPARTY_ROLE_NAME))
Ejemplo n.º 10
0
 def pradicate(ctx):
   return commands.check_any(commands.is_owner(),commands.has_role("Moderator"))
Ejemplo n.º 11
0
 def _set_member_role_id(self, val):
     self.__member_role_id = val
     self.group.add_check(
         commands.check_any(commands.has_role(self.member_role_id),
                            commands.has_permissions(administrator=True)))
     self.leave.add_check(commands.has_role(self.member_role_id))
Ejemplo n.º 12
0
def is_admin_owner_manage_channels():
    return commands.check_any(commands.is_owner(),
                              commands.has_permissions(administrator=True),
                              commands.has_permissions(manage_channels=True))
Ejemplo n.º 13
0
def mc_mod():
    return commands.check_any(commands.has_role(842606751478972416),
                              commands.is_owner())
Ejemplo n.º 14
0
def guildowner_or_perms(**perms):
    return commands.check_any(
        commands.has_guild_permissions(**perms), guildowner(), owner_in_guild()
    )
Ejemplo n.º 15
0
def has_any_permissions(**permissions) -> Callable[[T], T]:
    return commands.check_any(
        *(commands.has_permissions(**{permission: value})
          for permission, value in permissions.items()))  # type: ignore
Ejemplo n.º 16
0
def has_server_perms():
    """Perms to manage other people on the server"""
    return commands.check_any(is_guild_owner(), commands.is_owner(), commands.has_role(utils.bot_manager_role))
Ejemplo n.º 17
0
def admin_or_permissions(**perms):
    return check_any(has_permissions(administrator=True),
                     has_permissions(**perms))
Ejemplo n.º 18
0
 def predicate(ctx):
     return commands.check_any(
     commands.is_owner(),
     commands.has_role('moderator')
     )
Ejemplo n.º 19
0
def owner_or_permissions(**perms):
    return check_any(check(is_owner_predicate), has_permissions(**perms))
Ejemplo n.º 20
0
 def predicate(ctx):
     return commands.check_any(commands.has_role(CHILL_ROLE_NAME))
Ejemplo n.º 21
0
 def predicate(ctx):
     return commands.check_any(commands.is_owner(), commands.has_role(ServerIds.MODERATOR))
Ejemplo n.º 22
0
def is_admin():
    return commands.check_any(commands.is_owner(),
                              commands.has_permissions(administrator=True))
Ejemplo n.º 23
0
 def predicate(ctx):
     return commands.check_any(commands.is_owner(), commands.has_role(HAS_A_ROLE))