join method
Implementation
@override
join(data, {required channel, required key, required user}) async {
var chan = _channels[channel];
if (chan != null) {
if (!chan.add(user, key: key)) {
user.sendNumericWith(NumericReply.ERR_BADCHANNELKEY, [channel]);
return;
}
} else {
// Create new channel.
chan = Channel(name: channel, key: key)..add(user, key: key);
chan.setFlag('n', on: true);
_channels[channel] = chan;
}
user.add(chan);
chan.broadcast(data, from: user);
chan.sendChannelInfo(to: user);
}