Пример #1
0
        private void VoicePlayer_PlayerEvent(object sender,
                                             RoutedPropertyChangedEventArgs <VoiceCyber.UMP.Controls.UMPEventArgs> e)
        {
            try
            {
                OnPlayerEvent(sender, e);
                if (e.NewValue == null)
                {
                    return;
                }
                int code  = e.NewValue.Code;
                var param = e.NewValue.Data;

                TimeSpan ts;
                switch (code)
                {
                case MediaPlayerEventCodes.BTN_PLAY:
                    VoicePlayer.Play();
                    break;

                case Defines.EVT_PAGE_LOADED:

                    break;

                case MediaPlayerEventCodes.PLAYING:
                    ts           = TimeSpan.Parse(param.ToString());
                    mCurrentTime = ts;
                    if (ts.TotalMilliseconds < StartPosition - 500)
                    {
                        if (CircleMode != 0)     //当选择循环的时候,那么就会设置播放的开始位置
                        {
                            VoicePlayer.SetPosition(TimeSpan.FromMilliseconds(StartPosition + 500));
                        }
                    }
                    if (ts.TotalMilliseconds > StopPostion - 500)
                    {
                        if (CircleMode != 0)
                        {
                            OnPlayStopped();
                        }
                        if (CircleMode == 1)
                        {
                            VoicePlayer.SetPosition(TimeSpan.FromMilliseconds(StartPosition));
                        }
                    }
                    break;

                case MediaPlayerEventCodes.PLAYBACKSTOPPED:
                    if (CircleMode != 0)
                    {
                        OnPlayStopped();
                    }
                    break;

                case MediaPlayerEventCodes.BTN_STOP:
                    OnPlayStopped();
                    break;

                case Defines.EVT_EXCEPTION:
                    CurrentApp.WriteLog("MediaPlayer", string.Format("MediaPlayer exception.\t{0}", param));
                    break;

                case Defines.EVT_COMMON:
                    //CurrentApp.WriteLog("MediaPlayer", string.Format("MediaPlayer debug.\t{0}", param));
                    break;
                }
            }
            catch (Exception ex)
            {
                ShowException(ex.Message);
            }
        }
Пример #2
0
        private void HttpThread(object c)
        {
            var context = c as HttpListenerContext;

            string endPoint = context.Request.RemoteEndPoint.ToString();
            int    spIndex  = endPoint.IndexOf(":");

            endPoint = endPoint.Substring(0, spIndex);

            using (HttpListenerResponse response = context.Response)
            {
                if (!context.Request.HasEntityBody)//无数据
                {
                    response.StatusCode = 403;
                    return;
                }

                string attachValue = "";

                //post 的方式有文件上传的在如下解析即可得到客户端参数及值

                HttpListenerRequest request = context.Request;
                if (request.ContentType.Length > 20 && string.Compare(request.ContentType.Substring(0, 20), "multipart/form-data;", true) == 0)
                {
                    List <Values> lst           = new List <Values>();
                    Encoding      Encoding      = request.ContentEncoding;
                    string[]      values        = request.ContentType.Split(';').Skip(1).ToArray();
                    string        boundary      = string.Join(";", values).Replace("boundary=", "").Trim();
                    byte[]        ChunkBoundary = Encoding.GetBytes("--" + boundary + "\r\n");
                    byte[]        EndBoundary   = Encoding.GetBytes("--" + boundary + "--\r\n");
                    Stream        SourceStream  = request.InputStream;
                    var           resultStream  = new MemoryStream();
                    bool          CanMoveNext   = true;
                    Values        data          = null;
                    while (CanMoveNext)
                    {
                        byte[] currentChunk = ReadLineAsBytes(SourceStream);
                        if (!Encoding.GetString(currentChunk).Equals("\r\n"))
                        {
                            resultStream.Write(currentChunk, 0, currentChunk.Length);
                        }
                        if (CompareBytes(ChunkBoundary, currentChunk))
                        {
                            byte[] result = new byte[resultStream.Length - ChunkBoundary.Length];
                            resultStream.Position = 0;
                            resultStream.Read(result, 0, result.Length);
                            CanMoveNext = true;
                            if (result.Length > 0)
                            {
                                data.datas = result;
                            }
                            data = new Values();
                            lst.Add(data);
                            resultStream.Dispose();
                            resultStream = new MemoryStream();
                        }
                        else if (Encoding.GetString(currentChunk).Contains("Content-Disposition"))
                        {
                            byte[] result = new byte[resultStream.Length - 2];
                            resultStream.Position = 0;
                            resultStream.Read(result, 0, result.Length);
                            CanMoveNext = true;
                            data.name   = Encoding.GetString(result).Replace("Content-Disposition: form-data; name=\"", "").Replace("\"", "").Split(';')[0];
                            resultStream.Dispose();
                            resultStream = new MemoryStream();
                        }
                        else if (Encoding.GetString(currentChunk).Contains("Content-Type"))
                        {
                            CanMoveNext = true;
                            data.type   = 1;
                            resultStream.Dispose();
                            resultStream = new MemoryStream();
                        }
                        else if (CompareBytes(EndBoundary, currentChunk))
                        {
                            byte[] result = new byte[resultStream.Length - EndBoundary.Length - 2];
                            resultStream.Position = 0;
                            resultStream.Read(result, 0, result.Length);
                            data.datas = result;
                            resultStream.Dispose();
                            CanMoveNext = false;
                        }
                    }
                    TempMessage tm = new TempMessage();

                    foreach (var key in lst)
                    {
                        if (key.type == 0)
                        {
                            string value = Encoding.GetString(key.datas).Replace("\r\n", "");
                            if (key.name == "attachValue")
                            {
                                attachValue = value;
                            }
                        }
                        if (key.type == 1)
                        {
                            tm.bytes = key.datas;

                            /*
                             * FileStream fs = new FileStream("c:\\3.jpg", FileMode.Create);
                             * fs.Write(key.datas, 0, key.datas.Length);
                             * fs.Close();
                             * fs.Dispose();
                             */
                        }
                    }

                    LogHelper.WriteLog(attachValue);
                    CameraWarning items = JsonHelper.FromJSON <CameraWarning>(attachValue);
                    tm.cam = AIThermometerAPP.Instance().cameras_config.GetNameByIP(endPoint);
                    if (items.Code == 0 && !AIThermometerAPP.Instance().blackcell_pos_error)
                    {
                        tm.temp = items.Reports[0].Temperature;
                        tm.id   = items.Reports[0].objId;
                        tm.date = DateTime.Now;

                        string file_name = tm.date.ToString("yyMMdd") + "\\";
                        if (tm.temp > AIThermometerAPP.Instance().TempLimit())
                        {
                            file_name = file_name + "nopass\\";
                            AIThermometerAPP.Instance().AddNoPassFace();
                            VoicePlayer.Instance().Play();
                        }
                        else
                        {
                            file_name = file_name + "pass\\";
                            AIThermometerAPP.Instance().AddPassFace();
                        }

                        if (AIThermometerAPP.Instance().CanCapture())
                        {
                            captureHandler?.Invoke(AIThermometerAPP.Instance().CapturePath() + "\\" + DateTime.Now.ToString("yyMMddHHmmssffff") + ".jpeg", CamMode.NORMAL);
                        }

                        Common.CreateDir(image_dir_path + "\\" + file_name);
                        file_name     = file_name + tm.date.ToString("HHmmssffff") + tm.temp.ToString().Replace(".", "_") + ".jpeg";
                        tm.photo_path = image_dir_path + "\\" + file_name;
                        TempWarning.Instance().Push(tm);
                    }
                    else
                    {
                        // 黑体位置错误
                        if (!AIThermometerAPP.Instance().blackcell_pos_error)
                        {
                            AIThermometerAPP.Instance().blackcell_pos_error = true;

                            ewHandler?.Invoke(Application.Current.FindResource("errorText").ToString(), Application.Current.FindResource("error8").ToString());
                            AIThermometerAPP.Instance().ResetBlackCell();
                        }
                    }
                }

                response.ContentType = "text/html;charset=utf-8";
                response.StatusCode  = 200;
                return;

                try
                {
                    using (System.IO.Stream output = response.OutputStream)
                        using (StreamWriter writer = new StreamWriter(output, Encoding.UTF8))
                            writer.WriteLine("接收完成!");
                }
                catch
                {
                }
                response.Close();
            }
        }
