diff --git a/Libraries/Core/Callbacks/DialogueCallbacks.cs b/Libraries/Core/Callbacks/DialogueCallbacks.cs
index 3bdc18e9..9e7b6b17 100644
--- a/Libraries/Core/Callbacks/DialogueCallbacks.cs
+++ b/Libraries/Core/Callbacks/DialogueCallbacks.cs
@@ -36,7 +36,7 @@ public class DialogueCallbacks(
///
///
///
- public string GetFriendList(string url, EmptyRequestData info, string sessionID)
+ public virtual string GetFriendList(string url, EmptyRequestData info, string sessionID)
{
return _httpResponseUtil.GetBody(_dialogueController.GetFriendList(sessionID));
}
@@ -48,7 +48,7 @@ public class DialogueCallbacks(
///
///
///
- public string GetChatServerList(string url, GetChatServerListRequestData info, string sessionID)
+ public virtual string GetChatServerList(string url, GetChatServerListRequestData info, string sessionID)
{
var chatServer = new List
{
@@ -83,7 +83,7 @@ public class DialogueCallbacks(
///
///
///
- public string GetMailDialogList(string url, GetMailDialogListRequestData info, string sessionID)
+ public virtual string GetMailDialogList(string url, GetMailDialogListRequestData info, string sessionID)
{
return _httpResponseUtil.GetBody(_dialogueController.GenerateDialogueList(sessionID), 0, null, false);
}
@@ -95,7 +95,7 @@ public class DialogueCallbacks(
///
///
///
- public string GetMailDialogView(string url, GetMailDialogViewRequestData info, string sessionID)
+ public virtual string GetMailDialogView(string url, GetMailDialogViewRequestData info, string sessionID)
{
return _httpResponseUtil.GetBody(_dialogueController.GenerateDialogueView(info, sessionID), 0, null, false);
}
@@ -107,7 +107,7 @@ public class DialogueCallbacks(
///
///
///
- public string GetMailDialogInfo(string url, GetMailDialogInfoRequestData info, string sessionID)
+ public virtual string GetMailDialogInfo(string url, GetMailDialogInfoRequestData info, string sessionID)
{
return _httpResponseUtil.GetBody(_dialogueController.GetDialogueInfo(info.DialogId, sessionID));
}
@@ -119,7 +119,7 @@ public class DialogueCallbacks(
///
///
///
- public string RemoveDialog(string url, RemoveDialogRequestData info, string sessionID)
+ public virtual string RemoveDialog(string url, RemoveDialogRequestData info, string sessionID)
{
_dialogueController.RemoveDialogue(info.DialogId, sessionID);
return _httpResponseUtil.EmptyArrayResponse();
@@ -132,7 +132,7 @@ public class DialogueCallbacks(
///
///
///
- public string PinDialog(string url, PinDialogRequestData info, string sessionID)
+ public virtual string PinDialog(string url, PinDialogRequestData info, string sessionID)
{
_dialogueController.SetDialoguePin(info.DialogId, true, sessionID);
return _httpResponseUtil.EmptyArrayResponse();
@@ -145,7 +145,7 @@ public class DialogueCallbacks(
///
///
///
- public string UnpinDialog(string url, PinDialogRequestData info, string sessionID)
+ public virtual string UnpinDialog(string url, PinDialogRequestData info, string sessionID)
{
_dialogueController.SetDialoguePin(info.DialogId, false, sessionID);
return _httpResponseUtil.EmptyArrayResponse();
@@ -158,7 +158,7 @@ public class DialogueCallbacks(
///
///
///
- public string SetRead(string url, SetDialogReadRequestData info, string sessionID)
+ public virtual string SetRead(string url, SetDialogReadRequestData info, string sessionID)
{
_dialogueController.SetRead(info.Dialogs, sessionID);
return _httpResponseUtil.EmptyArrayResponse();
@@ -171,7 +171,7 @@ public class DialogueCallbacks(
///
///
///
- public string GetAllAttachments(string url, GetAllAttachmentsRequestData info, string sessionID)
+ public virtual string GetAllAttachments(string url, GetAllAttachmentsRequestData info, string sessionID)
{
return _httpResponseUtil.GetBody(_dialogueController.GetAllAttachments(info.DialogId, sessionID));
}
@@ -183,7 +183,7 @@ public class DialogueCallbacks(
///
///
///
- public string SendMessage(string url, SendMessageRequest info, string sessionID)
+ public virtual string SendMessage(string url, SendMessageRequest info, string sessionID)
{
return _httpResponseUtil.GetBody(_dialogueController.SendMessage(sessionID, info));
}
@@ -195,7 +195,7 @@ public class DialogueCallbacks(
///
///
///
- public string ListOutbox(string url, EmptyRequestData info, string sessionID)
+ public virtual string ListOutbox(string url, EmptyRequestData info, string sessionID)
{
return _httpResponseUtil.EmptyArrayResponse();
}
@@ -207,7 +207,7 @@ public class DialogueCallbacks(
///
///
///
- public string ListInbox(string url, EmptyRequestData info, string sessionID)
+ public virtual string ListInbox(string url, EmptyRequestData info, string sessionID)
{
return _httpResponseUtil.EmptyArrayResponse();
}
@@ -219,7 +219,7 @@ public class DialogueCallbacks(
///
///
///
- public string SendFriendRequest(string url, FriendRequestData info, string sessionID)
+ public virtual string SendFriendRequest(string url, FriendRequestData info, string sessionID)
{
return _httpResponseUtil.GetBody(_dialogueController.SendFriendRequest(sessionID, info));
}
@@ -231,7 +231,7 @@ public class DialogueCallbacks(
///
///
///
- public string AcceptAllFriendRequests(string url, EmptyRequestData info, string sessionID)
+ public virtual string AcceptAllFriendRequests(string url, EmptyRequestData info, string sessionID)
{
return _httpResponseUtil.NullResponse();
}
@@ -243,7 +243,7 @@ public class DialogueCallbacks(
///
///
///
- public string AcceptFriendRequest(string url, AcceptFriendRequestData info, string sessionID)
+ public virtual string AcceptFriendRequest(string url, AcceptFriendRequestData info, string sessionID)
{
return _httpResponseUtil.GetBody(true);
}
@@ -255,7 +255,7 @@ public class DialogueCallbacks(
///
///
///
- public string DeclineFriendRequest(string url, DeclineFriendRequestData info, string sessionID)
+ public virtual string DeclineFriendRequest(string url, DeclineFriendRequestData info, string sessionID)
{
return _httpResponseUtil.GetBody(true);
}
@@ -267,7 +267,7 @@ public class DialogueCallbacks(
///
///
///
- public string CancelFriendRequest(string url, CancelFriendRequestData info, string sessionID)
+ public virtual string CancelFriendRequest(string url, CancelFriendRequestData info, string sessionID)
{
return _httpResponseUtil.GetBody(true);
}
@@ -279,7 +279,7 @@ public class DialogueCallbacks(
///
///
///
- public string DeleteFriend(string url, DeleteFriendRequest info, string sessionID)
+ public virtual string DeleteFriend(string url, DeleteFriendRequest info, string sessionID)
{
_dialogueController.DeleteFriend(sessionID, info);
return _httpResponseUtil.NullResponse();
@@ -292,7 +292,7 @@ public class DialogueCallbacks(
///
///
///
- public string IgnoreFriend(string url, UIDRequestData info, string sessionID)
+ public virtual string IgnoreFriend(string url, UIDRequestData info, string sessionID)
{
return _httpResponseUtil.NullResponse();
}
@@ -304,32 +304,32 @@ public class DialogueCallbacks(
///
///
///
- public string UnIgnoreFriend(string url, UIDRequestData info, string sessionID)
+ public virtual string UnIgnoreFriend(string url, UIDRequestData info, string sessionID)
{
return _httpResponseUtil.NullResponse();
}
- public string ClearMail(string url, ClearMailMessageRequest info, string sessionID)
+ public virtual string ClearMail(string url, ClearMailMessageRequest info, string sessionID)
{
return _httpResponseUtil.EmptyArrayResponse();
}
- public string CreateGroupMail(string url, CreateGroupMailRequest info, string sessionID)
+ public virtual string CreateGroupMail(string url, CreateGroupMailRequest info, string sessionID)
{
return _httpResponseUtil.EmptyArrayResponse();
}
- public string ChangeMailGroupOwner(string url, ChangeGroupMailOwnerRequest info, string sessionID)
+ public virtual string ChangeMailGroupOwner(string url, ChangeGroupMailOwnerRequest info, string sessionID)
{
return "Not Implemented!"; // Not implemented in Node
}
- public string AddUserToMail(string url, AddUserGroupMailRequest info, string sessionID)
+ public virtual string AddUserToMail(string url, AddUserGroupMailRequest info, string sessionID)
{
return "Not Implemented!"; // Not implemented in Node
}
- public string RemoveUserFromMail(string url, RemoveUserGroupMailRequest info, string sessionID)
+ public virtual string RemoveUserFromMail(string url, RemoveUserGroupMailRequest info, string sessionID)
{
return "Not Implemented!"; // Not implemented in Node
}
diff --git a/Libraries/Core/Controllers/AchievementController.cs b/Libraries/Core/Controllers/AchievementController.cs
index c449bfa6..3f33c7e3 100644
--- a/Libraries/Core/Controllers/AchievementController.cs
+++ b/Libraries/Core/Controllers/AchievementController.cs
@@ -9,7 +9,7 @@ public class AchievementController(
DatabaseService _databaseService
)
{
- public GetAchievementsResponse GetAchievements(string sessionID)
+ public virtual GetAchievementsResponse GetAchievements(string sessionID)
{
return new GetAchievementsResponse
{
@@ -17,7 +17,7 @@ public class AchievementController(
};
}
- public CompletedAchievementsResponse GetAchievementStatics(string sessionID)
+ public virtual CompletedAchievementsResponse GetAchievementStatics(string sessionID)
{
var achievements = _databaseService.GetAchievements();
var stats = new Dictionary();
diff --git a/Libraries/Core/Controllers/DialogueController.cs b/Libraries/Core/Controllers/DialogueController.cs
index 0b43bded..55f2f06e 100644
--- a/Libraries/Core/Controllers/DialogueController.cs
+++ b/Libraries/Core/Controllers/DialogueController.cs
@@ -33,7 +33,7 @@ public class DialogueController(
///
///
///
- public void RegisterChatBot(IDialogueChatBot chatBot) // TODO: this is in with the helper types
+ public virtual void RegisterChatBot(IDialogueChatBot chatBot) // TODO: this is in with the helper types
{
if (_dialogueChatBots.Any(cb => cb.GetChatBot().Id == chatBot.GetChatBot().Id))
{
@@ -61,7 +61,7 @@ public class DialogueController(
///
/// session id
/// GetFriendListDataResponse
- public GetFriendListDataResponse GetFriendList(string sessionId)
+ public virtual GetFriendListDataResponse GetFriendList(string sessionId)
{
// Add all chatbots to the friends list
var friends = GetActiveChatBots();
@@ -120,7 +120,7 @@ public class DialogueController(
///
/// Session Id
/// list of dialogs
- public List GenerateDialogueList(string sessionId)
+ public virtual List GenerateDialogueList(string sessionId)
{
var data = new List();
foreach (var dialogueId in _dialogueHelper.GetDialogsForProfile(sessionId))
@@ -137,7 +137,7 @@ public class DialogueController(
/// Dialog id
/// Session Id
/// DialogueInfo
- public DialogueInfo GetDialogueInfo(
+ public virtual DialogueInfo GetDialogueInfo(
string? dialogueId,
string sessionId)
{
@@ -165,7 +165,7 @@ public class DialogueController(
/// What type of message is being sent
/// Player id
/// UserDialogInfo list
- public List GetDialogueUsers(
+ public virtual List GetDialogueUsers(
Dialogue? dialog,
MessageType? messageType,
string sessionId)
@@ -206,7 +206,7 @@ public class DialogueController(
/// Get dialog request
/// Session id
/// GetMailDialogViewResponseData object
- public GetMailDialogViewResponseData GenerateDialogueView(
+ public virtual GetMailDialogViewResponseData GenerateDialogueView(
GetMailDialogViewRequestData request,
string sessionId)
{
@@ -369,7 +369,7 @@ public class DialogueController(
///
/// id of the dialog to remove
/// Player id
- public void RemoveDialogue(
+ public virtual void RemoveDialogue(
string? dialogueId,
string sessionId)
{
@@ -400,7 +400,7 @@ public class DialogueController(
///
///
///
- public void SetDialoguePin(string? dialogueId, bool shouldPin, string sessionId)
+ public virtual void SetDialoguePin(string? dialogueId, bool shouldPin, string sessionId)
{
var dialog = _dialogueHelper.GetDialogsForProfile(sessionId).GetValueOrDefault(dialogueId);
if (dialog is null)
@@ -428,7 +428,7 @@ public class DialogueController(
///
/// Dialog ids to set as read
/// Player profile id
- public void SetRead(List? dialogueIds, string sessionId)
+ public virtual void SetRead(List? dialogueIds, string sessionId)
{
var dialogs = _dialogueHelper.GetDialogsForProfile(sessionId);
if (dialogs is null || !dialogs.Any())
@@ -460,7 +460,7 @@ public class DialogueController(
/// Dialog to get mail attachments from
/// Session id
/// GetAllAttachmentsResponse or null if dialogue doesnt exist
- public GetAllAttachmentsResponse GetAllAttachments(string dialogueId, string sessionId)
+ public virtual GetAllAttachmentsResponse GetAllAttachments(string dialogueId, string sessionId)
{
var dialogs = _dialogueHelper.GetDialogsForProfile(sessionId);
var dialog = dialogs.TryGetValue(dialogueId, out var dialogInfo);
@@ -493,7 +493,7 @@ public class DialogueController(
///
///
///
- public string SendMessage(
+ public virtual string SendMessage(
string sessionId,
SendMessageRequest request)
{
@@ -562,7 +562,7 @@ public class DialogueController(
return _timeUtil.GetTimeStamp() > message.DateTime + (message.MaxStorageTime ?? 0);
}
- public FriendRequestSendResponse SendFriendRequest(string sessionID, FriendRequestData request)
+ public virtual FriendRequestSendResponse SendFriendRequest(string sessionID, FriendRequestData request)
{
// To avoid needing to jump between profiles, auto-accept all friend requests
var friendProfile = _profileHelper.GetFullProfile(request.To);
@@ -607,7 +607,7 @@ public class DialogueController(
};
}
- public void DeleteFriend(string sessionID, DeleteFriendRequest request)
+ public virtual void DeleteFriend(string sessionID, DeleteFriendRequest request)
{
var profile = _saveServer.GetProfile(sessionID);
var friendIndex = profile.FriendProfileIds.IndexOf(request.FriendId);
diff --git a/Libraries/Core/Controllers/ProfileController.cs b/Libraries/Core/Controllers/ProfileController.cs
index ac992713..3797dc39 100644
--- a/Libraries/Core/Controllers/ProfileController.cs
+++ b/Libraries/Core/Controllers/ProfileController.cs
@@ -40,7 +40,7 @@ public class ProfileController(
/**
* Handle /launcher/profiles
*/
- public List GetMiniProfiles()
+ public virtual List GetMiniProfiles()
{
return _saveServer.GetProfiles().Select(kv => GetMiniProfile(kv.Key)).ToList();
}
@@ -48,7 +48,7 @@ public class ProfileController(
/**
* Handle launcher/profile/info
*/
- public MiniProfile GetMiniProfile(string sessionID)
+ public virtual MiniProfile GetMiniProfile(string sessionID)
{
var profile = _saveServer.GetProfile(sessionID);
if (profile?.CharacterData == null)
@@ -101,7 +101,7 @@ public class ProfileController(
/**
* Handle client/game/profile/list
*/
- public List GetCompleteProfile(string sessionID)
+ public virtual List GetCompleteProfile(string sessionID)
{
return _profileHelper.GetCompleteProfile(sessionID);
}
@@ -112,7 +112,7 @@ public class ProfileController(
* @param sessionID Player id
* @returns Profiles _id value
*/
- public string CreateProfile(ProfileCreateRequestData request, string sessionID)
+ public virtual string CreateProfile(ProfileCreateRequestData request, string sessionID)
{
return _createProfileService.CreateProfile(sessionID, request);
}
@@ -123,7 +123,7 @@ public class ProfileController(
* @param sessionID
* @returns IPmcData object
*/
- public PmcData GeneratePlayerScav(string sessionID)
+ public virtual PmcData GeneratePlayerScav(string sessionID)
{
return _playerScavGenerator.Generate(sessionID);
}
@@ -131,7 +131,7 @@ public class ProfileController(
/**
* Handle client/game/profile/nickname/validate
*/
- public string ValidateNickname(ValidateNicknameRequestData info, string sessionID)
+ public virtual string ValidateNickname(ValidateNicknameRequestData info, string sessionID)
{
if (info.Nickname.Length < 3)
{
@@ -150,7 +150,7 @@ public class ProfileController(
* Handle client/game/profile/nickname/change event
* Client allows player to adjust their profile name
*/
- public string ChangeNickname(ProfileChangeNicknameRequestData info, string sessionID)
+ public virtual string ChangeNickname(ProfileChangeNicknameRequestData info, string sessionID)
{
var output = ValidateNickname(
new ValidateNicknameRequestData
@@ -174,7 +174,7 @@ public class ProfileController(
/**
* Handle client/game/profile/voice/change event
*/
- public void ChangeVoice(ProfileChangeVoiceRequestData info, string sessionID)
+ public virtual void ChangeVoice(ProfileChangeVoiceRequestData info, string sessionID)
{
var pmcData = _profileHelper.GetPmcProfile(sessionID);
pmcData.Info.Voice = info.Voice;
@@ -183,7 +183,7 @@ public class ProfileController(
/**
* Handle client/game/profile/search
*/
- public List SearchProfiles(SearchProfilesRequestData info, string sessionID)
+ public virtual List SearchProfiles(SearchProfilesRequestData info, string sessionID)
{
var result = new List();
@@ -208,7 +208,7 @@ public class ProfileController(
/**
* Handle client/profile/status
*/
- public GetProfileStatusResponseData GetProfileStatus(string sessionId)
+ public virtual GetProfileStatusResponseData GetProfileStatus(string sessionId)
{
var account = _saveServer.GetProfile(sessionId).ProfileInfo;
var response = new GetProfileStatusResponseData
@@ -243,7 +243,7 @@ public class ProfileController(
/**
* Handle client/profile/view
*/
- public GetOtherProfileResponse GetOtherProfile(string sessionId, GetOtherProfileRequest request)
+ public virtual GetOtherProfileResponse GetOtherProfile(string sessionId, GetOtherProfileRequest request)
{
// Find the profile by the account ID, fall back to the current player if we can't find the account
var profileToView = _profileHelper.GetFullProfileByAccountId(request.AccountId);
@@ -327,7 +327,7 @@ public class ProfileController(
/**
* Handle client/profile/settings
*/
- public bool SetChosenProfileIcon(string sessionId, GetProfileSettingsRequest request)
+ public virtual bool SetChosenProfileIcon(string sessionId, GetProfileSettingsRequest request)
{
var profileToUpdate = _profileHelper.GetPmcProfile(sessionId);
if (profileToUpdate == null)
diff --git a/Libraries/Core/Services/LocationLifecycleService.cs b/Libraries/Core/Services/LocationLifecycleService.cs
index 8a66cc78..293a4fcb 100644
--- a/Libraries/Core/Services/LocationLifecycleService.cs
+++ b/Libraries/Core/Services/LocationLifecycleService.cs
@@ -124,7 +124,7 @@ public class LocationLifecycleService
/**
* Handle client/match/local/start
*/
- public StartLocalRaidResponseData StartLocalRaid(string sessionId, StartLocalRaidRequestData request)
+ public virtual StartLocalRaidResponseData StartLocalRaid(string sessionId, StartLocalRaidRequestData request)
{
_logger.Debug($"Starting: {request.Location}");
@@ -400,7 +400,7 @@ public class LocationLifecycleService
/**
* Handle client/match/local/end
*/
- public void EndLocalRaid(string sessionId, EndLocalRaidRequestData request)
+ public virtual void EndLocalRaid(string sessionId, EndLocalRaidRequestData request)
{
// Clear bot loot cache
_botLootCacheService.ClearCache();