join method

  1. @override
Future<void> join(
  1. List<int> data, {
  2. required String channel,
  3. required String? key,
  4. required Client user,
})
override

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);
}