package Ġcom . github . ys l 3 0 0 0 . bukkit . path finding . goals Ċ Ċ import Ġcom . github . ys l 3 0 0 0 . bukkit . path finding . entity . In sent ient Ċ import Ġcom . github . ys l 3 0 0 0 . bukkit . path finding . path finding . Path finder Goal Ċ import Ġorg . bukkit . entity . Player Ċ import Ġjava . util . stream . Collectors Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġy sl 3 0 0 0 Ċ Ġ*/ Ċ class ĠTalk To Str ang ers ( private Ġval Ġin sent ient : ĠIn sent ient , Ġprivate Ġval Ġmessages : ĠList < String >, Ġprivate Ġval Ġdelay : ĠLong ) Ġ: ĠPath finder Goal Ġ{ ĊĊĊĠĠĠ Ġprivate Ġval Ġradius : ĠInt Ġ= Ġ 1 0 ĊĊĠĠĠ Ġprivate Ġvar Ġcurrent Message : ĠIterator < String >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġlast Talk : ĠLong Ġ= Ġ 0 ĊĊĊĠĠĠ Ġprivate Ġval Ġis Allowed To Talk : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġlast Talk Ġ+ Ġdelay Ġ< ĠSystem . currentTimeMillis () ĊĊĊĠĠĠ Ġprivate Ġval Ġnearby Players : ĠList < Player > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġin sent ient . get Bu kkit Entity (). get Near by Entities ( radius . toDouble (), Ġradius . toDouble (), Ġradius . toDouble ()). stream () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ ĠPlayer :: class . java . is Instance ( it ) Ġ}. map < Player > Ġ{ ĠPlayer :: class . java . cast ( it ) Ġ}. collect ( Collectors . toList ()) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . current Message Ġ= Ġmessages . iterator () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġshould Execute (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġis Allowed To Talk Ġ&& Ġhas Player In Radius () Ġ&& Ġ( current Message Ġ== Ġnull Ġ|| Ġcurrent Message !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. hasNext ()) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġshould Terminate (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcurrent Message !!. hasNext () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( current Message Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Message Ġ= Ġmessages . iterator () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġexecute () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( current Message !!. hasNext () Ġ&& Ġis Allowed To Talk ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Message Ġ= Ġcurrent Message !!. next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnearby Players . forEach Ġ{ Ġe Ġ-> Ġe . sendMessage ( c Message ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . last Talk Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġreset () Ġ{ ĊĠĠĠĠĠĠĠ Ġcurrent Message Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhas Player In Radius (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnearby Players . isNotEmpty () ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