Ejemplo n.º 1
0
 public static string SanitizeInstanceName(XivString name)
 {
     return(Utils.Capitalize(
                Utils.RemoveLineBreaks(
                    Utils.SanitizeTags(name)))
            .Replace("–", "-"));
 }
Ejemplo n.º 2
0
 public static string SanitizeQuestName(XivString str)
 {
     return(str.ToString()
            .Replace("", "") // Down arrow
            .Replace("", "") // X mark
            .TrimStart());
 }
Ejemplo n.º 3
0
        public string Visit(XivString xivString)
        {
            StringBuilder builder = new StringBuilder();

            foreach (var child in xivString.Children)
            {
                builder.Append(child.Accept(this));
            }
            return(builder.ToString());
        }
Ejemplo n.º 4
0
        public static string Convert(XivString str)
        {
            var formatter = new HtmlStringFormatter();

            return(str.Accept(formatter));
        }
Ejemplo n.º 5
0
        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));
        }