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(); }
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(); } }
/// <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(); }
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(); }