mirror of
https://github.com/Caraxi/mare.client.git
synced 2025-12-11 04:57:22 +01:00
rebuild aid on login
This commit is contained in:
parent
85058379e7
commit
c0870e85df
1 changed files with 11 additions and 3 deletions
|
|
@ -47,7 +47,7 @@ public class DalamudUtilService : IHostedService, IMediatorSubscriber
|
|||
private readonly List<string> _notUpdatedCharas = [];
|
||||
private bool _sentBetweenAreas = false;
|
||||
private readonly Dictionary<ulong, string> _aidCache = [];
|
||||
private readonly Lazy<uint> _aid;
|
||||
private Lazy<uint> _aid;
|
||||
private int _aidCounter = 0;
|
||||
|
||||
public DalamudUtilService(ILogger<DalamudUtilService> logger, IClientState clientState, IObjectTable objectTable, IFramework framework,
|
||||
|
|
@ -64,6 +64,7 @@ public class DalamudUtilService : IHostedService, IMediatorSubscriber
|
|||
_gameConfig = gameConfig;
|
||||
_blockedCharacterHandler = blockedCharacterHandler;
|
||||
Mediator = mediator;
|
||||
_sigScanner = sigScanner;
|
||||
_performanceCollector = performanceCollector;
|
||||
WorldData = new(() =>
|
||||
{
|
||||
|
|
@ -126,12 +127,15 @@ public class DalamudUtilService : IHostedService, IMediatorSubscriber
|
|||
}).ConfigureAwait(false);
|
||||
});
|
||||
IsWine = Util.IsWine();
|
||||
_aid = RebuildAid();
|
||||
}
|
||||
|
||||
_aid = new(() =>
|
||||
private Lazy<uint> RebuildAid() {
|
||||
return new(() =>
|
||||
{
|
||||
unsafe
|
||||
{
|
||||
var address = sigScanner.GetStaticAddressFromSig("48 8B 0D ?? ?? ?? ?? 4C 8B CA");
|
||||
var address = _sigScanner.GetStaticAddressFromSig("48 8B 0D ?? ?? ?? ?? 4C 8B CA");
|
||||
return (uint)(address != nint.Zero ? (*(ulong**)address)[1] : 0u);
|
||||
}
|
||||
});
|
||||
|
|
@ -172,6 +176,9 @@ public class DalamudUtilService : IHostedService, IMediatorSubscriber
|
|||
|
||||
public MareMediator Mediator { get; }
|
||||
|
||||
private readonly ISigScanner _sigScanner;
|
||||
|
||||
|
||||
public IGameObject? CreateGameObject(IntPtr reference)
|
||||
{
|
||||
EnsureIsOnFramework();
|
||||
|
|
@ -758,6 +765,7 @@ public class DalamudUtilService : IHostedService, IMediatorSubscriber
|
|||
_logger.LogDebug("Logged in");
|
||||
IsLoggedIn = true;
|
||||
_lastZone = _clientState.TerritoryType;
|
||||
_aid = RebuildAid();
|
||||
Mediator.Publish(new DalamudLoginMessage());
|
||||
}
|
||||
else if (localPlayer == null && IsLoggedIn)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue