Esempio n. 1
0
        public void Process(Context context)
        {
            var clientPrefs = new Unknown10();

            context.SendAndProcessMessage(clientPrefs);

            var groups = new Groups();

            context.SendAndProcessMessage(groups);

            var groupsFriends = new GroupsFriends();

            context.SendAndProcessMessage(groupsFriends);

            var serverList = new ServerList();

            context.SendAndProcessMessage(serverList);

            var chatRooms = new ChatRooms();

            context.SendAndProcessMessage(chatRooms);

            var friendsList = new FriendsList(context.User);

            context.SendAndProcessMessage(friendsList);

            var friendsStatus = new FriendsSessionAssign(context.User);

            context.SendAndProcessMessage(friendsStatus);

            // Tell friends this user came online
            //if (context.User.Username == "test") Debugger.Break();
            var friends = context.Server.Database.QueryFriends(context.User);

            friends.ForEach(friend =>
            {
                var otherSession = context.Server.GetSession(friend);
                otherSession?.SendAndProcessMessage(new FriendsSessionAssign(friend));
            });

            var pendingFriendRequests = context.Server.Database.QueryPendingFriendRequests(context.User);

            pendingFriendRequests.ForEach(request =>
            {
                var requester = context.Server.Database.QueryUser(request.UserId);
                context.SendAndProcessMessage(new FriendInvite(requester.Username, requester.Nickname, request.Message));
            });
        }
Esempio n. 2
0
        public void Process(Context context)
        {
            if (Nickname.Length > MAX_LENGTH)
            {
                Nickname = Nickname.Substring(0, MAX_LENGTH);
            }

            context.Server.Database.UpdateNickname(context.User, Nickname);

            var updatedFriendsList = new FriendsList(context.User);

            context.Server.Database.QueryFriends(context.User).ForEach(friend =>
            {
                var friendSession = context.Server.GetSession(friend);
                friendSession?.SendAndProcessMessage(updatedFriendsList);
            });
        }