package Ġcom . github . sh yn ix n . pet blocks . bukkit . logic . persistence . entity Ċ Ċ import Ġcom . github . sh yn ix n . pet blocks . api . persistence . entity . Particle Effect Meta Ċ import Ġcom . github . sh yn ix n . pet blocks . bukkit . logic . business . helper . Pet Block Modify Helper Ċ import Ġcom . github . sh yn ix n . pet blocks . bukkit . logic . business . helper . Skin Helper Ċ import Ġcom . github . sh yn ix n . pet blocks . bukkit . logic . persistence . configuration . Config Ċ import Ġcom . github . sh yn ix n . pet blocks . bukkit . nms . v 1 _ 1 2 _ R 1 . Material Compatibility 1 2 Ċ import Ġcom . github . sh yn ix n . pet blocks . core . logic . persistence . entity . Pet Data Ċ import Ġcom . github . sh yn ix n . pet blocks . core . logic . persistence . entity . Player Data Ċ import Ġorg . bukkit . Bu kkit Ċ import Ġorg . bukkit . Chat Color Ċ import Ġorg . bukkit . entity . Player Ċ import Ġorg . bukkit . inventory . ItemStack Ċ import Ġorg . bukkit . inventory . meta . Sk ull Meta Ċ import Ġjava . util . HashMap Ċ Ċ /** Ċ Ġ* Ġ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 ĠBu kkit Pet Data Ġ: ĠPet Data Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthe Ġitem Stack . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġname Ġname ĊĠĠĠĠ Ġ* Ġ@ param Ġdamage ĠĠĠĠĠ Ġdamage ĊĠĠĠĠ Ġ* Ġ@ param Ġskin ĠĠĠĠĠĠĠ Ġskin ĊĠĠĠĠ Ġ* Ġ@ param Ġun break able Ġun break able ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġset Skin ( name : ĠString , Ġdamage : ĠInt , Ġskin : ĠString ?, Ġun break able : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . set Skin ( Material Compatibility 1 2 . getId From Material ( org . bukkit . Material . get Material ( name )), Ġdamage , Ġskin , Ġun break able ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġmaterial Ġname Ġof Ġthe Ġitem Ġid . ĊĠĠĠĠ Ġ* Ġ@ return Ġname ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠgetItem Material Name (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMaterial Compatibility 1 2 . get Material From Id ( this . itemId ). name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInitializes Ġa Ġnew Ġdefault Ġpet Data Ġwhich Ġis Ġready Ġto Ġbe Ġused . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġplayer Ġplayer ĊĠĠĠĠ Ġ* Ġ@ param Ġname ĠĠ Ġname Of The Pet ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġconstructor ( player : ĠPlayer ?, Ġname : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( player Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Player Ġcannot Ġbe Ġnull !") ĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Pet name Ġcannot Ġbe Ġnull !") ĊĠĠĠĠĠĠĠ Ġthis . pet DisplayName Ġ= Ġname . replace (": player ", Ġplayer . name ) ĊĠĠĠĠĠĠĠ Ġthis . player Info Ġ= Ġobject Ġ: ĠPlayer Data () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< T > Ġget Player (): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBu kkit . getPlayer ( player . name ) Ġas ĠT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . age Ticks Ġ= ĠConfig . age _ small ticks . to Long () ĊĠĠĠĠĠĠĠ Ġthis . sounds Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġthis . particle Effect Builder Ġ= ĠBu kkit Particle Effect () ĊĠĠĠĠĠĠĠ Ġthis . particle Effect Builder . effect Type Ġ= ĠParticle Effect Meta . Particle Effect Type . NONE ĊĠĠĠĠĠĠĠ Ġval Ġengine Container Ġ= ĠConfig . engine Controller ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getContainer From Position ( Config . default Engine ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! engine Container . isPresent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" Default Ġengine Ġcould Ġnot Ġbe Ġloaded Ġcorrectly !") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . engine Container Ġ= Ġengine Container . get () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor () Ġ: Ġsuper () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġitem Stack Ġfor Ġthe Ġhead ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġhead ItemStack ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġget Head ItemStack (): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġitem Stack : ĠItemStack ? ĊĠĠĠĠĠĠĠ Ġif Ġ( this . get Skin () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . get Skin (). contains (" textures . minecraft ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Stack Ġ= ĠItemStack ( Material Compatibility 1 2 . get Material From Id ( this . itemId ), Ġ 1 , Ġthis . item Damage . to Short ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSk in Helper . setItem Stack Skin ( item Stack , Ġthis . get Skin ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Stack Ġ= ĠItemStack ( Material Compatibility 1 2 . get Material From Id ( this . itemId ), Ġ 1 , Ġthis . item Damage . to Short ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmeta Ġ= Ġitem Stack . item Meta ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( meta Ġis ĠSk ull Meta ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeta . owner Ġ= Ġthis . skin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Stack . item Meta Ġ= Ġmeta ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Stack Ġ= ĠItemStack ( Material Compatibility 1 2 . get Material From Id ( this . itemId ), Ġ 1 , Ġthis . item Damage . to Short ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmeta Ġ= Ġitem Stack . item Meta ĊĠĠĠĠĠĠĠ Ġmeta . displayName Ġ= Ġthis . pet DisplayName ĊĠĠĠĠĠĠĠ Ġitem Stack . item Meta Ġ= Ġmeta ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠHashMap < String , ĠAny >() ĊĠĠĠĠĠĠĠ Ġdata [" Un break able "] Ġ= Ġthis . is ItemStack Un break able ĊĠĠĠĠĠĠĠ Ġitem Stack Ġ= ĠPet Block Modify Helper . setItem Stack NBT Tag ( item Stack , Ġdata ) ĊĠĠĠĠĠĠĠ Ġreturn Ġitem Stack ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthe Ġstored Ġdisplay Ġname Ġof Ġthe Ġpet Ġwhich Ġappears Ġabove Ġit 's Ġhead Ġon Ġresp awn . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġname Ġname ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġset Pet DisplayName ( name : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( Config . pet Name Black List Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfig . pet Name Black List ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġname . toUpperCase (). contains ( it . toUpperCase ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġthrow ĠRuntimeException (" Name Ġis Ġnot Ġvalid !") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . pet DisplayName Ġ= ĠChat Color . translate Alternate Color Codes ('& ', Ġname ) ĊĠĠĠ Ġ} Ċ }