package Ġcom . w illiam bl . ha ema . util Ċ Ċ import Ġcom . w illiam bl . ha ema . logger Ċ import Ġnet . minecraft . block . Bed Block Ċ import Ġnet . minecraft . entity . EntityType Ċ import Ġnet . minecraft . entity . player . Player Entity Ċ import Ġnet . minecraft . server . network . Server Player Entity Ċ import Ġnet . minecraft . server . world . Server World Ċ import Ġnet . minecraft . util . Pair Ċ import Ġnet . minecraft . util . math . Block Pos Ċ import Ġnet . minecraft . util . math . Vec 3 d Ċ import Ġjava . util .* Ċ Ċ fun Ġget Spawn ( player : ĠPlayer Entity , Ġis Spawn Ob struct ed : ĠBoolean ): ĠPair < Server World , ĠBlockPos >? Ġ{ ĊĠĠĠ Ġif Ġ( player Ġis ĠServer Player Entity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġworld Ġ= Ġplayer . world Ġas ĠServer World ĊĠĠĠĠĠĠĠ Ġval Ġregular Spawn : ĠBlockPos Ġ= Ġworld . spawn Pos ĊĠĠĠĠĠĠĠ Ġval Ġmutable Ġ= Ġregular Spawn . mutable Copy () ĊĠĠĠĠĠĠĠ Ġvar Ġfinal Pos : ĠOptional < Vec 3 d > Ġ= ĠOptional . empty () ĊĠĠĠĠĠĠĠ Ġval Ġrange Ġ= Ġ 1 2 8 ĊĠĠĠĠĠĠĠ Ġvar Ġsteps Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġfind spawn @ for Ġ( dx Ġin Ġ- range .. range ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( dz Ġin Ġ- range .. range ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġy loop @ for Ġ( dy Ġin Ġ 2 5 6 Ġdown To Ġ- 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsteps ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmutable . set ( regular Spawn . x + dx , Ġregular Spawn . y + dy , Ġregular Spawn . z + dz ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( world . is Sky Visible ( mutable )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue @ y loop ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinal Pos Ġ= ĠBed Block . can Wake Up At ( EntityType . PLAYER , Ġworld , Ġmutable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( final Pos . isPresent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak @ find spawn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( final Pos . isPresent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Found Ġa Ġv amp ire - safe Ġspawn , Ġ${ final Pos . get (). distance To ( Vec 3 d . of Center ( regular Spawn ))} Ġblocks Ġfrom Ġregular Ġspawn , Ġin Ġ$ steps Ġsteps .") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( world , ĠBlockPos ( final Pos . get ())) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warn (" Could Ġnot Ġfind Ġa Ġv amp ire - safe Ġspawn Ġin Ġrange Ġ$ range Ġof Ġ$ regular Spawn .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġnull Ċ }