Пример #3
0
        private void PlayRecord(string fileName, string relativeName)
        {
            try
            {
                if (RecordInfoItem == null)
                {
                    return;
                }
                int  mediaType    = RecordInfoItem.MediaType;
                bool noPlayScreen = false;
                if (ListUserSettingInfos != null)
                {
                    var setting =
                        ListUserSettingInfos.FirstOrDefault(
                            c => c.ParamID == S3105Consts.USER_PARAM_PLAYSCREEN_NOPLAY);
                    if (setting != null && setting.StringValue == "1")
                    {
                        noPlayScreen = true;
                    }
                }
                bool autoRelative = true;
                if (ListUserSettingInfos != null)
                {
                    var setting =
                        ListUserSettingInfos.FirstOrDefault(
                            c => c.ParamID == S3105Consts.USER_PARAM_AUTORELATIVEPLAY);
                    if (setting != null && setting.StringValue == "0")
                    {
                        autoRelative = false;
                    }
                }
                if (string.IsNullOrEmpty(fileName))
                {
                    CurrentApp.WriteLog("PlayRecord", string.Format("FileName is empty"));
                    return;
                }
                if (string.IsNullOrEmpty(relativeName))
                {
                    CurrentApp.WriteLog("PlayRecord", string.Format("RelativeName is empty"));
                    autoRelative = false;
                }
                string audioUrl = string.Format("{0}://{1}:{2}/{3}/{4}",
                                                CurrentApp.Session.AppServerInfo.SupportHttps ? "https" : "http",
                                                CurrentApp.Session.AppServerInfo.Address,
                                                CurrentApp.Session.AppServerInfo.Port,
                                                ConstValue.TEMP_DIR_MEDIADATA,
                                                fileName);
                string videoPath;
                switch (mediaType)
                {
                case 0:
                    if (noPlayScreen)
                    {
                        VoicePlayer.MediaType = 1;
                        VoicePlayer.AudioUrl  = audioUrl;
                        CurrentApp.WriteLog("PlayRecord", string.Format("AudioUrl:{0}", audioUrl));
                        VoicePlayer.Play();
                    }
                    else
                    {
                        VoicePlayer.MediaType = 3;
                        VoicePlayer.AudioUrl  = audioUrl;
                        CurrentApp.WriteLog("PlayRecord", string.Format("AudioUrl:{0}", audioUrl));
                        videoPath = string.Empty;
                        RecordOperator recordOperator = new RecordOperator();
                        recordOperator.Debug  += (cat, msg) => CurrentApp.WriteLog(cat, msg);
                        recordOperator.Session = CurrentApp.Session;
                        OperationReturn optReturn = recordOperator.DownloadFileToLocal(fileName);
                        if (!optReturn.Result)
                        {
                            ShowRecordOperatorMessage(optReturn);
                            CurrentApp.WriteLog("DownloadToLocal",
                                                string.Format("Fail.\t{0}\t{1}", optReturn.Code, optReturn.Message));
                        }
                        else
                        {
                            videoPath = optReturn.Data.ToString();
                        }
                        VoicePlayer.VideoUrl = videoPath;
                        CurrentApp.WriteLog("PlayRecord", string.Format("VideoPath:{0}", videoPath));
                        VoicePlayer.Play();
                    }
                    break;

                case 1:
                    if (noPlayScreen ||
                        !autoRelative)
                    {
                        VoicePlayer.MediaType = 1;
                        VoicePlayer.AudioUrl  = audioUrl;
                        CurrentApp.WriteLog("PlayRecord", string.Format("AudioUrl:{0}", audioUrl));
                        VoicePlayer.Play();
                    }
                    else
                    {
                        VoicePlayer.MediaType = 3;
                        VoicePlayer.AudioUrl  = audioUrl;
                        CurrentApp.WriteLog("PlayRecord", string.Format("AudioUrl:{0}", audioUrl));
                        videoPath = string.Empty;
                        RecordOperator recordOperator = new RecordOperator();
                        recordOperator.Debug  += (cat, msg) => CurrentApp.WriteLog(cat, msg);
                        recordOperator.Session = CurrentApp.Session;
                        OperationReturn optReturn = recordOperator.DownloadFileToLocal(relativeName);
                        if (!optReturn.Result)
                        {
                            ShowRecordOperatorMessage(optReturn);
                            CurrentApp.WriteLog("DownloadToLocal",
                                                string.Format("Fail.\t{0}\t{1}", optReturn.Code, optReturn.Message));
                        }
                        else
                        {
                            videoPath = optReturn.Data.ToString();
                        }
                        VoicePlayer.VideoUrl = videoPath;
                        CurrentApp.WriteLog("PlayRecord", string.Format("VideoPath:{0}", videoPath));
                        VoicePlayer.Play();
                    }
                    break;

                case 2:
                    if (!noPlayScreen)
                    {
                        VoicePlayer.MediaType = 2;
                        videoPath             = string.Empty;
                        RecordOperator recordOperator = new RecordOperator();
                        recordOperator.Debug  += (cat, msg) => CurrentApp.WriteLog(cat, msg);
                        recordOperator.Session = CurrentApp.Session;
                        OperationReturn optReturn = recordOperator.DownloadFileToLocal(fileName);
                        if (!optReturn.Result)
                        {
                            ShowRecordOperatorMessage(optReturn);
                            CurrentApp.WriteLog("DownloadToLocal",
                                                string.Format("Fail.\t{0}\t{1}", optReturn.Code, optReturn.Message));
                        }
                        else
                        {
                            videoPath = optReturn.Data.ToString();
                        }
                        VoicePlayer.VideoUrl = videoPath;
                        CurrentApp.WriteLog("PlayRecord", string.Format("VideoPath:{0}", videoPath));
                        VoicePlayer.Play();
                    }
                    break;

                default:
                    CurrentApp.WriteLog("PlayRecord", string.Format("MediaType invalid.\t{0}", mediaType));
                    break;
                }
            }
            catch (Exception ex)
            {
                CurrentApp.WriteLog("PlayRecord", string.Format("Fail.\t{0}", ex.Message));
            }
        }
Пример #4
0
 public void Stop()
 {
     try
     { VoicePlayer.Close(); }
     catch { }
 }
