I need to figure out how blocking a contact should be handled by the client and server. From what I’'ve seen in other clients, they merely block messages from clients, but do not actually make themselves invisible to these clients.
Using the alpha server, I tried sending a to make myself invisible to user B. This actually worked, and I appeared offline to user B, but online to all other users. However, I think this would break if I were to change my availability status to “away” or something, as the server probably would send a presence packet to user B saying I’‘m online but “away”. I haven’‘t actually tested this yet, so I’'m not sure.
I did test the following though. With user B thinking I’‘m offline, I got user B to send a message to user A (since offline messages are permitted). The server forwarded this message to user A, since it knows it’'s actually online. This may be something my client should handle: blocking messages from contacts that are blocked in my contact list.
I’'d like to know your views on how this should be handled…