using Core.Models.Eft.Dialog;
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();
}
}