diff --git a/PLUGINS.md b/PLUGINS.md index f98a125a..32b5fd4e 100644 --- a/PLUGINS.md +++ b/PLUGINS.md @@ -426,6 +426,7 @@ Content of `state` (updated to the current journal entry): | `ModulesValue` | `int` | Value of the current ship's modules | | `Rebuy` | `int` | Current ship's rebuy cost | | `Modules` | `dict` | Currently fitted modules | +| `Route` | `dict` | Last plotted multi-hop route | A special "StartUp" entry is sent if EDMC is started while the game is already running. In this case you won't receive initial events such as "LoadGame", @@ -475,6 +476,11 @@ as the mission ID for mission specific cargo is not written at Commander login (instead the in-Journal `Cargo` event contains all the data), this will not be populated at login.** +New in version 5.0.0: + +`Route` contains the `json.load()` of `Route.json` as indicated by a journal +`Route` event. + #### Getting Commander Data ```python diff --git a/monitor.py b/monitor.py index 9aecfe92..f76eba24 100644 --- a/monitor.py +++ b/monitor.py @@ -126,7 +126,8 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below 'ModulesValue': None, 'Rebuy': None, 'Modules': None, - 'CargoJSON': None, # The raw data from the last time cargo.json was read + 'CargoJSON': None, # The raw data from the last time cargo.json was read + 'Route': None, # Last plotted route from Route.json file } def start(self, root: 'tkinter.Tk'): @@ -459,6 +460,7 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below 'ModulesValue': None, 'Rebuy': None, 'Modules': None, + 'Route': None, } elif event_type == 'Commander': @@ -666,6 +668,12 @@ class EDLogs(FileSystemEventHandler): # type: ignore # See below self.state['Cargo'].update({self.canonicalise(x['Name']): x['Count'] for x in clean}) + elif event_type == 'Route': + # Added in ED 3.7 - multi-hop route details in Route.json + with open(join(self.currentdir, 'Route.json'), 'rb') as rf: # type: ignore + entry = json.load(rf) + self.state['Route'] = entry + elif event_type in ('CollectCargo', 'MarketBuy', 'BuyDrones', 'MiningRefined'): commodity = self.canonicalise(entry['Type']) self.state['Cargo'][commodity] += entry.get('Count', 1)