public static string SanitizeInstanceName(XivString name) { return(Utils.Capitalize( Utils.RemoveLineBreaks( Utils.SanitizeTags(name))) .Replace("–", "-")); }
public static string SanitizeQuestName(XivString str) { return(str.ToString() .Replace("", "") // Down arrow .Replace("", "") // X mark .TrimStart()); }
public string Visit(XivString xivString) { StringBuilder builder = new StringBuilder(); foreach (var child in xivString.Children) { builder.Append(child.Accept(this)); } return(builder.ToString()); }
public static string Convert(XivString str) { var formatter = new HtmlStringFormatter(); return(str.Accept(formatter)); }
public SenderPlayer?GetSenderPlayer() { using var stream = new MemoryStream(this.Sender); using var reader = new BinaryReader(stream); var text = new List <byte>(); while (reader.BaseStream.Position < reader.BaseStream.Length) { var b = reader.ReadByte(); // read payloads if (b == 2) { var chunkType = reader.ReadByte(); var chunkLen = XivString.GetInteger(reader); // interactive if (chunkType == 0x27) { var subType = reader.ReadByte(); // player name if (subType == 0x01) { // unk reader.ReadByte(); var serverId = (ushort)XivString.GetInteger(reader); // unk reader.ReadBytes(2); var nameLen = (int)XivString.GetInteger(reader); var playerName = Encoding.UTF8.GetString(reader.ReadBytes(nameLen)); return(new SenderPlayer(playerName, serverId)); } } reader.ReadBytes((int)chunkLen); continue; } // read text text.Add(b); } if (text.Count == 0) { return(null); } var name = Encoding.UTF8.GetString(text.ToArray()); // remove the party position if present var chars = name.ToCharArray(); if (chars.Length > 0 && PartyChars.Contains((chars[0]))) { name = name.Substring(1); } return(new SenderPlayer(name, 0)); }