fix: handle null preferences correctly

This commit is contained in:
Anna 2020-11-05 20:38:38 -05:00
parent 6276bea698
commit 9379b6f84f
1 changed files with 12 additions and 4 deletions

View File

@ -377,8 +377,7 @@ namespace XIVChatPlugin {
node = node.Previous;
}
bool bNewestFirst = false;
if (client.Preferences?.TryGetValue(ClientPreference.BacklogNewestMessagesFirst, out bNewestFirst) == true && !bNewestFirst) {
if (!client.GetPreference(ClientPreference.BacklogNewestMessagesFirst, false)) {
backlogMessages.Reverse();
}
@ -390,8 +389,7 @@ namespace XIVChatPlugin {
var after = catchUp.After.AddMilliseconds(1);
var msgs = this.MessagesAfter(after);
bool cNewestFirst = false;
if (client.Preferences?.TryGetValue(ClientPreference.BacklogNewestMessagesFirst, out cNewestFirst) == true && cNewestFirst) {
if (client.GetPreference(ClientPreference.BacklogNewestMessagesFirst, false)) {
msgs = msgs.Reverse();
}
@ -815,6 +813,16 @@ namespace XIVChatPlugin {
this.TokenSource.Cancel();
this.Conn.Close();
}
public T GetPreference<T>(ClientPreference pref, T def = default) {
var prefs = this.Preferences;
if (prefs == null) {
return def;
}
return prefs.TryGetValue(pref, out T result) ? result : def;
}
}
internal static class TcpListenerExt {