bot.py 文件源码

python
阅读 16 收藏 0 点赞 0 评论 0

项目:pcbot 作者: pckv 项目源码 文件源码
def dispatch(self, event, *args, **kwargs):
        """ Override event dispatch to handle plugin events. """
        # Exclude blank messages
        if event == "message":
            message = args[0]
            if not message.content:
                return

        # Find every event that has a discord.Member argument, and filter out bots and self
        member = None
        for arg in list(args) + list(kwargs.values()):
            if isinstance(arg, discord.User):
                member = arg
                break
            elif isinstance(arg, discord.Message):
                member = arg.author
                break

        super().dispatch(event, *args, **kwargs)

        # We get the method name and look through our plugins' event listeners
        method = "on_" + event
        if method in plugins.events:
            for func in plugins.events[method]:
                # We'll only ignore bot messages if the event has disabled for bots
                if member and member.bot and not func.bot:
                    continue
                # Same goes for messages sent by ourselves. Naturally this requires func.bot == True
                if member and member == client.user and not func.self:
                    continue
                client.loop.create_task(self._handle_event(func, event, *args, **kwargs))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号