Пример #5
0
        private void PlayRecord(string fileName, List <string> listRelativeNames)
        {
            try
            {
                if (RecordInfoItem == null)
                {
                    return;
                }
                RecordInfo recordInfo = RecordInfoItem.RecordInfo;
                if (recordInfo == null)
                {
                    return;
                }
                int mediaType = recordInfo.MediaType;


                #region 自定义参数设置

                bool noPlayScreen = false;
                if (ListUserSettingInfos != null)
                {
                    var setting =
                        ListUserSettingInfos.FirstOrDefault(
                            c => c.ParamID == S3102Consts.USER_PARAM_PLAYSCREEN_NOPLAY);
                    if (setting != null && setting.StringValue == "1")
                    {
                        noPlayScreen = true;
                    }
                }
                bool autoRelative = true;
                if (ListUserSettingInfos != null)
                {
                    var setting =
                        ListUserSettingInfos.FirstOrDefault(
                            c => c.ParamID == S3102Consts.USER_PARAM_AUTORELATIVEPLAY);
                    if (setting != null && setting.StringValue == "0")
                    {
                        autoRelative = false;
                    }
                }

                #endregion


                if (string.IsNullOrEmpty(fileName))
                {
                    CurrentApp.WriteLog("PlayRecord", string.Format("FileName is empty"));
                    return;
                }
                if (listRelativeNames.Count <= 0)
                {
                    CurrentApp.WriteLog("PlayRecord", string.Format("RelativeName is empty"));
                    autoRelative = false;
                }
                VoicePlayer.Session = CurrentApp.Session;
                if (mediaType == 3)
                {
                    #region 艺赛旗录屏播放

                    //艺赛旗录屏播放,需要设置服务器地址和艺赛旗流水号
                    if (noPlayScreen)
                    {
                        return;
                    }
                    CurrentApp.WriteLog("PlayRecord", string.Format("VedioPath:{0}(IsaVedio)", fileName));
                    VoicePlayer.MediaType   = 2;
                    VoicePlayer.IsIsaScreen = true;
                    VoicePlayer.IsaServer   = recordInfo.VoiceIP;
                    VoicePlayer.IsaRefID    = fileName;
                    VoicePlayer.Play();

                    #endregion

                    return;
                }
                string audioUrl = string.Format("{0}://{1}:{2}/{3}/{4}",
                                                CurrentApp.Session.AppServerInfo.SupportHttps ? "https" : "http",
                                                CurrentApp.Session.AppServerInfo.Address,
                                                CurrentApp.Session.AppServerInfo.Port,
                                                ConstValue.TEMP_DIR_MEDIADATA,
                                                fileName);
                string videoPath;
                string relativeName = string.Empty;
                switch (mediaType)
                {
                case 0:
                    if (noPlayScreen)
                    {
                        VoicePlayer.MediaType = 1;
                        VoicePlayer.AudioUrl  = audioUrl;
                        CurrentApp.WriteLog("PlayRecord", string.Format("AudioUrl:{0}", audioUrl));
                        VoicePlayer.Play();
                    }
                    else
                    {
                        #region VCLog 录屏播放

                        VoicePlayer.ListVideoUrls.Clear();
                        VoicePlayer.MediaType = 3;
                        VoicePlayer.AudioUrl  = audioUrl;
                        CurrentApp.WriteLog("PlayRecord", string.Format("AudioUrl:{0}", audioUrl));
                        videoPath = string.Empty;
                        RecordOperator recordOperator = new RecordOperator();
                        recordOperator.Debug  += (cat, msg) => CurrentApp.WriteLog(cat, msg);
                        recordOperator.Session = CurrentApp.Session;
                        OperationReturn optReturn = recordOperator.DownloadFileToLocal(fileName);
                        if (!optReturn.Result)
                        {
                            ShowRecordOperatorMessage(optReturn);
                            CurrentApp.WriteLog("DownloadToLocal",
                                                string.Format("Fail.\t{0}\t{1}", optReturn.Code, optReturn.Message));
                        }
                        else
                        {
                            videoPath = optReturn.Data.ToString();
                        }
                        VoicePlayer.IsIsaScreen = false;
                        VoicePlayer.ListVideoUrls.Add(videoPath);
                        CurrentApp.WriteLog("PlayRecord", string.Format("VideoPath:{0}", videoPath));
                        VoicePlayer.Play();

                        #endregion
                    }
                    break;

                case 1:
                    if (noPlayScreen ||
                        !autoRelative)
                    {
                        VoicePlayer.MediaType = 1;
                        VoicePlayer.AudioUrl  = audioUrl;
                        CurrentApp.WriteLog("PlayRecord", string.Format("AudioUrl:{0}", audioUrl));
                        VoicePlayer.Play();
                    }
                    else
                    {
                        VoicePlayer.ListVideoUrls.Clear();
                        VoicePlayer.MediaType = 3;
                        VoicePlayer.AudioUrl  = audioUrl;
                        CurrentApp.WriteLog("PlayRecord", string.Format("AudioUrl:{0}", audioUrl));
                        videoPath = string.Empty;

                        var relativeRecords = RecordInfoItem.ListRelativeInfos;
                        for (int i = 0; i < relativeRecords.Count; i++)
                        {
                            var relativeRecord = relativeRecords[i];

                            if (relativeRecord.MediaType == 3)
                            {
                                #region 艺赛旗录屏播放

                                if (listRelativeNames.Count > i)
                                {
                                    relativeName = listRelativeNames[i];
                                }
                                CurrentApp.WriteLog("PlayRecord",
                                                    string.Format("VedioPath:{0}(IsaVedio)", relativeName));
                                VoicePlayer.IsIsaScreen = true;
                                VoicePlayer.IsaServer   = relativeRecord.VoiceIP;
                                VoicePlayer.IsaRefID    = relativeName;

                                #endregion
                            }
                            else
                            {
                                #region VCLog 录屏播发

                                if (listRelativeNames.Count > i)
                                {
                                    relativeName = listRelativeNames[i];
                                }
                                if (!string.IsNullOrEmpty(relativeName))
                                {
                                    RecordOperator recordOperator = new RecordOperator();
                                    recordOperator.Debug  += (cat, msg) => CurrentApp.WriteLog(cat, msg);
                                    recordOperator.Session = CurrentApp.Session;
                                    OperationReturn optReturn = recordOperator.DownloadFileToLocal(relativeName);
                                    if (!optReturn.Result)
                                    {
                                        ShowRecordOperatorMessage(optReturn);
                                        CurrentApp.WriteLog("DownloadToLocal",
                                                            string.Format("Fail.\t{0}\t{1}", optReturn.Code, optReturn.Message));
                                    }
                                    else
                                    {
                                        videoPath = optReturn.Data.ToString();
                                    }
                                    VoicePlayer.IsIsaScreen = false;
                                    VoicePlayer.ListVideoUrls.Add(videoPath);
                                    CurrentApp.WriteLog("PlayRecord", string.Format("VideoPath:{0}", videoPath));
                                }

                                #endregion
                            }
                        }
                        VoicePlayer.Play();
                    }
                    break;

                case 2:
                    if (!noPlayScreen)
                    {
                        #region VCLog 录屏播放

                        VoicePlayer.MediaType = 2;
                        videoPath             = string.Empty;
                        RecordOperator recordOperator = new RecordOperator();
                        recordOperator.Debug  += (cat, msg) => CurrentApp.WriteLog(cat, msg);
                        recordOperator.Session = CurrentApp.Session;
                        OperationReturn optReturn = recordOperator.DownloadFileToLocal(fileName);
                        if (!optReturn.Result)
                        {
                            ShowRecordOperatorMessage(optReturn);
                            CurrentApp.WriteLog("DownloadToLocal",
                                                string.Format("Fail.\t{0}\t{1}", optReturn.Code, optReturn.Message));
                        }
                        else
                        {
                            videoPath = optReturn.Data.ToString();
                        }
                        VoicePlayer.IsIsaScreen = false;
                        VoicePlayer.ListVideoUrls.Add(videoPath);
                        CurrentApp.WriteLog("PlayRecord", string.Format("VideoPath:{0}", videoPath));
                        VoicePlayer.Play();

                        #endregion
                    }
                    break;

                default:
                    CurrentApp.WriteLog("PlayRecord", string.Format("MediaType invalid.\t{0}", mediaType));
                    break;
                }
            }
            catch (Exception ex)
            {
                CurrentApp.WriteLog("PlayRecord", string.Format("Fail.\t{0}", ex.Message));
            }
        }
