Fix changelog button always indicating new changes. (#41277)
* Refresh changelog button when ServerId is changed * Listen to specific cvar being changed
This commit is contained in:
@@ -52,6 +52,7 @@ namespace Content.Client.Changelog
|
||||
// Open changelog purely to compare to the last viewed date.
|
||||
var changelogs = await LoadChangelog();
|
||||
UpdateChangelogs(changelogs);
|
||||
_configManager.OnValueChanged(CCVars.ServerId, OnServerIdCVarChanged);
|
||||
}
|
||||
|
||||
private void UpdateChangelogs(List<Changelog> changelogs)
|
||||
@@ -81,6 +82,11 @@ namespace Content.Client.Changelog
|
||||
|
||||
MaxId = changelog.Entries.Max(c => c.Id);
|
||||
|
||||
CheckLastSeenEntry();
|
||||
}
|
||||
|
||||
private void CheckLastSeenEntry()
|
||||
{
|
||||
var path = new ResPath($"/changelog_last_seen_{_configManager.GetCVar(CCVars.ServerId)}");
|
||||
if (_resource.UserData.TryReadAllText(path, out var lastReadIdText))
|
||||
{
|
||||
@@ -92,6 +98,11 @@ namespace Content.Client.Changelog
|
||||
NewChangelogEntriesChanged?.Invoke();
|
||||
}
|
||||
|
||||
private void OnServerIdCVarChanged(string newValue)
|
||||
{
|
||||
CheckLastSeenEntry();
|
||||
}
|
||||
|
||||
public Task<List<Changelog>> LoadChangelog()
|
||||
{
|
||||
return Task.Run(() =>
|
||||
|
||||
Reference in New Issue
Block a user