diff --git a/plugins/eddb.py b/plugins/eddb.py index 8460fa55..7f48f0a2 100644 --- a/plugins/eddb.py +++ b/plugins/eddb.py @@ -77,9 +77,11 @@ def prefs_changed(cmdr, is_beta): def journal_entry(cmdr, is_beta, system, station, entry, state): - # Always update, even if we're not the *current* system or station provider. - this.system_address = entry.get('SystemAddress') or this.system_address - this.system = entry.get('StarSystem') or this.system + # Always update our system address even if we're not currently the provider for system or station, but dont update + # on events that contain "future" data, such as FSDTarget + if entry['event'] in ('Location', 'Docked', 'CarrierJump', 'FSDJump'): + this.system_address = entry.get('SystemAddress') or this.system_address + this.system = entry.get('StarSystem') or this.system # We need pop == 0 to set the value so as to clear 'x' in systems with # no stations. diff --git a/plugins/edsm.py b/plugins/edsm.py index 4c6d812f..a90526fe 100644 --- a/plugins/edsm.py +++ b/plugins/edsm.py @@ -217,9 +217,11 @@ def credentials(cmdr): def journal_entry(cmdr, is_beta, system, station, entry, state): - # Always update, even if we're not the *current* system or station provider. - this.system_address = entry.get('SystemAddress') or this.system_address - this.system = entry.get('StarSystem') or this.system + # Always update our system address even if we're not currently the provider for system or station, but dont update + # on events that contain "future" data, such as FSDTarget + if entry['event'] in ('Location', 'Docked', 'CarrierJump', 'FSDJump'): + this.system_address = entry.get('SystemAddress') or this.system_address + this.system = entry.get('StarSystem') or this.system # We need pop == 0 to set the value so as to clear 'x' in systems with # no stations. diff --git a/plugins/inara.py b/plugins/inara.py index 0379749b..61fb7abe 100644 --- a/plugins/inara.py +++ b/plugins/inara.py @@ -231,9 +231,11 @@ def journal_entry(cmdr, is_beta, system, station, entry, state): elif entry['event'] in ['ShipyardNew', 'ShipyardSwap'] or (entry['event'] == 'Location' and entry['Docked']): this.suppress_docked = True - # Always update, even if we're not the *current* system or station provider. - this.system_address = entry.get('SystemAddress') or this.system_address - this.system = entry.get('StarSystem') or this.system + # Always update our system address even if we're not currently the provider for system or station, but dont update + # on events that contain "future" data, such as FSDTarget + if entry['event'] in ('Location', 'Docked', 'CarrierJump', 'FSDJump'): + this.system_address = entry.get('SystemAddress') or this.system_address + this.system = entry.get('StarSystem') or this.system # We need pop == 0 to set the value so as to clear 'x' in systems with # no stations.