public void Init(PluginHostContext context, XElement configElement) { if (context == null) { throw new ArgumentNullException("context"); } Context = context; NicknameCache = new Dictionary <string, NicknameResolverCacheEntry>(); ReadConfigSettings(configElement); }
public static void CreateSingleInstance(TMSPSCorePluginSettings settings, PluginHostContext context) { if (settings == null) { throw new ArgumentNullException("settings"); } if (Instance == null) { lock (_lockObject) { if (Instance == null) { Instance = GetConfiguredNicknameResolverInstance(settings, context); } } } }
private void InitializePlugins() { Plugins = TMSPSPluginBase.GetPlugins(ApplicationDirectory, _logger); Plugins.RemoveAll(p => p is TMSPSCorePlugin); Plugins.Insert(0, new TMSPSCorePlugin(Path.Combine(ApplicationDirectory, @"Plugins\Core"))); HostContext = GetHostContext(); HostContext.ShutdownRequested += HostContext_ShutdownRequested; if (HostContext == null) { Log.ErrorToUI("Could not create HostContext, stopping TMSPS!"); return; } Log.InfoToUI(string.Format("{0} Plugins found, starting to initialize plugins.", Plugins.Count)); foreach (ITMSPSPlugin plugin in Plugins) { plugin.InitPlugin(HostContext, new ConsoleUILogger("TMSPS", string.Format(" - [{0}]", plugin.ShortName))); } Log.InfoToUI("Plugins initialized."); }
private static INicknameResolver GetConfiguredNicknameResolverInstance(TMSPSCorePluginSettings settings, PluginHostContext context) { if (settings == null) { throw new ArgumentNullException("settings"); } INicknameResolver provider = Instancer.GetInstanceOfInterface <INicknameResolver>(settings.NicknameResolverAssemblyLocation, settings.NicknameResolverClass); provider.Init(context, settings.NicknameResolverConfigElement); return(provider); }