fix: Fixes removing virtue when player is deleted (#2135)

This commit is contained in:
Kamron Batman 2025-03-02 17:50:18 -08:00 committed by GitHub
parent 2a8c62e8be
commit 49fd5f210d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using ModernUO.CodeGeneratedEvents;
using Server.Collections;
using Server.Logging;
using Server.Mobiles;
@ -75,6 +76,9 @@ public class VirtueSystem : GenericPersistence
}
}
[OnEvent(nameof(PlayerMobile.PlayerDeletedEvent))]
public static void OnPlayerDeleted(PlayerMobile pm) => _playerVirtues.Remove(pm);
public override void Serialize(IGenericWriter writer)
{
writer.WriteEncodedInt(0); // version
@ -98,7 +102,7 @@ public class VirtueSystem : GenericPersistence
var virtues = new VirtueContext();
virtues.Deserialize(reader);
if (virtues.IsUsed())
if (player != null && virtues.IsUsed())
{
_playerVirtues.Add(player, virtues);
}