Пример #1
0
        public void PrintChat(XivChatType type, string senderName, string messageString)
        {
            var chat = new XivChatEntry
            {
                Type = type, Name = senderName, MessageBytes = Encoding.UTF8.GetBytes(messageString)
            };

            pluginInterface.Framework.Gui.Chat.PrintChat(chat);
        }
Пример #2
0
        private void PrintChat(XivChatType type, string senderName, SeString messageSeString)
        {
            var chat = new XivChatEntry
            {
                Type    = type,
                Name    = senderName,
                Message = messageSeString
            };

            Chat.PrintChat(chat);
        }
Пример #3
0
        private void PrintChat(XivChatType type, string senderName, SeString messageSeString)
        {
            var chat = new XivChatEntry
            {
                Type         = type,
                Name         = senderName,
                MessageBytes = messageSeString.Encode()
            };

            _pluginInterface.Framework.Gui.Chat.PrintChat(chat);
        }
Пример #4
0
        public static XivChatEntry parseChat(string json)
        {
            JToken data = JToken.Parse(json);

            if (data.Type == JTokenType.String)
            {
                return(new XivChatEntry {
                    MessageBytes = new SeString(new List <Payload>()
                    {
                        new TextPayload(data.ToString())
                    }).Encode()
                });
            }

            if (data.Type != JTokenType.Object)
            {
                return(null);
            }

            JObject        o        = data as JObject;
            XivChatEntry   entry    = new XivChatEntry();
            List <Payload> payloads = new List <Payload>();

            if (o.ContainsKey("type") && o["type"].Type == JTokenType.Integer)
            {
                entry.Type = (XivChatType)(ushort)o["type"];
            }

            if (o.ContainsKey("senderId") && o["senderId"].Type == JTokenType.Integer)
            {
                entry.SenderId = (uint)o["senderId"];
            }

            if (o.ContainsKey("name") && o["name"].Type == JTokenType.String)
            {
                entry.Name = (string)o["name"];
            }

            if (o.ContainsKey("text") && o["text"].Type == JTokenType.String)
            {
                payloads.Add(new TextPayload((string)o["text"]));
            }

            if (o.ContainsKey("payloads") && o["payloads"].Type == JTokenType.Array)
            {
                foreach (var p in o["payloads"] as JArray)
                {
                    if (p.Type != JTokenType.Array)
                    {
                        continue;
                    }
                    var payload = p as JArray;

                    var type = payload[0];
                    if (type.Type != JTokenType.String)
                    {
                        continue;
                    }

                    if (payload.Count == 2)
                    {
                        if (type.ToString() == "Text" && payload[1].Type == JTokenType.String)
                        {
                            payloads.Add(new TextPayload((string)payload[1]));
                        }

                        if (type.ToString() == "UIForeground" && payload[1].Type == JTokenType.Integer)
                        {
                            payloads.Add(new UIForegroundPayload(Plugin.pi.Data, (ushort)payload[1]));
                        }

                        if (type.ToString() == "Icon" && payload[1].Type == JTokenType.Integer)
                        {
                            payloads.Add(new IconPayload((BitmapFontIcon)(uint)payload[1]));
                        }
                    }
                }
            }

            entry.MessageBytes = new SeString(payloads).Encode();
            return(entry);
        }
Пример #5
0
 /// <summary>
 ///     Queue a chat message. While method is named as PrintChat, it only add a entry to the queue,
 ///     later to be processed when UpdateQueue() is called.
 /// </summary>
 /// <param name="chat">A message to send.</param>
 public void PrintChat(XivChatEntry chat)
 {
     this.chatQueue.Enqueue(chat);
 }
Пример #6
0
 /// <summary>
 ///     Queue a chat message. While method is named as PrintChat, it only add a entry to the queue,
 ///     later to be processed when UpdateQueue() is called.
 /// </summary>
 /// <param name="chat">A message to send.</param>
 public void PrintChat(XivChatEntry chat)
 {
     throw new NotImplementedException();
 }