Beispiel #1
0
        private void MessageReceived(long epoch, byte[] message, int set, FFXIVNetworkMonitor.ConnectionType connectionType)
        {
            var res = Parse(message);


            if (res.header.MessageType == ParameterController.countDownPacket)//CountDown
            {
                var countDownTime = res.data[36];
                var unixTime      = BitConverter.ToUInt32(res.data, 24);
                var nameBytes     = new byte[18];
                Array.Copy(res.data, 41, nameBytes, 0, 18);
                var name = Encoding.UTF8.GetString(nameBytes) ?? "";
                Play?.Invoke(this, new PlayEvent(0, Convert.ToInt32(unixTime + countDownTime), name));
            }


            if (res.header.MessageType == ParameterController.partyStopPacket || res.header.MessageType == ParameterController.ensembleStopPacket) //Stop
            {
                Play?.Invoke(this, new PlayEvent(1, 0, " "));
            }
            if (res.header.MessageType == ParameterController.ensembleStartPacket)//ensemble start
            {
                var unixTime = BitConverter.ToUInt32(res.data, 24);
                ParameterController.GetInstance().isEnsembleSync = true;
                Play?.Invoke(this, new PlayEvent(0, Convert.ToInt32(unixTime + 6), " "));
            }
            if (res.header.MessageType == ParameterController.ensemblePacket)//ensemble mode
            {
                if (ParameterController.GetInstance().isEnsembleSync)
                {
                    ParameterController.GetInstance().AnalyzeEnsembleNotes(res.data);
                }
                ParameterController.GetInstance().isEnsembleSync = false;
            }
        }
Beispiel #2
0
        private void MessageSent(long epoch, byte[] message, int set, FFXIVNetworkMonitor.ConnectionType connectionType)
        {
            var res = Parse(message);

            var item = new PacketEntry
            {
                IsVisible      = true,
                ActorControl   = -1,
                Data           = message,
                Message        = res.header.MessageType.ToString("X4"),
                Direction      = "C",
                Category       = set.ToString(),
                Size           = res.header.MessageLength.ToString(),
                Set            = set,
                RouteID        = res.header.RouteID.ToString(),
                PacketUnixTime = res.header.Seconds,
                Connection     = connectionType
            };

            if (res.header.MessageType == 0x0287) //Bard Performance
            {
                var length = res.data[32];
                var notes  = new byte[length];
                Array.Copy(res.data, 33, notes, 0, length);
                //Console.WriteLine("1 packet");
                //Log.B(notes, true);//TODO: Time analyze
                //ParameterController.GetInstance().AnalyzeNotes(notes);
            }
        }
Beispiel #3
0
        private void MessageSent(long epoch, byte[] message, int set, FFXIVNetworkMonitor.ConnectionType connectionType)
        {
            var res = Parse(message);

            var item = new PacketEntry
            {
                IsVisible    = true,
                ActorControl = -1,
                Data         = message,
                Message      = res.header.MessageType.ToString("X4"),
                Direction    = "C",
                Category     = set.ToString(),
                // Timestamp = Util.UnixTimeStampToDateTime(res.header.Seconds).ToString(@"MM\/dd\/yyyy HH:mm:ss"),
                Size           = res.header.MessageLength.ToString(),
                Set            = set,
                RouteID        = res.header.RouteID.ToString(),
                PacketUnixTime = res.header.Seconds,
                // SystemMsTime = Millis(),
                Connection = connectionType
            };

            if (res.header.MessageType == 0x018B) //Bard Performance
            {
                var length = res.data[32];
                var notes  = new byte[length];
                Array.Copy(res.data, 33, notes, 0, length);
                Log.B(notes, true);//TODO: Time analyze
                ParameterController.GetInstance().AnalyzeNotes(notes);
            }
        }
