Fixed selecting 'delete messages' on a dialog failing #378

This commit is contained in:
Chomp
2025-06-08 16:18:18 +01:00
parent e1588f8c8b
commit 609bad2431
3 changed files with 22 additions and 3 deletions
@@ -400,8 +400,7 @@ public class DialogueController(
string sessionId)
{
var profile = _saveServer.GetProfile(sessionId);
var dialog = profile.DialogueRecords.GetValueOrDefault(dialogueId);
if (dialog is null)
if (!profile.DialogueRecords.ContainsKey(dialogueId))
{
_logger.Error(
_localisationService.GetText(
@@ -652,4 +651,22 @@ public class DialogueController(
profile.FriendProfileIds.RemoveAt(friendIndex);
}
}
/// <summary>
/// Clear messages from a specified dialogue
/// </summary>
/// <param name="sessionId">Session/Player id</param>
/// <param name="request">Client request to clear messages</param>
public void ClearMessages(string sessionId, ClearMailMessageRequest request)
{
var profile = _saveServer.GetProfile(sessionId);
if (!profile.DialogueRecords.TryGetValue(request.DialogId, out var dialogToClear))
{
_logger.Warning($"unable to clear messages from dialog: {request.DialogId} as it cannot be found in profile: {sessionId}");
return;
}
dialogToClear.Messages?.Clear();
}
}