private void OnExtensionChanged(object s, ExtensionNodeEventArgs args) { IRobustConnector connector = (IRobustConnector)args.ExtensionObject; Addin a = Registry.GetAddin(args.ExtensionNode.Addin.Id); if (a == null) { Registry.Rebuild(null); a = Registry.GetAddin(args.ExtensionNode.Addin.Id); } switch (args.Change) { case ExtensionChange.Add: if (a.AddinFile.Contains(Registry.DefaultAddinsFolder)) { m_log.InfoFormat("[SERVER UTILS]: Adding {0} from registry", a.Name); connector.PluginPath = System.IO.Path.Combine(Registry.DefaultAddinsFolder, a.Name.Replace(',', '.')); } else { m_log.InfoFormat("[SERVER UTILS]: Adding {0} from ./bin", a.Name); connector.PluginPath = a.AddinFile; } LoadPlugin(connector); break; case ExtensionChange.Remove: m_log.InfoFormat("[SERVER UTILS]: Removing {0}", a.Name); UnloadPlugin(connector); break; } }
private void LoadPlugin(IRobustConnector connector) { IHttpServer server = null; uint port = connector.Configure(Config); if (connector.Enabled) { server = GetServer(connector, port); connector.Initialize(server); } else { m_log.InfoFormat("[SERVER UTILS]: {0} Disabled.", connector.ConfigName); } }
private IHttpServer GetServer(IRobustConnector connector, uint port) { IHttpServer server; if (port != 0) { server = MainServer.GetHttpServer(port); } else { server = MainServer.Instance; } return(server); }
private void UnloadPlugin(IRobustConnector connector) { m_log.InfoFormat("[SERVER UTILS]: Unloading {0}", connector.ConfigName); connector.Unload(); }