package Ġcom . mine in aby ss . mob zy . injection Ċ Ċ import Ġcom . mine in aby ss . ge ary . ecs . api . entities . Ge ary Entity Ċ import Ġcom . mine in aby ss . ge ary . minecraft . access . to Bu kkit Ċ import Ġcom . mine in aby ss . ge ary . minecraft . access . to Ge ary Ċ import Ġcom . mine in aby ss . id of r ont . nms . aliases . NM SE ntity Ċ import Ġcom . mine in aby ss . id of r ont . nms . aliases . NM SS ound Ċ import Ġcom . mine in aby ss . id of r ont . nms . aliases . to Bu kkit Ċ import Ġcom . mine in aby ss . mob zy . ecs . components . ambient . Sounds Ċ import Ġorg . bukkit . Sound Category Ċ import Ġkotlin . random . Random Ċ Ċ /** Ċ Ġ* ĠAn Ġinterface Ġthat Ġshould Ġbe Ġused Ġby Ġall Ġcustom Ġm obs Ġthat Ġuse Ġa Ġcustom Ġclass Ġwithin ĠMinecraft 's Ġentity Ċ Ġ* Ġhierarchy . Ċ Ġ*/ Ċ interface ĠCustom Entity Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠENT ITY _ VERSION Ġ= Ġ" custom Mob 3 " ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** ĠPlay s Ġa Ġsound Ġeffect Ġat Ġthe Ġmob 's Ġlocation Ġand Ġreturns Ġnull Ġ*/ Ċ fun ĠN M SE ntity . make Sound ( default : ĠN MSS ound ? Ġ= Ġnull , Ġsound : ĠSounds . () Ġ-> ĠString ?): ĠN MSS ound ? Ġ{ ĊĠĠĠ Ġval Ġentity Ġ= Ġge ary ĊĠĠĠ Ġentity . make Sound ( entity . get < Sounds >() ?. sound () Ġ?: Ġreturn Ġdefault ) ĊĠĠĠ Ġreturn Ġnull Ċ } Ċ Ċ // TODO Ġthink Ġof Ġa Ġbetter Ġplace Ġto Ġput Ġthis , Ġsomething Ġless Ġinheritance - ey Ċ fun ĠGe ary Entity . make Sound ( sound : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġbu kkit Ġ= Ġto Bu kkit () Ġ?: Ġreturn ĊĠĠĠ Ġval Ġsounds Ġ= Ġget () Ġ?: ĠSounds () ĊĊĠĠĠ Ġbu kkit . world . play Sound ( ĊĠĠĠĠĠĠĠ Ġbu kkit . location , ĊĠĠĠĠĠĠĠ Ġsound , ĊĠĠĠĠĠĠĠ ĠSound Category . NE UT R AL , ĊĠĠĠĠĠĠĠ Ġsounds . volume , ĊĠĠĠĠĠĠĠ Ġ( sounds . pitch Ġ+ Ġ( Random . next Double (- sounds . pitch Range , Ġsounds . pitch Range ))). toFloat () ĊĠĠĠ Ġ) Ċ } Ċ Ċ val ĠN M SE ntity . ge ary : ĠGe ary Entity Ġget () Ġ= Ġto Bu kkit (). to Ge ary () Ċ