mirror of
https://github.com/Caraxi/mare.client.git
synced 2025-12-12 19:47:21 +01:00
add mare profiles
This commit is contained in:
parent
f6a471f457
commit
2b829af4f8
22 changed files with 625 additions and 57 deletions
|
|
@ -84,8 +84,8 @@ public sealed class GameObjectHandler : DisposableMediatorSubscriberBase
|
|||
|
||||
public IntPtr Address { get; set; }
|
||||
public unsafe Character* Character => (Character*)Address;
|
||||
public Lazy<Dalamud.Game.ClientState.Objects.Types.GameObject?> GameObjectLazy { get; private set; }
|
||||
public IntPtr CurrentAddress => _getAddress.Invoke();
|
||||
public Lazy<Dalamud.Game.ClientState.Objects.Types.GameObject?> GameObjectLazy { get; private set; }
|
||||
public string Name { get; private set; }
|
||||
public ObjectKind ObjectKind { get; }
|
||||
private byte[] CustomizeData { get; set; } = new byte[26];
|
||||
|
|
@ -101,6 +101,8 @@ public sealed class GameObjectHandler : DisposableMediatorSubscriberBase
|
|||
{
|
||||
curPtr = _getAddress.Invoke();
|
||||
|
||||
if (curPtr == IntPtr.Zero) return true;
|
||||
|
||||
var drawObj = GetDrawObj(curPtr);
|
||||
return IsBeingDrawn(drawObj, curPtr);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -99,6 +99,7 @@ public sealed class PairManager : DisposableMediatorSubscriberBase
|
|||
{
|
||||
if (_allClientPairs.TryGetValue(user, out var pair))
|
||||
{
|
||||
Mediator.Publish(new ClearProfileDataMessage(pair.UserData));
|
||||
pair.MarkOffline();
|
||||
RecreateLazy();
|
||||
}
|
||||
|
|
@ -107,6 +108,9 @@ public sealed class PairManager : DisposableMediatorSubscriberBase
|
|||
public void MarkPairOnline(OnlineUserIdentDto dto, bool sendNotif = true)
|
||||
{
|
||||
if (!_allClientPairs.ContainsKey(dto.User)) throw new InvalidOperationException("No user found for " + dto);
|
||||
|
||||
Mediator.Publish(new ClearProfileDataMessage(dto.User));
|
||||
|
||||
var pair = _allClientPairs[dto.User];
|
||||
if (pair.HasCachedPlayer) return;
|
||||
|
||||
|
|
@ -213,6 +217,12 @@ public sealed class PairManager : DisposableMediatorSubscriberBase
|
|||
|
||||
if (pair.UserPair == null) throw new InvalidOperationException("No direct pair for " + dto);
|
||||
|
||||
if (pair.UserPair.OtherPermissions.IsPaused() != dto.Permissions.IsPaused()
|
||||
|| pair.UserPair.OtherPermissions.IsPaired() != dto.Permissions.IsPaired())
|
||||
{
|
||||
Mediator.Publish(new ClearProfileDataMessage(dto.User));
|
||||
}
|
||||
|
||||
pair.UserPair.OtherPermissions = dto.Permissions;
|
||||
|
||||
Logger.LogTrace("Paired: {synced}, Paused: {paused}, Anims: {anims}, Sounds: {sounds}",
|
||||
|
|
@ -229,6 +239,12 @@ public sealed class PairManager : DisposableMediatorSubscriberBase
|
|||
|
||||
if (pair.UserPair == null) throw new InvalidOperationException("No direct pair for " + dto);
|
||||
|
||||
if (pair.UserPair.OwnPermissions.IsPaused() != dto.Permissions.IsPaused()
|
||||
|| pair.UserPair.OwnPermissions.IsPaired() != dto.Permissions.IsPaired())
|
||||
{
|
||||
Mediator.Publish(new ClearProfileDataMessage(dto.User));
|
||||
}
|
||||
|
||||
pair.UserPair.OwnPermissions = dto.Permissions;
|
||||
|
||||
Logger.LogTrace("Paired: {synced}, Paused: {paused}, Anims: {anims}, Sounds: {sounds}",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue