'From etoys3.0 of 7 March 2008 [latest update: #2091] on 26 August 2008 at 5:02:50 pm'! "Change Set: buddiesFix-bf Date: 26 August 2008 Author: Bert Freudenberg Protect against buddies being nil (#8129)"! !SugarLauncher methodsFor: 'presence' stamp: 'bf 8/26/2008 16:52'! buddyJoined: buddyProxy "possibly sent via DBus in background process" | properties buddy | properties := buddyProxy getProperties. (properties at: #owner ifAbsent: [false]) == true ifTrue: [^self]. self buddiesLock critical: [ buddies ifNil: [^self]. (buddies includesKey: (properties at: #key)) ifTrue: [^self]. buddy := SugarBuddy fromDictionary: properties. buddies at: buddy key put: buddy]. WorldState addDeferredUIMessage: [ self badgeHolder addMorph: buddy makeBadge. self showBadges]! ! !SugarLauncher methodsFor: 'presence' stamp: 'bf 8/26/2008 16:51'! buddyLeft: buddyProxy "sent via DBus in background process" | key buddy badge | key := buddyProxy getProperties at: #key. buddy := self buddiesLock critical: [ buddies ifNil: [^self]. buddies removeKey: key ifAbsent: [^self]]. WorldState addDeferredUIMessage: [ badge := self badgeFor: buddy. badge ifNotNil: [badge delete]].! !