public void DoHandle(byte[] data)
    {
        BaseResponseData baseResponseData = Utils.ToObjectFromBytes <BaseResponseData>(data);

        ListRoomsPanel listRoomsPanel = HGL_WindowManager.I.GetWindow("ListRoomsPanel").GetComponent <ListRoomsPanel>();

        listRoomsPanel.Init(Utils.ToObjectFromBytes <List <Room> >((byte[])baseResponseData.GetValue("Rooms")));

        HGL_WindowManager.I.OpenWindow(null, null, "ListRoomsPanel", false, true);

        Debug.Log(string.Format("Response, request type: {0}, result: {1}", baseResponseData.Request, baseResponseData.Result));
    }
Exemplo n.º 2
0
    private void HandleOperation(byte[] data)
    {
        RequestTypes code = (RequestTypes)data [0];

        switch (code)
        {
        case RequestTypes.Login:
            if (((RequestResult)data [1]) == RequestResult.Ok)
            {
                Debug.Log("Success login");
            }
            else
            {
                Debug.Log("Login error");
            }
            break;

        case RequestTypes.SendMessage:
            Debug.Log(data.Length);

            if (data.Length == 2)
            {
            }
            else
            {
                Debug.Log(Encoding.UTF8.GetString(data, 1, data.Length - 1));
                messages.Enqueue(new Message(MessageLevel.UserMessage, Encoding.UTF8.GetString(data, 1, data.Length - 1)));
            }
            break;

        case RequestTypes.EnterInRoom:
            if (((RequestResult)data [1]) == RequestResult.Ok)
            {
                string nickname = Encoding.UTF8.GetString(data, 2, data.Length - 2);

                if (nickname == this.client.Nickname)
                {
                    Debug.Log("Entered in room");
                }
                else
                {
                    messages.Enqueue(new Message(MessageLevel.Info, string.Format("{0} was entered", nickname)));
                }
            }
            else
            {
                Debug.Log(((RequestResult)data [1]).ToString());
            }
            break;

        case RequestTypes.CreateRoom:
            if (((RequestResult)data [1]) == RequestResult.Ok)
            {
                Debug.Log("Created room");
            }
            else
            {
                Debug.Log(((RequestResult)data [1]).ToString());
            }
            break;

        case RequestTypes.GetListRooms:
            if (((RequestResult)data [1]) == RequestResult.Ok)
            {
                List <Room> rooms = null;
                using (MemoryStream ms = new MemoryStream(Utils.SubArray <byte> (data, 2, data.Length - 2))) {
                    IFormatter br = new BinaryFormatter();
                    rooms = (br.Deserialize(ms) as List <Room>);
                }

                UnityThreadHelper.Dispatcher.Dispatch(() => {
                    ListRoomsPanel listRoomsPanel = HGL_WindowManager.I.GetWindow("ListRoomsPanel").GetComponent <ListRoomsPanel> ();
                    listRoomsPanel.Init(rooms);

                    HGL_WindowManager.I.OpenWindow(null, null, "ListRoomsPanel", false, true);
                });
            }
            else
            {
                Debug.Log(((RequestResult)data [1]).ToString());
            }
            break;

        default:
            Debug.Log("Unknow operation");
            break;
        }
    }