Ejemplo n.º 1
0
        public void Initialize(ApplicationStartupHandler handler, IDIContext container)
        {
            _container     = container ?? throw new ArgumentNullException(nameof(container));
            _configManager = _container.Resolve <IConfigManager>();
            _memoryManager = _container.Resolve <IMemoryReaderManager>();
            var actorManager = _container.Resolve <IActorManager>();

            var resourceBundle        = _container.Resolve <ILocaleManager>().GetResourceBundle("autotranslate");
            var autotranslateProvider = new AutotranslateProvider(resourceBundle);

            _chatManager = new ChatManager(autotranslateProvider, actorManager);

            _configManager.AddPropertyChangeListener("behaviour.chat.updateInterval", true, true, ConfigManager_UpdateChatInterval);
            _configManager.AddPropertyChangeListener("behaviour.channel", true, true, ConfigManager_UpdateChannelProperties);
            _configManager.AddPropertyChangeListener("behaviour.segment", true, true, ConfigManager_UpdateFormaterProperties);
            _configManager.AddPropertyChangeListener("behaviour.groups", true, true, ConfigManager_UpdateTriggerGroupProperties);
            _configManager.AddPropertyChangeListener("behaviour.mentions", true, true, ConfigManager_UpdateMentions);
            _configManager.AddPropertyChangeListener("behaviour.chat.autodetectEmoteInSay", true, true, ConfigManager_UpdateAutodetectProperties);
            _configManager.AddPropertyChangeListener("behaviour.language", true, true, ConfigManager_UpdateLanguage);
            _configManager.AddPropertyChangeListener("behaviour.rangefilter", true, true, ConfigManager_UpdateRangeFilter);
            _configManager.AddPropertyChangeListener("behaviour.mentions.userCanTriggerMention", true, true, ConfigManager_UpdateUserMentionProperties);

            _configManager.AddPropertyChangeListener("behaviour.chattabs.data", true, true, ConfigManager_UpdateVisibleChannel);
            _configManager.AddPropertyChangeListener("behaviour.chattabs.data", true, true, ConfigManager_UpdateUpdateRangeFilterActive);

            _container.Register <IChatManager>((c, p) => _chatManager);

            _updater = new IndependendBackgroundWorker();
            _updater.Start(UpdateJob);
        }
Ejemplo n.º 2
0
 private void MemoryReader_OnProcessChanged(object sender, ProcessChangeEventArgs e)
 {
     if (e.IsProcessValid)
     {
         logger.Info("FFXIV process detected");
     }
     else
     {
         logger.Info("No FFXIV process detected");
         SetConnectionState(ConnectionState.NotFound);
         _worker.Start(Task_ConnectMemoryReader);
     }
 }
Ejemplo n.º 3
0
        private void ConfigManager_UpdateRangeFilter(IConfigManager config, ProfilePropertyChangedCollectionEventArgs evt)
        {
            var runManager = config.GetProperty <bool>("behaviour.actor.active");

            if (runManager)
            {
                if (_updater.IsRunning)
                {
                    return;
                }
                else
                {
                    _updater.Start(UpdateJob);
                }
            }
            else
            {
                _updater.Stop(false);
            }
        }
Ejemplo n.º 4
0
        public FFXIVMemoryManager(IDIContext container)
        {
            _container = container ?? throw new ArgumentNullException(nameof(container));
            _worker    = new IndependendBackgroundWorker();

            var sharlayanResourceFolder = System.IO.Path.Combine(GobchatContext.ResourceLocation, @"sharlayan");

            System.IO.Directory.CreateDirectory(sharlayanResourceFolder);

            //needs to be done on the same thread as dispose, anchore it to ui thread, because that one never changes
            var synchronizer = container.Resolve <IUISynchronizer>();

            _memoryReader = synchronizer.RunSync(() => new FFXIVMemoryReader());
            _memoryReader.LocalCacheDirectory = sharlayanResourceFolder;
            _memoryReader.Initialize();

            _memoryReader.OnProcessChanged     += MemoryReader_OnProcessChanged;
            _memoryReader.OnWindowFocusChanged += MemoryReader_OnWindowFocusChanged;
            _worker.Start(Task_ConnectMemoryReader);
        }