From 99c0743b2b927dfac4f238c52b9172e62414ddca Mon Sep 17 00:00:00 2001 From: Cj <161484149+CJ-SPT@users.noreply.github.com> Date: Mon, 6 Jan 2025 21:15:12 -0500 Subject: [PATCH] Add DialogueController.cs --- Core/Controllers/DialogueController.cs | 250 +++++++++++++++++++++++++ 1 file changed, 250 insertions(+) create mode 100644 Core/Controllers/DialogueController.cs diff --git a/Core/Controllers/DialogueController.cs b/Core/Controllers/DialogueController.cs new file mode 100644 index 00000000..5780e3b8 --- /dev/null +++ b/Core/Controllers/DialogueController.cs @@ -0,0 +1,250 @@ +using Core.Models.Eft.Profile; +using Core.Models.Enums; + +namespace Core.Controllers; + +public class DialogueController +{ + /// + /// + /// + /// + public void RegisterChatBot(DialogueChatBot chatBot) + { + throw new NotImplementedException(); + } + + /// + /// Handle onUpdate spt event + /// + public void Update() + { + throw new NotImplementedException(); + } + + /// + /// Handle client/friend/list + /// + /// session id + /// GetFriendListDataResponse + public GetFriendListDataResponse GetFriendList(string sessionId) + { + throw new NotImplementedException(); + } + + /// + /// Handle client/mail/dialog/list + /// Create array holding trader dialogs and mail interactions with player + /// Set the content of the dialogue on the list tab. + /// + /// Session Id + /// list of dialogs + public List GenerateDialogueList(string sessionId) + { + throw new NotImplementedException(); + } + + /// + /// Get the content of a dialogue + /// + /// Dialog id + /// Session Id + /// DialogueInfo + public DialogueInfo GetDialogueInfo( + string dialogueId, + string sessionId) + { + throw new NotImplementedException(); + } + + /// + /// Get the users involved in a dialog (player + other party) + /// + /// The dialog to check for users + /// What type of message is being sent + /// Player id + /// UserDialogInfo list + public List GetDialogueUsers( + Dialogue dialogue, + MessageType messageType, + string sessionId) + { + throw new NotImplementedException(); + } + + /// + /// Handle client/mail/dialog/view + /// Handle player clicking 'messenger' and seeing all the messages they've received + /// Set the content of the dialogue on the details panel, showing all the messages + /// for the specified dialogue. + /// + /// Get dialog request + /// Session id + /// GetMailDialogViewResponseData object + public GetMailDialogViewResponseData GenerateDialogueView( + GetMailDialogViewResponseData request, + string sessionId) + { + throw new NotImplementedException(); + } + + /// + /// Get dialog from player profile, create if doesn't exist + /// + /// Player profile + /// get dialog request + /// Dialogue + private Dialogue GetDialogByIdFromProfile( + SptProfile profile, + GetMailDialogViewRequestData request) + { + throw new NotImplementedException(); + } + + /// + /// Get the users involved in a mail between two entities + /// + /// Player profile + /// The participants of the mail + /// UserDialogInfo list + private List GetProfilesForMail( + SptProfile fullProfile, + List? userDialogs) + { + throw new NotImplementedException(); + } + + /// + /// Get a count of messages with attachments from a particular dialog + /// + /// Session id + /// Dialog id + /// Count of messages with attachments + private int GetUnreadMessagesWithAttachmentsCount( + string sessionId, + string dialogueId) + { + throw new NotImplementedException(); + } + + /// + /// Does list have messages with uncollected rewards (includes expired rewards) + /// + /// Messages to check + /// true if uncollected rewards found + private bool MessagesHaveUncollectedRewards(List messages) + { + throw new NotImplementedException(); + } + + /// + /// Handle client/mail/dialog/remove + /// Remove an entire dialog with an entity (trader/user) + /// + /// id of the dialog to remove + /// Player id + public void RemoveDialogue( + string dialogueId, + string sessionId) + { + throw new NotImplementedException(); + } + + /// + /// Handle client/mail/dialog/pin && Handle client/mail/dialog/unpin + /// + /// + /// + /// + public void SetDialoguePin( + string dialogueId, + bool shouldPin, + string sessionId) + { + throw new NotImplementedException(); + } + + /// + /// Handle client/mail/dialog/read + /// Set a dialog to be read (no number alert/attachment alert) + /// + /// Dialog ids to set as read + /// Player profile id + public void SetRead( + HashSet dialogueIds, + string sessionId) + { + throw new NotImplementedException(); + } + + /// + /// Handle client/mail/dialog/getAllAttachments + /// Get all uncollected items attached to mail in a particular dialog + /// + /// Dialog to get mail attachments from + /// Session id + /// GetAllAttachmentsResponse or null if dialogue doesnt exist + public GetAllAttachmentsResponse? GetAllAttachments( + string dialogueId, + string sessionId) + { + throw new NotImplementedException(); + } + + /// + /// handle client/mail/msg/send + /// + /// + /// + /// + public string SendMessage( + string sessionId, + SendMessageRequest request) + { + throw new NotImplementedException(); + } + + /// + /// Get messages from a specific dialog that have items not expired + /// + /// Session id + /// Dialog to get mail attachments from + /// message list + private List GetActiveMessagesFromDialogue( + string sessionId, + string dialogueId) + { + throw new NotImplementedException(); + } + + /// + /// Return list of messages with uncollected items (includes expired) + /// + /// Messages to parse + /// messages with items to collect + private List GetMessageWithAttachments(List messages) + { + throw new NotImplementedException(); + } + + /// + /// Delete expired items from all messages in player profile. triggers when updating traders. + /// + /// Session id + private void RemoveExpiredItemsFromMessages(string sessionId) + { + throw new NotImplementedException(); + } + + /// + /// Removes expired items from a message in player profile + /// + /// Session id + /// Dialog id + private void RemoveExpiredItemsFromMessage( + string sessionId, + string dialogueId) + { + throw new NotImplementedException(); + } +} \ No newline at end of file