Implement websocket stash row change notification (#462)

* implement stash rows notification

* rename class
This commit is contained in:
Cj
2025-07-08 13:30:23 -04:00
committed by GitHub
parent bf71cc1852
commit 9db7ff25d1
4 changed files with 64 additions and 24 deletions
@@ -569,21 +569,26 @@ public class ProfileHelper(
/// </summary>
/// <param name="sessionId">Profile id to give rows to</param>
/// <param name="rowsToAdd">How many rows to give profile</param>
public void AddStashRowsBonusToProfile(MongoId sessionId, int rowsToAdd)
/// <returns>The stash rows bonus id, this is needed for ws notification if we send one</returns>
public MongoId? AddStashRowsBonusToProfile(MongoId sessionId, int rowsToAdd)
{
var profile = GetPmcProfile(sessionId);
if (profile?.Bonuses is null)
{
// Something is very wrong with profile to lack bonuses array, likely broken profile, exit early
return;
return null;
}
var existingBonus = profile?.Bonuses.FirstOrDefault(b => b.Type == BonusType.StashRows);
var existingBonus = profile.Bonuses.FirstOrDefault(b => b.Type == BonusType.StashRows);
var bonusId = existingBonus?.Id;
if (existingBonus is null)
{
profile!.Bonuses.Add(
bonusId = new MongoId();
profile.Bonuses.Add(
new Bonus
{
Id = new MongoId(),
Id = bonusId.Value,
Value = rowsToAdd,
Type = BonusType.StashRows,
IsPassive = true,
@@ -596,6 +601,8 @@ public class ProfileHelper(
{
existingBonus.Value += rowsToAdd;
}
return bonusId!.Value;
}
public bool HasAccessToRepeatableFreeRefreshSystem(PmcData pmcProfile)