added world name to syncshell broadcaster info
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
using Dalamud.Game.ClientState.Conditions;
|
using Dalamud.Game.ClientState.Conditions;
|
||||||
using Dalamud.Game.ClientState.Objects;
|
using Dalamud.Game.ClientState.Objects;
|
||||||
using Dalamud.Game.ClientState.Objects.SubKinds;
|
using Dalamud.Game.ClientState.Objects.SubKinds;
|
||||||
using Dalamud.Game.ClientState.Objects.Types;
|
using Dalamud.Game.ClientState.Objects.Types;
|
||||||
@@ -541,7 +541,6 @@ public class DalamudUtilService : IHostedService, IMediatorSubscriber
|
|||||||
curWaitTime += tick;
|
curWaitTime += tick;
|
||||||
Thread.Sleep(tick);
|
Thread.Sleep(tick);
|
||||||
}
|
}
|
||||||
|
|
||||||
Thread.Sleep(tick * 2);
|
Thread.Sleep(tick * 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -557,6 +556,18 @@ public class DalamudUtilService : IHostedService, IMediatorSubscriber
|
|||||||
return result;
|
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)
|
private unsafe void CheckCharacterForDrawing(nint address, string characterName)
|
||||||
{
|
{
|
||||||
var gameObj = (GameObject*)address;
|
var gameObj = (GameObject*)address;
|
||||||
|
|||||||
@@ -119,13 +119,18 @@ public class SyncshellFinderUI : WindowMediatorSubscriberBase
|
|||||||
ImGui.TextUnformatted(displayName);
|
ImGui.TextUnformatted(displayName);
|
||||||
|
|
||||||
ImGui.TableNextColumn();
|
ImGui.TableNextColumn();
|
||||||
var broadcasts = _broadcastScannerService.GetActiveSyncshellBroadcasts();
|
|
||||||
var broadcast = broadcasts.FirstOrDefault(b => string.Equals(b.GID, shell.Group.GID, StringComparison.Ordinal));
|
|
||||||
var broadcasterName = "Unknown";
|
var broadcasterName = "Unknown";
|
||||||
|
var broadcast = _broadcastScannerService.GetActiveSyncshellBroadcasts()
|
||||||
|
.FirstOrDefault(b => string.Equals(b.GID, shell.Group.GID, StringComparison.Ordinal));
|
||||||
|
|
||||||
if (broadcast != null)
|
if (broadcast != null)
|
||||||
{
|
{
|
||||||
var playerInfo = _dalamudUtilService.FindPlayerByNameHash(broadcast.HashedCID);
|
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);
|
ImGui.TextUnformatted(broadcasterName);
|
||||||
|
|
||||||
@@ -317,4 +322,5 @@ public class SyncshellFinderUI : WindowMediatorSubscriberBase
|
|||||||
|
|
||||||
return _nearbySyncshells[_selectedNearbyIndex].Group.GID;
|
return _nearbySyncshells[_selectedNearbyIndex].Group.GID;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user