1.12.X - LightFinder + Bugfixes + Other fixes from 1.11.X #39

Merged
defnotken merged 85 commits from 1.12.0 into master 2025-10-05 05:48:32 +00:00
2 changed files with 22 additions and 5 deletions
Showing only changes of commit 0cc7181e98 - Show all commits

View File

@@ -1,4 +1,4 @@
using Dalamud.Game.ClientState.Conditions;
using Dalamud.Game.ClientState.Conditions;
using Dalamud.Game.ClientState.Objects;
using Dalamud.Game.ClientState.Objects.SubKinds;
using Dalamud.Game.ClientState.Objects.Types;
@@ -541,7 +541,6 @@ public class DalamudUtilService : IHostedService, IMediatorSubscriber
curWaitTime += tick;
Thread.Sleep(tick);
}
Thread.Sleep(tick * 2);
}
@@ -557,6 +556,18 @@ public class DalamudUtilService : IHostedService, IMediatorSubscriber
return result;
}
public string? GetWorldNameFromPlayerAddress(nint address)
{
if (address == nint.Zero) return null;
EnsureIsOnFramework();
var playerCharacter = _objectTable.OfType<IPlayerCharacter>().FirstOrDefault(p => p.Address == address);
if (playerCharacter == null) return null;
var worldId = (ushort)playerCharacter.HomeWorld.RowId;
return WorldData.Value.TryGetValue(worldId, out var worldName) ? worldName : null;
}
private unsafe void CheckCharacterForDrawing(nint address, string characterName)
{
var gameObj = (GameObject*)address;

View File

@@ -119,13 +119,18 @@ public class SyncshellFinderUI : WindowMediatorSubscriberBase
ImGui.TextUnformatted(displayName);
ImGui.TableNextColumn();
var broadcasts = _broadcastScannerService.GetActiveSyncshellBroadcasts();
var broadcast = broadcasts.FirstOrDefault(b => string.Equals(b.GID, shell.Group.GID, StringComparison.Ordinal));
var broadcasterName = "Unknown";
var broadcast = _broadcastScannerService.GetActiveSyncshellBroadcasts()
.FirstOrDefault(b => string.Equals(b.GID, shell.Group.GID, StringComparison.Ordinal));
if (broadcast != null)
{
var playerInfo = _dalamudUtilService.FindPlayerByNameHash(broadcast.HashedCID);
broadcasterName = !string.IsNullOrEmpty(playerInfo.Name) ? playerInfo.Name : "Unknown Player";
if (!string.IsNullOrEmpty(playerInfo.Name))
{
var worldName = _dalamudUtilService.GetWorldNameFromPlayerAddress(playerInfo.Address);
broadcasterName = !string.IsNullOrEmpty(worldName) ? $"{playerInfo.Name} ({worldName})" : playerInfo.Name;
}
}
ImGui.TextUnformatted(broadcasterName);
@@ -317,4 +322,5 @@ public class SyncshellFinderUI : WindowMediatorSubscriberBase
return _nearbySyncshells[_selectedNearbyIndex].Group.GID;
}
}