Пример #1
0
        public MainMessage HandleMessage(MainMessage msg)
        {
            _log.Debug("In HandleMessage method.");
            RoomMsg roomMsg = msg.RoomMsg;

            switch (roomMsg.MessageTypeCase)
            {
            case RoomMsg.MessageTypeOneofCase.RoomCreate:
                return(RoomCreate(msg.MsgId, roomMsg.RoomCreate));

            case RoomMsg.MessageTypeOneofCase.RoomEnter:
                return(RoomEnter(msg.MsgId, msg.ClientId, roomMsg.RoomEnter));

            case RoomMsg.MessageTypeOneofCase.RoomExit:
                return(RoomExit(msg.MsgId, msg.ClientId, roomMsg.RoomExit));

            case RoomMsg.MessageTypeOneofCase.RoomQuery:
                switch (roomMsg.RoomQuery.RoomQueryCase)
                {
                case RoomQuery.RoomQueryOneofCase.RoomDetailId:
                    return(RoomDetail(roomMsg.RoomQuery.RoomDetailId));

                case RoomQuery.RoomQueryOneofCase.RoomListQuery:
                    return(RoomList(roomMsg.RoomQuery.RoomListQuery));

                default:
                    return(ISystemService.CreateErrorMessage(msg.MsgId, 0, 0, "Invalid Operation."));
                }

            default:
                return(ISystemService.CreateErrorMessage(msg.MsgId, 0, 0, "Invalid Operation."));
            }
        }
Пример #2
0
        private int SendRoomMsg(RoomMsg rMsg)
        {
            UIDHeader <RoomMsgMapper <Msg> > header = new UIDHeader <RoomMsgMapper <Msg> > (rMsg);

            header.ID = curUserID;
            return(Send <NullMsg> (new NullMsg(), header));
        }
Пример #3
0
    public async Task <RoomMsg> SystemSendMessage(string message)
    {
        if (main_ch == null || client == null)
        {
            throw new System.Exception("CONNECT_CLIENT_IS_NULL");
        }
        if (CurrentRoom == null)
        {
            throw new System.Exception("NO_CURRENT_ROOM");
        }
        try {
            var msg = new RoomMsg {
                Key     = CurrentRoom.Key,
                FromId  = CurrentUser.Id,
                FmName  = CurrentUser.Name,
                Message = message,
                MsgType = RoomMsg.Types.MsgType.SystemInfo,
            };
            var task = await client.SendMessageAsync(msg);

            return(msg);
        } catch (RpcException) {
            throw;
        }
    }
Пример #4
0
    /// <summary>
    /// 退出房间
    /// </summary>
    /// <param name="roomNum">房间号</param>
    public static void ExitRoom(string roomNum, int peopleId)
    {
        RoomMsg roomMsg = new RoomMsg
        {
            roomNum = roomNum,
            otherId = peopleId,
        };

        byte[] byt = Incode.IncodeSecondaryCommand(TYPE, (int)SecondCommands.EXITROOM, DataDo.Object2Json(roomMsg));
        NetStart.SendContend(byt);
    }
Пример #5
0
    /// <summary>
    /// 加入房间
    /// </summary>
    /// <param name="roomNum">房间号</param>
    public static void JoinRoom(string roomNum, PersonalInfo my)
    {
        RoomMsg roomMsg = new RoomMsg
        {
            roomNum = roomNum,
            my      = my,
        };

        byte[] byt = Incode.IncodeSecondaryCommand(TYPE, (int)SecondCommands.JOINROOM, DataDo.Object2Json(roomMsg));
        NetStart.SendContend(byt);
    }
Пример #6
0
        public MainMessage HandleMessage(MainMessage msg)
        {
            RoomMsg roomMsg  = msg.RoomMsg;
            int     serverId = 0;

            switch (roomMsg.MessageTypeCase)
            {
            case RoomMsg.MessageTypeOneofCase.RoomCreate:
                return(RoomCreate(msg.MsgId, msg.ClientId, msg));

            case RoomMsg.MessageTypeOneofCase.RoomDetail:
                return(ISystemService.CreateErrorMessage(msg.MsgId, 0, 0, "Invalid message."));

            case RoomMsg.MessageTypeOneofCase.RoomEnter:
                serverId = _roomsPerServer.Where(x => x.Value.Find(y => y.Id == msg.RoomMsg.RoomEnter.RoomId) != null).FirstOrDefault().Key;
                if (serverId == 0)
                {
                    return(ISystemService.CreateErrorMessage(msg.MsgId, 0, 0, "Room with this ID could not be found."));
                }
                return(ISystemService.CreateRedirectMessage(msg, _api.Services.System.GetAddressById((uint)serverId)));

            case RoomMsg.MessageTypeOneofCase.RoomExit:
                serverId = _roomsPerServer.Where(x => x.Value.Find(y => y.Id == msg.RoomMsg.RoomExit.RoomId) != null).FirstOrDefault().Key;
                if (serverId == 0)
                {
                    return(ISystemService.CreateErrorMessage(msg.MsgId, 0, 0, "Room with this ID could not be found."));
                }
                return(ISystemService.CreateRedirectMessage(msg, _api.Services.System.GetAddressById((uint)serverId)));

            case RoomMsg.MessageTypeOneofCase.RoomList:
                if (msg.SenderIdCase == MainMessage.SenderIdOneofCase.ClientId)
                {
                    return(ISystemService.CreateErrorMessage(msg.MsgId, 0, 0, "Invalid message."));
                }
                return(RoomListServer(msg.MsgId, (int)msg.ServerId, msg.RoomMsg.RoomList));

            case RoomMsg.MessageTypeOneofCase.RoomQuery:
                switch (msg.RoomMsg.RoomQuery.RoomQueryCase)
                {
                case RoomQuery.RoomQueryOneofCase.RoomDetailId:
                    return(RoomDetail(msg.MsgId, msg.RoomMsg.RoomQuery.RoomDetailId));

                case RoomQuery.RoomQueryOneofCase.RoomListQuery:
                    return(RoomListClient(msg.RoomMsg.RoomQuery.RoomListQuery));

                default:
                    return(ISystemService.CreateErrorMessage(msg.MsgId, 0, 0, "Invalid message."));
                }

            default:
                return(ISystemService.CreateErrorMessage(msg.MsgId, 0, 0, "Invalid message."));
            }
        }