Пример #6
0
        private static void HandlePackets()
        {
            ByteBuffer buffe;
            uint       b0 = 0, b1 = 0; //byte
            string     last_p = "";    //, last_p2 = "";

            while (Globals.gamedata.GetCount_DataToBot() > 0)
            {
                try
                {
                    //buffe = null;

                    Globals.GameReadQueueLock.EnterWriteLock();
                    try
                    {
                        buffe = (ByteBuffer)Globals.gamedata.gamereadqueue.Dequeue();
                    }
                    catch (System.Exception e)
                    {
                        Globals.l2net_home.Add_Error("Packet Error Reading Queue : " + e.Message);
                        break;
                    }
                    finally
                    {
                        Globals.GameReadQueueLock.ExitWriteLock();
                    }

                    //buffe contains unencoded data
                    b0 = buffe.ReadByte();
                    //last_p2 = last_p;
                    last_p = b0.ToString("X2");

                    //do we have an event for this packet?
                    if (ScriptEngine.ServerPacketsContainsKey((int)b0))
                    {
                        ScriptEvent sc_ev = new ScriptEvent();
                        sc_ev.Type  = EventType.ServerPacket;
                        sc_ev.Type2 = (int)b0;
                        sc_ev.Variables.Add(new ScriptVariable(buffe, "PACKET", Var_Types.BYTEBUFFER, Var_State.PUBLIC));
                        sc_ev.Variables.Add(new ScriptVariable(System.DateTime.Now.Ticks, "TIMESTAMP", Var_Types.INT, Var_State.PUBLIC));
                        ScriptEngine.SendToEventQueue(sc_ev);
                    }

                    switch ((PServer)b0)
                    {
                    case PServer.MTL:
                        ClientPackets.MoveToLocation(buffe);
                        break;

                    case PServer.NS:
                        ClientPackets.NPCSay(buffe);
                        break;

                    case PServer.CI:
                        ClientPackets.CharInfo(buffe);
                        break;

                    case PServer.RelationChanged:
                        ClientPackets.RelationChanged(buffe);
                        break;

                    case PServer.UI:
                        ClientPackets.UserInfo(buffe);
                        break;

                    case PServer.Attack:
                        ClientPackets.Attack_Packet(buffe);
                        break;

                    case PServer.Die:
                        ClientPackets.Die_Packet(buffe);
                        break;

                    case PServer.Revive:
                        ClientPackets.Revive(buffe.ReadUInt32());
                        break;

                    case PServer.ChangeMoveType:
                        ClientPackets.ChangeMoveType(buffe);
                        break;

                    case PServer.ChangeWaitType:
                        ClientPackets.ChangeWaitType(buffe);
                        break;

                    case PServer.AttackDeadTarget:
                        ClientPackets.AttackCanceled_Packet(buffe);
                        break;

                    case PServer.SpawnItem:    //add item (to ground)
                        ClientPackets.AddItem(buffe);
                        break;

                    case PServer.DropItem:
                        ClientPackets.ItemDrop(buffe);
                        break;

                    case PServer.GetItem:
                        ClientPackets.Get_Item(buffe);
                        break;

                    case PServer.StatusUpdate:
                        ClientPackets.StatusUpdate(buffe);
                        break;

                    case PServer.NpcHtmlMessage:
                        NPC_Chat.Npc_Chat(buffe);
                        break;

                    case PServer.BuyList:     //Buylist
                        ClientPackets.BuyList(buffe);
                        break;

                    case PServer.DeleteObject:
                        ClientPackets.DeleteItem(buffe);
                        break;

                    case PServer.CharacterSelectionInfo:
                        Globals.login_window.CharList(buffe);
                        //this is the list of chars
                        //not handled by ig

                        //need to handle this packet here and not on the oog login
                        //on ig, the list will just show up, then disappear on 0x15 CharSelected so its all good
                        break;

                    case PServer.CharSelected:
                        ClientPackets.CharSelected(buffe);
                        break;

                    case PServer.NpcInfo:
                        ClientPackets.NPCInfo(buffe);
                        break;

                    case PServer.ServerObjectInfo:
                        ClientPackets.ServerObjectInfo(buffe);
                        break;

                    case PServer.StaticObject:
                        ClientPackets.StaticObjectInfo(buffe);
                        break;

                    case PServer.ItemList:
                        ClientPackets.ItemList(buffe);
                        break;

                    case PServer.SunRise:
                        Globals.l2net_home.Add_Text("[The sun has just risen]", Globals.Gray, TextType.SYSTEM);
                        break;

                    case PServer.SunSet:
                        Globals.l2net_home.Add_Text("[The sun has just set]", Globals.Gray, TextType.SYSTEM);
                        break;

                    case PServer.TradeStart:
                        break;

                    case PServer.TradeDone:
                        try
                        {
                            Globals.tradewindow.Close();
                        }
                        catch
                        {
                            //trade window is not opened.
                        }
                        break;

                    case PServer.ActionFailed:
                        //l2j is ghei and throws this packet at us a lot
                        // (Freya) Retail also causes this packet to be sent before any Attack or skill use that requires CTRL
                        break;

                    case PServer.InventoryUpdate:
                        AddInfo.Inventory_Update(buffe);
                        break;

                    case PServer.TeleportToLocation:
                        ClientPackets.Teleport(buffe);
                        break;

                    case PServer.MyTargetSelected:
                        ClientPackets.MyTargetSelected(buffe);
                        break;

                    case PServer.TargetSelected:
                        ClientPackets.TargetSelected(buffe, true);
                        break;

                    case PServer.TargetUnselected:
                        ClientPackets.TargetSelected(buffe, false);
                        break;

                    case PServer.AutoAttackStart:
                        //4bytes target id
                        ClientPackets.EnterCombat(buffe, true);
                        break;

                    case PServer.AutoAttackStop:
                        //4bytes target id
                        ClientPackets.EnterCombat(buffe, false);
                        break;

                    case PServer.SocialAction:
                        ClientPackets.Social_Action(buffe);
                        break;

                    case PServer.AskJoinPledge:
                        ClientPackets.RequestJoinClan(buffe);
                        break;

                    case PServer.AskJoinParty:
                        ClientPackets.RequestJoinParty(buffe);
                        break;

                    case PServer.TradeRequest:
                        ClientPackets.TradeRequest(buffe);
                        break;

                    case PServer.ShortCutRegister:
                        ClientPackets.Load_Shortcut(buffe);
                        break;

                    case PServer.ShortCutInit:
                        ClientPackets.Load_Shortcuts(buffe);
                        break;

                    case PServer.StopMove:
                        ClientPackets.StopMove(buffe);
                        break;

                    case PServer.MagicSkillUser:
                        ClientPackets.MagicSkillUser(buffe);
                        break;

                    case PServer.MagicSkillCancelId:
                        //4bytes - ID of caster that canceled
                        ClientPackets.MagicSkillCancel(buffe);
                        break;

                    case PServer.CreatureSay:
                        ClientPackets.OtherMessage(buffe);
                        break;

                    case PServer.PartySmallWindowAll:
                        if (Globals.gamedata.yesno_state == 1)
                        {
                            Globals.l2net_home.Hide_YesNo();
                        }

                        ClientPackets.Load_PartyInfo(buffe);
                        AddInfo.Set_PartyVisible();
                        AddInfo.Set_PartyInfo();
                        break;

                    case PServer.PartySmallWindowAdd:
                        if (Globals.gamedata.yesno_state == 1)
                        {
                            Globals.l2net_home.Hide_YesNo();
                        }

                        ClientPackets.Add_PartyInfo(buffe);
                        AddInfo.Set_PartyVisible();
                        AddInfo.Set_PartyInfo();
                        break;

                    case PServer.PartySmallWindowDeleteAll:
                        ClientPackets.Delete_Party();
                        AddInfo.Set_PartyVisible();
                        AddInfo.Set_PartyInfo();
                        break;

                    case PServer.PartySmallWindowDelete:
                        ClientPackets.Delete_PartyInfo(buffe);
                        AddInfo.Set_PartyVisible();
                        AddInfo.Set_PartyInfo();
                        break;

                    case PServer.PartySmallWindowUpdate:
                        ClientPackets.Update_PartyInfo(buffe);
                        AddInfo.Set_PartyInfo();
                        break;

                    case PServer.PledgeShowMemberListAll:
                        ClientPackets.PledgeShowMemberListAll(buffe);
                        break;

                    case PServer.PledgeShowMemberListUpdate:
                        ClientPackets.PledgeShowMemberListUpdate(buffe);
                        break;

                    case PServer.PledgeShowMemberListAdd:
                        //changes the clan status of one char... need to update/add as needed
                        ClientPackets.PledgeShowMemberListAdd(buffe);
                        break;

                    case PServer.PledgeShowMemberListDelete:
                        ClientPackets.PledgeShowMemberListDelete(buffe);
                        break;

                    case PServer.PledgeShowInfoUpdate:
                        ClientPackets.PledgeShowInfoUpdate(buffe);
                        break;

                    case PServer.PledgeShowMemberListDeleteAll:
                        ClientPackets.PledgeShowMemberListDeleteAll(buffe);
                        break;

                    case PServer.AbnormalStatusUpdate:
                        ClientPackets.LoadBuffList(buffe);
                        break;

                    case PServer.PartySpelled:
                        ClientPackets.PartySpelled(buffe);
                        break;

                    case PServer.ShortBuffStatusUpdate:
                        ClientPackets.UpdateBuff(buffe);
                        break;

                    case PServer.SkillList:
                        ClientPackets.SkillList(buffe);
                        break;

                    case PServer.SkillCoolTime:
                        ClientPackets.SkillCoolTime(buffe);
                        break;

                    case PServer.RestartResponse:
                        ClientPackets.RestartResponse(buffe);
                        break;

                    case PServer.MoveToPawn:
                        ClientPackets.MoveToPawn(buffe);
                        break;

                    case PServer.ValidateLocation:
                        ClientPackets.Validate_Location(buffe, false);
                        //int id
                        //int rotation
                        break;

                    case PServer.SystemMessage:
                        ClientPackets.SystemMessage(buffe);
                        break;

                    case PServer.PledgeCrest:
                        ClientPackets.PledgeCrest(buffe);
                        break;

                    case PServer.PledgeInfo:
                        ClientPackets.PledgeInfo(buffe);
                        break;

                    case PServer.ValidateLocationInVehicle:
                        ClientPackets.Validate_Location(buffe, true);
                        break;

                    case PServer.MagicSkillLaunched:
                        ClientPackets.MagicSkillLaunched(buffe);
                        //Validate_Location(buffe,false);
                        break;

                    case PServer.FriendAddRequest:
                        ClientPackets.RequestJoinFriend(buffe);
                        break;

                    case PServer.LogOutOk:
                        //ok time to end
                        Globals.gamedata.running = false;
                        Globals.l2net_home.KillEverything();
                        break;

                    case PServer.PartyMemberPosition:
                        ClientPackets.Set_PartyLocations(buffe);
                        break;

                    case PServer.AskJoinAlly:
                        ClientPackets.RequestJoinAlly(buffe);
                        break;

                    case PServer.AllianceCrest:
                        ClientPackets.AllyCrest(buffe);
                        break;

                    case PServer.Earthquake:
                        //x,y,z,power,duration
                        Globals.l2net_home.Add_Text("[Earthquake at X:" + buffe.ReadInt32().ToString() + " Y:" + buffe.ReadInt32().ToString() + " Z:" + buffe.ReadInt32().ToString() + " Of Power:" + buffe.ReadInt32().ToString() + " For:" + buffe.ReadInt32().ToString() + "]", Globals.Gray, TextType.SYSTEM);
                        break;

                    case PServer.PledgeStatusChanged:
                        ClientPackets.ClanStatusChanged(buffe);
                        break;

                    case PServer.Dice:
                        ClientPackets.Dice(buffe);
                        break;

                    case PServer.HennaInfo:
                        ClientPackets.Set_Henna_Info(buffe);
                        break;

                    case PServer.ConfirmDlg:
                        ClientPackets.RequestReply(buffe);
                        break;

                    case PServer.SSQInfo:    //SignSky:
                        ClientPackets.SevenSignSky(buffe);
                        break;

                    case PServer.GameGuardQuery:
                        ClientPackets.GameGuardReply(buffe);
                        break;

                    case PServer.L2FriendSay:
                        ClientPackets.Get_Friend_Message(buffe);
                        break;

                    case PServer.EtcStatusUpdate:
                        ClientPackets.EtcStatusUpdate(buffe);
                        break;

                    case PServer.PetStatusShow:
                        ClientPackets.PetStatusShow(buffe);
                        break;

                    case PServer.PetInfo:
                        ClientPackets.PetInfo(buffe);
                        break;

                    case PServer.PetStatusUpdate:
                        ClientPackets.PetStatusUpdate(buffe);
                        break;

                    case PServer.PetDelete:
                        ClientPackets.PetDelete(buffe);
                        break;

                    case PServer.PetItemList:
                        ClientPackets.PetItemList(buffe);
                        if (Globals.petwindow != null)
                        {
                            Globals.petwindow.fill_pet_inventory();
                        }
                        break;

                    case PServer.PetInventoryUpdate:
                        AddInfo.PetInventory_Update(buffe);
                        if (Globals.petwindow != null)
                        {
                            Globals.petwindow.fill_pet_inventory();
                        }
                        break;

                    case PServer.NetPing:
                        ClientPackets.NetPing(buffe);
                        break;



                    case PServer.EXPacket:
                        b1 = buffe.ReadUInt16();
                        //buffe.ReadByte();

                        last_p = last_p + " " + b1.ToString("X2");

                        //do we have an event for this packet?
                        if (ScriptEngine.ServerPacketsEXContainsKey((int)b1))
                        {
                            ScriptEvent sc_ev = new ScriptEvent();
                            sc_ev.Type  = EventType.ServerPacketEX;
                            sc_ev.Type2 = (int)b1;
                            sc_ev.Variables.Add(new ScriptVariable(buffe, "PACKET", Var_Types.BYTEBUFFER, Var_State.PUBLIC));
                            sc_ev.Variables.Add(new ScriptVariable(System.DateTime.Now.Ticks, "TIMESTAMP", Var_Types.INT, Var_State.PUBLIC));
                            ScriptEngine.SendToEventQueue(sc_ev);
                        }
                        //Globals.l2net_home.Add_Text(last_p);
                        switch ((PServerEX)b1)
                        {
                        /*case PServerEX.ExPledgeCrestLarge:
                         *  //https://www.l2jserver.com/trac/browser/trunk/L2_GameServer_It/java/net/sf/l2j/gameserver/serverpackets/ExPledgeCrestLarge.java
                         *  break;*/
                        case PServerEX.ExMailArrived:
                            Globals.l2net_home.Add_Text("[Mail has arrived]");
                            VoicePlayer.PlaySound(8);
                            break;

                        case PServerEX.ExSetCompassZoneCode:
                            ClientPackets.ExSetCompassZoneCode(buffe);
                            break;

                        case PServerEX.ExShowScreenMessage:
                            ClientPackets.ExShowScreenMessage(buffe);
                            break;

                        case PServerEX.ExQuestHTML:
                            if (Globals.gamedata.Chron >= Chronicle.CT2_3)
                            {
                                NPC_Chat.Npc_Chat(buffe);
                            }
                            break;

                        case PServerEX.ExSendUIEventPacket:
                            if (Globals.gamedata.Chron >= Chronicle.CT3_2)
                            {
                                NPC_Chat.Npc_Chat(buffe);
                            }
                            break;

                        case PServerEX.ExQuestItemList:
                            if (Globals.gamedata.Chron >= Chronicle.CT2_5)
                            {
                                ClientPackets.ExQuestItemList(buffe);
                            }
                            break;

                        case PServerEX.ExVitalityUpdate:
                            if (Globals.gamedata.Chron >= Chronicle.CT2_1)
                            {
                                ClientPackets.ExVitalityUpdate(buffe);
                            }
                            break;

                        case PServerEX.ExShowReceivedPostList:
                            ClientPackets.Load_ReceivedMails(buffe);
                            break;

                        case PServerEX.ExShowSecurityPinWindow:
                            Globals.gamedata.SecurityPinWindow = true;
                            if ((!Globals.OOG) && (!System.String.IsNullOrEmpty(Globals.SecurityPin)) && (!Globals.gamedata.SecurityPinOldClient))
                            {
                                System.Threading.Thread.Sleep(3000);
                                ServerPackets.SecurityPin();
                                Globals.gamedata.SecurityPinSent = true;
                            }
                            break;

                        case PServerEX.ExSecurityPinCorrect:
                            Globals.gamedata.SecurityPinOk = true;
                            break;

                        case PServerEX.ExAcquireSkillInfo:
                            ClientPackets.ExAcquireSkillInfo(buffe);
                            break;

                        case PServerEX.ExNewSkillToLearnByLevelup:
                            //Glory days
                            ClientPackets.ExAcquireSkillInfo(buffe);
                            break;

                        case PServerEX.ExtargetBuffs:
                            ClientPackets.Extargetbuffs(buffe);
                            break;

                        case PServerEX.ExPartyPetWindowAdd:
                            ClientPackets.ExPartyPetWindowAdd(buffe);
                            break;

                        case PServerEX.ExPartyPetWindowDelete:
                            ClientPackets.ExPartyPetWindowDelete(buffe);
                            break;

                        case PServerEX.ExNpcInfo:
                            ClientPackets.ExNPCInfo(buffe);
                            break;

                        case PServerEX.ExUserinfoItems:
                            ClientPackets.ExUserInfoItems(buffe);
                            break;

                        case PServerEX.ExUserinfoStats:
                            ClientPackets.ExUserInfoStats(buffe);
                            break;

                        case PServerEX.ExUserInfo:
                            ClientPackets.EXUserInfo(buffe);
                            break;
                        }
                        break;
                    }//end of switch on packet type
                }
                catch (System.Exception e)
                {
                    //Globals.l2net_home.Add_Error("Packet Error: " + last_p + " Previous Packet: " + last_p2 + " : " + e.Message);
                    Globals.l2net_home.Add_Error("Packet Error: " + last_p + " :: " + e.Message);
                }
            } //end of loop to handle queue data
        }     //end of HandlePackets