Use spread element for TextArrowPayloads

Also changes CreatePartyFinderLink to use client-language-based text.
This commit is contained in:
Haselnussbomber 2025-12-19 17:39:31 +01:00
parent a3d930b8e2
commit 8a49a5ee48
No known key found for this signature in database
GPG key ID: BB905BB49E7295D1

View file

@ -250,16 +250,12 @@ public class SeString
var mapPayload = new MapLinkPayload(territoryId, mapId, rawX, rawY); var mapPayload = new MapLinkPayload(territoryId, mapId, rawX, rawY);
var nameString = GetMapLinkNameString(mapPayload.PlaceName, instance, mapPayload.CoordinateString); var nameString = GetMapLinkNameString(mapPayload.PlaceName, instance, mapPayload.CoordinateString);
var payloads = new List<Payload>(new Payload[] return new SeString(new List<Payload>([
{
mapPayload, mapPayload,
// arrow goes here ..TextArrowPayloads,
new TextPayload(nameString), new TextPayload(nameString),
RawPayload.LinkTerminator, RawPayload.LinkTerminator,
}); ]));
payloads.InsertRange(1, TextArrowPayloads);
return new SeString(payloads);
} }
/// <summary> /// <summary>
@ -290,16 +286,12 @@ public class SeString
var mapPayload = new MapLinkPayload(territoryId, mapId, xCoord, yCoord, fudgeFactor); var mapPayload = new MapLinkPayload(territoryId, mapId, xCoord, yCoord, fudgeFactor);
var nameString = GetMapLinkNameString(mapPayload.PlaceName, instance, mapPayload.CoordinateString); var nameString = GetMapLinkNameString(mapPayload.PlaceName, instance, mapPayload.CoordinateString);
var payloads = new List<Payload>(new Payload[] return new SeString(new List<Payload>([
{
mapPayload, mapPayload,
// arrow goes here ..TextArrowPayloads,
new TextPayload(nameString), new TextPayload(nameString),
RawPayload.LinkTerminator, RawPayload.LinkTerminator,
}); ]));
payloads.InsertRange(1, TextArrowPayloads);
return new SeString(payloads);
} }
/// <summary> /// <summary>
@ -355,21 +347,15 @@ public class SeString
/// <returns>An SeString containing all the payloads necessary to display a party finder link in the chat log.</returns> /// <returns>An SeString containing all the payloads necessary to display a party finder link in the chat log.</returns>
public static SeString CreatePartyFinderLink(uint listingId, string recruiterName, bool isCrossWorld = false) public static SeString CreatePartyFinderLink(uint listingId, string recruiterName, bool isCrossWorld = false)
{ {
var payloads = new List<Payload>() var clientState = Service<ClientState.ClientState>.Get();
{ var seStringEvaluator = Service<SeStringEvaluator>.Get();
return new SeString(new List<Payload>([
new PartyFinderPayload(listingId, isCrossWorld ? PartyFinderPayload.PartyFinderLinkType.NotSpecified : PartyFinderPayload.PartyFinderLinkType.LimitedToHomeWorld), new PartyFinderPayload(listingId, isCrossWorld ? PartyFinderPayload.PartyFinderLinkType.NotSpecified : PartyFinderPayload.PartyFinderLinkType.LimitedToHomeWorld),
// -> ..TextArrowPayloads,
new TextPayload($"Looking for Party ({recruiterName})" + (isCrossWorld ? " " : string.Empty)), ..SeString.Parse(seStringEvaluator.EvaluateFromAddon(2265, [recruiterName, isCrossWorld ? 0 : 1], clientState.ClientLanguage)).Payloads,
}; RawPayload.LinkTerminator
]));
payloads.InsertRange(1, TextArrowPayloads);
if (isCrossWorld)
payloads.Add(new IconPayload(BitmapFontIcon.CrossWorld));
payloads.Add(RawPayload.LinkTerminator);
return new SeString(payloads);
} }
/// <summary> /// <summary>
@ -379,16 +365,12 @@ public class SeString
/// <returns>An SeString containing all the payloads necessary to display a link to the party finder search conditions.</returns> /// <returns>An SeString containing all the payloads necessary to display a link to the party finder search conditions.</returns>
public static SeString CreatePartyFinderSearchConditionsLink(string message) public static SeString CreatePartyFinderSearchConditionsLink(string message)
{ {
var payloads = new List<Payload>() return new SeString(new List<Payload>([
{
new PartyFinderPayload(), new PartyFinderPayload(),
// -> ..TextArrowPayloads,
new TextPayload(message), new TextPayload(message),
}; RawPayload.LinkTerminator
payloads.InsertRange(1, TextArrowPayloads); ]));
payloads.Add(RawPayload.LinkTerminator);
return new SeString(payloads);
} }
/// <summary> /// <summary>