public void P_User_Exit_Room(ARWObject obj, SpecialRequestParam specialReqParam)
        {
            if (ARWServer.instance == null)
            {
                return;
            }

            ARWRoom currentRoom = ARWRoomManager.instance.allRooms.Where(a => a.id == specialReqParam.GetInt("room_id")).FirstOrDefault();

            if (currentRoom == null)
            {
                return;
            }

            int     userId     = specialReqParam.GetInt("user_id");
            ARWUser userLeaved = currentRoom.userList.Where(a => a.userId == userId).FirstOrDefault();

            if (userLeaved == null)
            {
                return;
            }

            currentRoom.RemoveUser(userLeaved);

            if (ARWEvents.USER_EXIT_ROOM.handler == null)
            {
                return;
            }

            ARWEvents.USER_EXIT_ROOM.handler(obj, userLeaved);
        }
        public void P_User_Enter_Room(ARWObject obj, SpecialRequestParam specialReqParam)
        {
            if (ARWServer.instance == null)
            {
                return;
            }

            string  userProperties = specialReqParam.GetString("user_properties");
            ARWUser newUser        = ARWUserManager.instance.CreateUser(new JSONObject(userProperties));

            ARWRoom currentRoom = ARWRoomManager.instance.allRooms.Where(a => a.id == specialReqParam.GetInt("room_id")).FirstOrDefault();

            if (currentRoom == null)
            {
                return;
            }
            currentRoom.AddUserToRoom(newUser);

            if (ARWEvents.USER_ENTER_ROOM.handler == null)
            {
                return;
            }

            ARWEvents.USER_ENTER_ROOM.handler(obj, newUser);
        }