Пример #7
0
    public void GenMessage(RoomMsg msg)
    {
        GameObject title = (GameObject)Instantiate(NamePref, ChatPanel.transform);

        title.GetComponent <Text>().text =
            msg.FmName +
            "\t< id : " + msg.FromId.ToString() + ">";

        if (msg.MsgType == RoomMsg.Types.MsgType.UserText)
        {
            GameObject info = (GameObject)Instantiate(DespPref, ChatPanel.transform);
            info.GetComponent <Text>().text = msg.Message;
        }
        return;
    }
Пример #8
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (MsgId != 0UL)
            {
                hash ^= MsgId.GetHashCode();
            }
            if (senderIdCase_ == SenderIdOneofCase.ServerId)
            {
                hash ^= ServerId.GetHashCode();
            }
            if (senderIdCase_ == SenderIdOneofCase.ClientId)
            {
                hash ^= ClientId.GetHashCode();
            }
            if (messageTypeCase_ == MessageTypeOneofCase.SystemMsg)
            {
                hash ^= SystemMsg.GetHashCode();
            }
            if (messageTypeCase_ == MessageTypeOneofCase.TickMsg)
            {
                hash ^= TickMsg.GetHashCode();
            }
            if (messageTypeCase_ == MessageTypeOneofCase.EventMsg)
            {
                hash ^= EventMsg.GetHashCode();
            }
            if (messageTypeCase_ == MessageTypeOneofCase.RoomMsg)
            {
                hash ^= RoomMsg.GetHashCode();
            }
            if (messageTypeCase_ == MessageTypeOneofCase.UserMngMsg)
            {
                hash ^= UserMngMsg.GetHashCode();
            }
            if (messageTypeCase_ == MessageTypeOneofCase.AppMsg)
            {
                hash ^= AppMsg.GetHashCode();
            }
            hash ^= (int)senderIdCase_;
            hash ^= (int)messageTypeCase_;
            return(hash);
        }
Пример #9
0
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();
        ChatPanelCtl d = (ChatPanelCtl)target;

        EditorGUILayout.Separator();
        EditorGUILayout.LabelField("Test Block");
        test_message = EditorGUILayout.TextField("Test text", test_message);

        if (GUILayout.Button("Test for Generate Text message"))
        {
            var msg = new RoomMsg {
                FromId  = "test_id",
                Message = test_message,
                MsgType = RoomMsg.Types.MsgType.UserText,
            };
            d.GenMessage(msg);
        }
    }
Пример #10
0
    public void OnConnecterUpdate_CardChange(RoomMsg msg)
    {
        string js_str = msg.Message.Replace("CardChange::", "");

        Debug.Log(js_str);

        RoomUpdateCardReq msg_blk = RoomUpdateCardReq.Parser.ParseJson(js_str);

        Debug.Log($"{msg_blk.CharcardId}, {msg_blk.CardsetId}, {msg_blk.Level}");

        var Dataset = this.CardObjectDic[$"cc_{msg_blk.CharcardId.ToString()}"];

        Debug.Log($"Dataset.name{Dataset.name.jp}");

        var tmpAssetPack = this.CardAssetPack[$"cc_{msg_blk.CharcardId.ToString()}_{msg_blk.CardsetId.ToString()}"];

        if (
            (msg_blk.Side == RoomUpdateCardReq.Types.PlayerSide.Host && !this.Connecter.IsHost) ||
            this.Connecter.IsWatcher
            )
        {
            this.HostCard.CC_id = Dataset.id;
            this.HostCard.level = tmpAssetPack.level;
            this.HostCardObj    = Dataset;
            this.HostCardAB     = tmpAssetPack;
            this.isHostUpdated  = true;
        }
        else if (
            (msg_blk.Side == RoomUpdateCardReq.Types.PlayerSide.Dueler && this.Connecter.IsHost) ||
            this.Connecter.IsWatcher
            )
        {
            this.DuelerCard.CC_id = Dataset.id;
            this.DuelerCard.level = tmpAssetPack.level;
            this.DuelCardObj      = Dataset;
            this.DuelCardAB       = tmpAssetPack;
            this.isDuelUpdated    = true;
        }
    }
Пример #11
0
 public RoomMsgMapper(RoomMsg data)
 {
     this.data = Convert.ToInt32(data);
     //bTransAction = true;
 }