Esempio n. 1
0
    def loadPlugin(self, plugin_name):
        try:
            plugin = import_module(plugin_name)
        except ImportError:
            logging.error("Failed to load plugin: %s" % plugin_name)
            return

        if hasattr(plugin, "depends"):
            for dep in plugin.depends:
                if not self.isPluginLoaded(dep):
                    self.loadPlugin(dep)

        self.plugins[plugin_name] = plugin

        if hasattr(plugin, "setup"):
            plugin.setup(self.core)
Esempio n. 2
0
def autodiscover():
    """
    Autodiscover all packets and store them in the packet list.
    """
    for filename in os.listdir(os.path.dirname(__file__)):
        if filename[-3:] == ".py":
            # assume this is a packet
            module_name, ext = filename.rsplit(".", 1)

            if module_name[:6] != "packet":
                continue

            module = import_module(".%s" % module_name, "apollo.server.protocol.packet")
            for member_name in dir(module):
                if member_name != "Packet" and member_name[:6] == "Packet":
                    member = getattr(module, member_name)
                    packetlist[member.name] = member