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