package Ġnet . star legacy . cache . trade Ċ Ċ import Ġcom . google code . cq engine . index . hash . Hash Index Ċ import Ġcom . google code . cq engine . query . Query Factory Ċ import Ġcom . mongodb . client . model . change stream . Change Stream Document Ċ import Ġnet . star legacy . cache . Db Object Cache Ċ import Ġnet . star legacy . database . Oid Ċ import Ġnet . star legacy . database . document Ċ import Ġnet . star legacy . database . get Ċ import Ġnet . star legacy . database . int Ċ import Ġnet . star legacy . database . mapped List Ċ import Ġnet . star legacy . database . mapped Set Ċ import Ġnet . star legacy . database . oid Ċ import Ġnet . star legacy . database . schema . econom y . Collected Item Ċ import Ġnet . star legacy . database . schema . econom y . E co Station Ċ import Ġnet . star legacy . database . string Ċ import Ġnet . star legacy . feature . econom y . collect ors . Collectors Ċ Ċ object ĠE co St ations Ġ: ĠDb Object Cache < E co Station , ĠO id < E co Station >>( E co Station . Companion ) Ġ{ ĊĠĠĠ Ġoverride Ġval Ġid Attribute Ġ= Ġattribute ( E co Station ::_ id ) ĊĠĠĠ Ġprivate Ġval Ġname Attribute Ġ= Ġattribute ( E co Station :: name ) ĊĊĠĠĠ Ġoverride Ġfun Ġadd Extra Indexes () Ġ{ ĊĠĠĠĠĠĠĠ Ġcache . addIndex ( Hash Index . on Attribute ( name Attribute )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate ( cached : ĠE co Station , Ġchange : ĠChange Stream Document < E co Station >) Ġ{ ĊĠĠĠĠĠĠĠ Ġchange [ E co Station :: name ]?. let Ġ{ Ġcached . name Ġ= Ġit . string () Ġ} ĊĠĠĠĠĠĠĠ Ġchange [ E co Station :: world ]?. let Ġ{ Ġcached . world Ġ= Ġit . string () Ġ} ĊĠĠĠĠĠĠĠ Ġchange [ E co Station :: x ]?. let Ġ{ Ġcached . x Ġ= Ġit . int () Ġ} ĊĠĠĠĠĠĠĠ Ġchange [ E co Station :: z ]?. let Ġ{ Ġcached . z Ġ= Ġit . int () Ġ} ĊĠĠĠĠĠĠĠ Ġchange [ E co Station :: collect ors ]?. let Ġ{ Ġbson Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcached . collect ors Ġ= Ġbson . mapped List Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . document < E co Station . Collector >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCollect ors . synchron ize NPC s Async () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġchange [ E co Station :: collected Items ]?. let Ġ{ Ġbson Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcached . collected Items Ġ= Ġbson . mapped Set Ġ{ Ġit . oid < Collected Item >() Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget ByName ( name : ĠString ): ĠE co Station ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcache . retrieve ( Query Factory . matches Regex ( name Attribute , Ġname )). first OrNull () ĊĠĠĠ Ġ} Ċ } Ċ