コード例 #1
0
        static void Main(string[] args)
        {
            //Your Elite Dangerous game path
            string path = "C:\\Users\\your_user_name\\Saved Games\\Frontier Developments\\Elite Dangerous";

            var statusWatcher = new StatusWatcher(path);

            statusWatcher.StatusUpdated += StatusWatcher_StatusUpdated;

            statusWatcher.StartWatching();

            var watcher = new JournalWatcher(path);

            watcher.GetEvent <FileheaderEvent>()?.AddHandler((s, e) => Console.WriteLine("Heading received: gameversion {0}, build {1}.", e.GameVersion, e.Build));
            watcher.GetEvent <ScanEvent>()?.AddHandler((s, e) => Console.WriteLine("Scanned a body {0}, it is {1}landable.", e.BodyName, (e.Landable ?? false) ? "" : "not "));
            watcher.GetEvent <DockedEvent>()?.AddHandler((s, e) => Console.WriteLine("Docked at {0}", e.StationName));

            watcher.GetEvent <FSDTargetEvent>()?.AddHandler((s, e) =>
            {
                Console.WriteLine("FSDTargetEvent");
                TPLink.Patterns.FSDTarget();
                if (IsDocked)
                {
                    TPLink.Patterns.ResetDocked();
                }
            });

            watcher.GetEvent <StartJumpEvent>()?.AddHandler((s, e) =>
            {
                Console.WriteLine("StartJumpEvent [{0}]", e.JumpType);
                TPLink.Patterns.FSDEntry();
            });
            watcher.GetEvent <FSDJumpEvent>()?.AddHandler((s, e) =>
            {
                Console.WriteLine("FSDJumpEvent [{0}]", e.StarSystem);
                TPLink.Patterns.FSDReset();
            });
            //watcher.GetEvent<SupercruiseEntryEvent>()?.AddHandler((s, e) => Console.WriteLine("SupercruiseEntryEvent"));
            watcher.GetEvent <SupercruiseExitEvent>()?.AddHandler((s, e) =>
            {
                Console.WriteLine("SupercruiseExitEvent [{0}, {1}]", e.StarSystem, e.BodyType);
                TPLink.Patterns.FSDReset();
            });

            watcher.GetEvent <DiedEvent>()?.AddHandler((s, e) =>
            {
                Console.WriteLine("Killed by {0}",
                                  e.Killers
                                  .Select(k => string.Format("{0} ({2}, flying a {1})", k.Name, k.Ship, k.Rank))
                                  .Aggregate((x, y) => string.Format("{0}, {1}", x, y)));
            });

            watcher.GetEvent <RankEvent>()?.AddHandler((s, e) => Console.WriteLine("Combat rank is {0}, Exploration rank is {1}", e.Combat.ToString(), e.Explore.ToString()));

            watcher.StartWatching().Wait();

            Console.ReadLine();

            watcher.StopWatching();
        }
コード例 #2
0
        public ServerCore(EDFIPServerConsole serverConsole)
        {
            ServerConsole = serverConsole;

            // Set up the Journal feeds to be passed to clients
            var userHome = Environment.ExpandEnvironmentVariables("%HOMEDRIVE%%HOMEPATH%");

            JournalFileFolder = userHome + Constants.GameStateFolder;
            Log.Instance.Info("Tracking game data from folder: {journalfilefolder}", JournalFileFolder);
            StatusWatcher  = new StatusWatcher(JournalFileFolder);
            JournalWatcher = new JournalWatcher(JournalFileFolder);


            // Add events to watch list
            StatusEventHandler           = new StatusEventHandler(this);
            StatusWatcher.StatusUpdated += StatusEventHandler.HandleEvent;

            TargetEventHandler = new TargetEventHandler(this);
            JournalWatcher.GetEvent <ShipTargetedEvent>().Fired += TargetEventHandler.HandleEvent;

            // Start Matric Integration
            matricapi.Connect();

            // If Immediate start is enabled, start the server
            if (Properties.Settings.Default.ImmediateStart == true)
            {
                this.Start();
            }
        }
コード例 #3
0
        /// <summary>
        /// Sets up the journal watcher and registers events that you want to watch
        /// </summary>
        /// <param name="vaProxy">VoiceAttackProxy object</param>
        public static void Init(VoiceAttackProxy vaProxy)
        {
            LastKnownSystem = Constants.DefaultLastKnownSystem;
            JournalWatcher watcher = new JournalWatcher(JournalPath);

            watcher.GetEvent <SupercruiseExitEvent>()?.AddHandler((s, e) =>
            {
                LastKnownSystem = e.StarSystem;
            });

            watcher.StartWatching().Wait();
        }
コード例 #4
0
        static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                Console.WriteLine("Don't forget to supply a path where the journal feed is located.");
                return;
            }

            string path = args[0];

            var watcher = new JournalWatcher(path);

            watcher.GetEvent <FileheaderEvent>()?.AddHandler((s, e) => Console.WriteLine("Heading received: gameversion {0}, build {1}.", e.GameVersion, e.Build));
            watcher.GetEvent <FSDJumpEvent>()?.AddHandler((s, e) => Console.WriteLine("Woohoo, jumped to [{0}, {1}, {2}]", e.StarPos.X, e.StarPos.Y, e.StarPos.Z));
            watcher.GetEvent <ScanEvent>()?.AddHandler((s, e) => Console.WriteLine("Scanned a body {0}, it is {1}landable.", e.BodyName, (e.Landable ?? false) ? "" : "not "));
            watcher.GetEvent <DockedEvent>()?.AddHandler((s, e) => Console.WriteLine("Docked at {0}", e.StationName));

            watcher.GetEvent <DiedEvent>()?.AddHandler((s, e) =>
            {
                Console.WriteLine("Killed by {0}",
                                  e.Killers
                                  .Select(k => string.Format("{0} ({2}, flying a {1})", k.Name, k.Ship, k.Rank))
                                  .Aggregate((x, y) => string.Format("{0}, {1}", x, y)));
            });

            watcher.GetEvent <RankEvent>()?.AddHandler((s, e) => Console.WriteLine("Combat rank is {0}, Exploration rank is {1}", e.Combat.ToString(), e.Explore.ToString()));

            watcher.StartWatching();


            Console.ReadLine();

            watcher.StopWatching();
        }