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))
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(
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))
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"]))
def predicate(ctx): return commands.check_any(commands.has_role(STUDENT_ROLE_NAME))
def predicate(ctx): return commands.check_any(commands.is_owner(), commands.has_role(MODERATOR_ROLE_NAME))
def has_bot_perms(): """Perms to manage bot internal DB""" return commands.check_any(commands.is_owner(), is_whitelisted())
def predicate(ctx): return commands.check_any(commands.has_role(TEAPARTY_ROLE_NAME))
def pradicate(ctx): return commands.check_any(commands.is_owner(),commands.has_role("Moderator"))
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))
def is_admin_owner_manage_channels(): return commands.check_any(commands.is_owner(), commands.has_permissions(administrator=True), commands.has_permissions(manage_channels=True))
def mc_mod(): return commands.check_any(commands.has_role(842606751478972416), commands.is_owner())
def guildowner_or_perms(**perms): return commands.check_any( commands.has_guild_permissions(**perms), guildowner(), owner_in_guild() )
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
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))
def admin_or_permissions(**perms): return check_any(has_permissions(administrator=True), has_permissions(**perms))
def predicate(ctx): return commands.check_any( commands.is_owner(), commands.has_role('moderator') )
def owner_or_permissions(**perms): return check_any(check(is_owner_predicate), has_permissions(**perms))
def predicate(ctx): return commands.check_any(commands.has_role(CHILL_ROLE_NAME))
def predicate(ctx): return commands.check_any(commands.is_owner(), commands.has_role(ServerIds.MODERATOR))
def is_admin(): return commands.check_any(commands.is_owner(), commands.has_permissions(administrator=True))
def predicate(ctx): return commands.check_any(commands.is_owner(), commands.has_role(HAS_A_ROLE))