Ejemplo n.º 1
0
        public void InitPlugin(TabPage pluginScreenSpace, Label pluginStatusText)
        {
            pluginScreenSpace.Text = "鲶鱼精邮差";

            PluginUI = new PostNamazuUi();

            PluginUI.InitializeComponent(pluginScreenSpace);
            Dock       = DockStyle.Fill;   // Expand the UserControl to fill the tab's client space
            _lblStatus = pluginStatusText; // Hand the status label's reference to our local var

            _ffxivPlugin = GetFfxivPlugin();

            //目前解析插件有bug,在特定情况下无法正常触发ProcessChanged事件。因此只能通过后台线程实时监控
            //_ffxivPlugin.DataSubscription.ProcessChanged += ProcessChanged;

            _processSwitcher = new BackgroundWorker {
                WorkerSupportsCancellation = true
            };
            _processSwitcher.DoWork += ProcessSwitcher;
            _processSwitcher.RunWorkerAsync();
            if (PluginUI.AutoStart)
            {
                ServerStart();
            }

            TriggIntegration();
            PluginUI.ButtonStart.Click += ServerStart;
            PluginUI.ButtonStop.Click  += ServerStop;

            _lblStatus.Text = "鲶鱼精邮差已启动";
        }
Ejemplo n.º 2
0
 /// <summary>
 ///     取得解析插件的进程(从獭爹那里偷来的)
 /// </summary>
 /// <returns></returns>
 private FFXIV_ACT_Plugin.FFXIV_ACT_Plugin GetFfxivPlugin()
 {
     FFXIV_ACT_Plugin.FFXIV_ACT_Plugin ffxivActPlugin = null;
     foreach (var actPluginData in ActGlobals.oFormActMain.ActPlugins)
     {
         if (actPluginData.pluginFile.Name.ToUpper().Contains("FFXIV_ACT_Plugin".ToUpper()) &&
             actPluginData.lblPluginStatus.Text.ToUpper().Contains("FFXIV Plugin Started.".ToUpper()))
         {
             ffxivActPlugin = (FFXIV_ACT_Plugin.FFXIV_ACT_Plugin)actPluginData.pluginObj;
         }
     }
     return(ffxivActPlugin ?? throw new Exception("找不到FFXIV解析插件,请确保其加载顺序位于鲶鱼精邮差之前。"));
 }
Ejemplo n.º 3
0
        private object GetFfxivPlugin()
        {
            ffxivPlugin = null;

            var plugins = ActGlobals.oFormActMain.ActPlugins;

            foreach (var plugin in plugins)
            {
                if (plugin.pluginFile.Name.ToUpper().Contains("FFXIV_ACT_Plugin".ToUpper()) &&
                    plugin.lblPluginStatus.Text.ToUpper().Contains("FFXIV Plugin Started.".ToUpper()))
                {
                    ffxivPlugin = (FFXIV_ACT_Plugin.FFXIV_ACT_Plugin)plugin.pluginObj;
                }
            }

            if (ffxivPlugin == null)
            {
                throw new Exception("Could not find FFXIV plugin. Make sure that it is loaded before CutsceneSkip.");
            }

            return(ffxivPlugin);
        }
Ejemplo n.º 4
0
 public void Setup(PostNamazu postNamazu)
 {
     FFXIV_ACT_Plugin = postNamazu.FFXIV_ACT_Plugin;
     FFXIV            = postNamazu.FFXIV;
     Memory           = postNamazu.Memory;
     PluginUI         = postNamazu.PluginUI;
     SigScanner       = postNamazu.SigScanner;
     try {
         GetOffsets();
     }
     catch (Exception ex) {
         Log(ex.ToString());
         isReady = false;
     }
     //Log("初始化完成");
     if (FFXIV_ACT_Plugin != null && FFXIV != null && Memory != null)
     {
         isReady = true;
     }
     else
     {
         isReady = false;
     }
 }
Ejemplo n.º 5
0
 public ParsePlugin(IActPluginV1 plugin, Network.INetworkMonitor network)
 {
     _parsePlugin = (FFXIV_ACT_Plugin.FFXIV_ACT_Plugin)plugin;
     Network      = network;
 }