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)
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