Beispiel #4
0
        private void MessageReceived(long epoch, byte[] message, int set, FFXIVNetworkMonitor.ConnectionType connectionType)
        {
            var res = Parse(message);


            if (res.header.MessageType == 0x036B && Log.isBeta)//CountDown
            {
                var countDownTime = res.data[36];
                var unixTime      = BitConverter.ToUInt32(res.data, 24);
                var nameBytes     = new byte[18];
                Array.Copy(res.data, 41, nameBytes, 0, 18);
                var name = Encoding.UTF8.GetString(nameBytes) ?? "";
                Play?.Invoke(this, new PlayEvent(0, Convert.ToInt32(unixTime + countDownTime), name));
            }


            //if (res.header.MessageType == 0x011C && Log.isBeta) //party check
            //{
            //    Console.WriteLine("get!");
            //    var nameBytes = new byte[18];
            //    Array.Copy(res.data, 52, nameBytes, 0, 18);
            //    var name = Encoding.UTF8.GetString(nameBytes) ?? "";
            //    Play?.Invoke(this, new PlayEvent(1, 0, name));

            //}
            if (res.header.MessageType == 0x0355 && Log.isBeta) //party check
            {
                Play?.Invoke(this, new PlayEvent(1, 0, " "));
            }
        }
Beispiel #5
0
 private void MessageSent(long epoch, byte[] message, int set, FFXIVNetworkMonitor.ConnectionType connectionType)
 {
     try
     {
         var res = Parse(message);
         if (res.header.MessageType == 0x02A3) //Bard Performance
         {
             string[] instrumentlist = { "妹有乐器", "竖琴", "钢琴", "鲁特琴", "提琴拨弦", "长笛", "双簧管", "单簧管", "横笛", "排箫", "定音鼓", "邦戈鼓", "低音鼓", "小军鼓", "镲", "小号", "长号", "大号", "圆号", "萨克斯管" };
             var      type           = BitConverter.ToUInt16(res.data, 32);
             if (type == (0x071C))
             {
                 byte data = res.data[36];
                 if (data <= 19)
                 {
                     Play?.Invoke(this, new PlayEvent(2, 0, instrumentlist[data]));
                     Log.overlayLog($"乐器更换:{instrumentlist[data]}");
                 }
             }
         }
     }
     catch (Exception e)
     {
         Log.overlayLog(e.ToString());
     }
 }
        private void MessageSent(long epoch, byte[] message, int set, FFXIVNetworkMonitor.ConnectionType connectionType)
        {
            var res = Parse(message);

            var item = new PacketEntry {
                IsVisible = true, ActorControl = -1, Data = message, Message = res.header.MessageType.ToString("X4"), Direction = "C",
                Category  = set.ToString(), Timestamp = Util.UnixTimeStampToDateTime(res.header.Seconds).ToString(@"MM\/dd\/yyyy HH:mm:ss"), Size = res.header.MessageLength.ToString(),
                Set       = set, RouteID = res.header.RouteID.ToString(), PacketUnixTime = res.header.Seconds, SystemMsTime = Millis(), Connection = connectionType
            };

            if (_configFlags.HasFlag(ConfigFlags.DontUsePacketTimestamp))
            {
                item.Timestamp = DateTime.Now.ToString(@"MM\/dd\/yyyy HH:mm:ss.fff tt");
            }

            _myTab.Dispatcher.Invoke(new Action(() => { _myTab.AddPacketToListView(item); }));
        }
Beispiel #7
0
 private void MessageSent(long epoch, byte[] message, int set, FFXIVNetworkMonitor.ConnectionType connectionType)
 {
     try
     {
         var res = Parse(message);
         if (res.header.MessageType == ParameterController.instruSendingPacket) //Bard Performance
         {
             var type = BitConverter.ToUInt16(res.data, 32);
             if (type == (0x071C))
             {
                 byte data = res.data[36];
                 if (data <= 19)
                 {
                     Play?.Invoke(this, new PlayEvent(2, 0, constStringClass.IDtoString(data)));
                     Log.overlayLog($"乐器更换:{constStringClass.IDtoString(data)}");
                 }
             }
         }
     }
     catch (Exception e)
     {
         Log.overlayLog(e.ToString());
     }
 }