I have noticed that the USER_JOIN and USER_DEPARTURE events are not consistent. The user who entered the room receives only a ROOM_JOIN event, but no USER_JOIN event … but the user who leaves the room receives both a ROOM_LEAVE and a USER_DEPARTURE event. I checked the source and it appears that the USER_JOIN event is intentionally being skipped if the nickname in the presence message and the nickname of the current user are the same, but there is no such check in the case of the USER_DEPARTURE event. It seems to me that they should be consistent … either the current user should be included or not, but not a mixture. I suppose it is a matter of taste which way they should consistently work (include or not include), but for me it makes more sense to have the USER_ events only apply to users other than the current user since the ROOM_ events cover that user already.
Opinions? Should this be considered a bug? Or is there some reason it was intentionally inconsistent?