private void _Leave(Chatter chatter) { var whispeableChatter = _Chatters.Items.FirstOrDefault(i => i.Name == chatter.Messager.Name); if (whispeableChatter != null) { _Chatters.Items.Remove(whispeableChatter); } }
void IBootable.Launch() { _This = _Binder.Bind <IPlayer>(this); _Chatter = _Room.RegistChatter(this); _Chatters.Items.Clear(); _Room.Chatters.Supply += _Add; _Room.Chatters.Unsupply += _Leave; }
internal Chatter RegistChatter(IMessageable messageable) { var chatter = new Chatter(messageable, (msg) => _Broadcast(msg, messageable)); lock (_Chatters) { _Chatters.Add(chatter); } return(chatter); }
private void _Add(Chatter chatter) { var whispeableChatter = new WhispeableChatter(_Chatter, chatter); _Chatters.Items.Add(whispeableChatter); }
internal void UnregistChatter(Chatter chatter) { lock (_Chatters) _Chatters.Remove(chatter); }
public WhispeableChatter(Chatter sender, Chatter chatter) { this._Sender = sender; this._Receiver = chatter; }