code: async def on_raw_join(self, message):
          
          nick, metadata = self._parse_user(message.source)
          self._sync_user(nick, metadata)
  
          channels = message.params[0].split(',')
          if self.is_same_nick(self.nickname, nick):
              # Add to our channel list, we joined here.
              for channel in channels:
                  if not self.in_channel(channel):
                      self._create_channel(channel)
  
                  # Request channel mode from IRCd.
                  await self.rawmsg('MODE', channel)
          else:
              # Add user to channel user list.
              for channel in channels:
                  if self.in_channel(channel):
                      self.channels[channel]['users'].add(nick)
  
          for channel in channels:
              await self.on_join(channel, nick)
docs: JOIN command.