@ file : Suppress (" CAST _ NE VER _ SU CCE ED S ", Ġ" unused ") Ċ Ċ package Ġcom . github . sh yn ix n . pet blocks . sponge . logic . business . listener Ċ Ċ import Ġcom . github . sh yn ix n . pet blocks . api . business . service . C arry Pet Service Ċ import Ġcom . github . sh yn ix n . pet blocks . api . business . service . Pet Service Ċ import Ġcom . google . inject . Inject Ċ import Ġorg . spongepowered . api . entity . Entity Ċ import Ġorg . spongepowered . api . entity . living . player . Player Ċ import Ġorg . spongepowered . api . event . Listener Ċ import Ġorg . spongepowered . api . event . command . Send Command Event Ċ import Ġorg . spongepowered . api . event . data . Change Data Holder Event Ċ import Ġorg . spongepowered . api . event . entity . Dest ruct Entity Event Ċ import Ġorg . spongepowered . api . event . entity . Interact Entity Event Ċ import Ġorg . spongepowered . api . event . filter . cause . First Ċ import Ġorg . spongepowered . api . event . item . inventory . Click Inventory Event Ċ import Ġorg . spongepowered . api . event . item . inventory . Drop Item Event Ċ import Ġorg . spongepowered . api . event . item . inventory . Interact Inventory Event Ċ import Ġorg . spongepowered . api . event . network . Client Connection Event Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠSh yn ix n Ġ 2 0 1 8 . Ċ Ġ* Ġ< p > Ċ Ġ* ĠVersion Ġ 1 . 2 Ċ Ġ* Ġ< p > Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ġ< p > Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 Ġby ĠSh yn ix n Ċ Ġ* Ġ< p > Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ġ< p > Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ġ< p > Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ class ĠC arry Pet Listener Ġ@ Inject Ġconstructor ( private Ġval Ġcarry Pet Service : ĠC arry Pet Service , Ġprivate Ġval Ġpet Service : ĠPet Service ) Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġcalled Ġwhen Ġa Ġplayer Ġinteract s Ġat Ġthe Ġgiven Ġentity . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Listener ĊĠĠĠ Ġfun Ġentity Right Click Event ( event : ĠInter act Entity Event . Secondary , Ġ@ First ( type Filter Ġ= Ġ[ Player :: class ]) Ġplayer : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( event . is Cancelled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! event . cause . first ( Entity :: class . java ). isPresent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( carry Pet Service . is C arry ing Pet ( player )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . is Cancelled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġopt Pet Ġ= Ġpet Service . find Pet By Entity ( event . target Entity ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( opt Pet Ġ!= Ġnull Ġ&& Ġopt Pet . getPlayer < Player >() Ġ== Ġplayer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcarry Pet Service . carry Pet ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . is Cancelled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( opt Pet Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . is Cancelled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġcalled Ġwhen Ġa Ġplayer Ġinteract s Ġwith Ġthe Ġgiven Ġentity . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Listener ĊĠĠĠ Ġfun Ġon Player Entity Event ( event : ĠInter act Entity Event , Ġ@ First ( type Filter Ġ= Ġ[ Player :: class ]) Ġplayer : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( carry Pet Service . is C arry ing Pet ( player )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcarry Pet Service . throw Pet ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . is Cancelled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġcalled Ġwhen Ġthe Ġplayer Ġsends Ġa Ġcommand . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Listener ĊĠĠĠ Ġfun Ġon Player Command Event ( event : ĠSend Command Event , Ġ@ First ( type Filter Ġ= Ġ[ Player :: class ]) Ġplayer : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( carry Pet Service . is C arry ing Pet ( player )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . is Cancelled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġcalled Ġwhen Ġthe Ġplayer Ġopens Ġan Ġinventory . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Listener ĊĠĠĠ Ġfun Ġon Inventory Open Event ( event : ĠInter act Inventory Event . Open , Ġ@ First ( type Filter Ġ= Ġ[ Player :: class ]) Ġplayer : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! carry Pet Service . is C arry ing Pet ( player )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġevent . is Cancelled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġplayer . close Inventory () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġcalled Ġwhen Ġthe Ġplayer Ġdies . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Listener ĊĠĠĠ Ġfun Ġon Player Death Event ( event : ĠDest ruct Entity Event . Death ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( event . target Entity Ġ! is ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! carry Pet Service . is C arry ing Pet ( event . target Entity )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcarry Pet Service . drop Pet ( event . target Entity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġcalled Ġwhen Ġthe Ġplayer Ġqu its . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Listener ĊĠĠĠ Ġfun Ġon Player Quit Event ( event : ĠClient Connection Event . Disconnect ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! carry Pet Service . is C arry ing Pet ( event . target Entity )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcarry Pet Service . clear Resources ( event . target Entity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġcalled Ġwhen Ġthe Ġplayer Ġclicks Ġin Ġinventory . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Listener ĊĠĠĠ Ġfun Ġon Inventory Click ( event : ĠClick Inventory Event , Ġ@ First ( type Filter Ġ= Ġ[ Player :: class ]) Ġplayer : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! carry Pet Service . is C arry ing Pet ( player )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcarry Pet Service . drop Pet ( player ) ĊĠĠĠĠĠĠĠ Ġevent . is Cancelled Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġcalled Ġwhen Ġthe Ġplayer Ġdrops Ġan Ġitem . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Listener ĊĠĠĠ Ġfun Ġon Player Drop Item ( event : ĠDrop Item Event . Disp ense , Ġ@ First ( type Filter Ġ= Ġ[ Player :: class ]) Ġplayer : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! carry Pet Service . is C arry ing Pet ( player )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcarry Pet Service . drop Pet ( player ) ĊĠĠĠĠĠĠĠ Ġevent . is Cancelled Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġevent . entities . forEach Ġ{ Ġentity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity . remove () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġcalled Ġwhen Ġthe Ġplayer Ġslot Ġchanges . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Listener ĊĠĠĠ Ġfun Ġon Slot Change ( event : ĠChange Data Holder Event , Ġ@ First ( type Filter Ġ= Ġ[ Player :: class ]) Ġplayer : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! carry Pet Service . is C arry ing Pet ( player )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcarry Pet Service . drop Pet ( player ) ĊĠĠĠĠĠĠĠ Ġevent . is Cancelled Ġ= Ġtrue ĊĠĠĠ Ġ} Ċ }