예제 #1
0
        public void Init(PluginHostContext context, XElement configElement)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            Context       = context;
            NicknameCache = new Dictionary <string, NicknameResolverCacheEntry>();
            ReadConfigSettings(configElement);
        }
예제 #2
0
        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);
                    }
                }
            }
        }
예제 #3
0
        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.");
        }
예제 #4
0
        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);
        }