/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 Ġd kim 1 9 3 7 5 Ċ Ġ* Ċ Ġ* Ġ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 : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* Ġ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 . Ċ Ġ*/ Ċ Ċ package Ġme . dk im 1 9 3 7 5 . bed w ars . plugin . listener Ċ Ċ import Ġme . dk im 1 9 3 7 5 . bed w ars . plugin . Bed w ars Plugin Ċ import Ġme . dk im 1 9 3 7 5 . bed w ars . plugin . gui . Main Shop GUI Ċ import Ġme . dk im 1 9 3 7 5 . bed w ars . plugin . gui . Upgrade Shop GUI Ċ import Ġme . dk im 1 9 3 7 5 . bed w ars . plugin . util . default Ċ import Ġme . dk im 1 9 3 7 5 . bed w ars . plugin . util . is Armor Ċ import Ġme . dk im 1 9 3 7 5 . bed w ars . plugin . util . is Tool Ċ import Ġme . dk im 1 9 3 7 5 . bed w ars . plugin . util . is Weapon Ċ import Ġorg . bukkit . Bu kkit Ċ import Ġorg . bukkit . Material Ċ import Ġorg . bukkit . entity . Fire ball Ċ import Ġorg . bukkit . event . EventHandler Ċ import Ġorg . bukkit . event . Event Priority Ċ import Ġorg . bukkit . event . Listener Ċ import Ġorg . bukkit . event . block . Action Ċ import Ġorg . bukkit . event . player . Player Interact At Entity Event Ċ import Ġorg . bukkit . event . player . Player Interact Event Ċ import Ġorg . bukkit . inventory . ItemStack Ċ Ċ class ĠPlayer Interact Listener ( private Ġval Ġplugin : ĠBed w ars Plugin ) Ġ: ĠListener Ġ{ ĊĠĠĠ Ġ@ EventHandler ( priority Ġ= ĠEvent Priority . HIG HE ST ) ĊĠĠĠ Ġprivate Ġfun ĠPlayer Interact Event . on Interact () Ġ{ ĊĠĠĠĠĠĠĠ Ġmake Item Un break able () ĊĠĠĠĠĠĠĠ Ġbed Pre vention () ĊĠĠĠĠĠĠĠ Ġsetup Fire b alls () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠPlayer Interact Event . make Item Un break able () Ġ{ ĊĠĠĠĠĠĠĠ Ġitem Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( item . type . is Tool () Ġ|| Ġitem . type . is Armor () Ġ|| Ġitem . type . is Weapon ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem . dur ability Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ EventHandler ( priority Ġ= ĠEvent Priority . HIG HE ST ) ĊĠĠĠ Ġprivate Ġfun ĠPlayer Interact At Entity Event . on Interact At Entity () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgame Ġ= Ġplugin . game Manager . get Game ( player ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( game . npc Manager . get Shop V ill agers UUID (). contains ( right Clicked . unique Id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Cancelled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMain Shop GUI ( player , Ġplugin ). show Player () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBu kkit . get Scheduler (). run Task ( plugin ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMain Shop GUI ( player , Ġplugin ). show Player () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! game . npc Manager . get Upgrade V ill agers UUID (). contains ( right Clicked . unique Id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġteam Ġ= Ġgame . get Team Of Player ( player ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġis Cancelled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ ĠUpgrade Shop GUI ( player , Ġteam , Ġplugin ). show Player () ĊĠĠĠĠĠĠĠ ĠBu kkit . get Scheduler (). run Task ( plugin ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUpgrade Shop GUI ( player , Ġteam , Ġplugin ). show Player () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠPlayer Interact Event . bed Pre vention () Ġ{ ĊĠĠĠĠĠĠĠ Ġplugin . game Manager . get Game ( player ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġclicked Block Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ(! listOf ( Material . B ED , ĠMaterial . B ED _ BLOCK ). contains ( clicked Block . type )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! action . name . startsWith (" RIGHT ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( player . is S ne aking ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( player . item In Hand . type . default ( Material . AIR ) Ġ!= ĠMaterial . AIR ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġis Cancelled Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠPlayer Interact Event . setup Fire b alls () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( action Ġ!= ĠAction . RIGHT _ CLICK _ AIR Ġ&& Ġaction Ġ!= ĠAction . RIGHT _ CLICK _ BLOCK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( player . item In Hand . type Ġ!= ĠMaterial . FIRE B ALL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( player . is S ne aking Ġ&& Ġaction Ġ== ĠAction . RIGHT _ CLICK _ BLOCK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġis Cancelled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( player . item In Hand . amount Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . item In Hand Ġ= ĠItemStack ( Material . AIR ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . item In Hand Ġ= ĠItemStack ( player . item In Hand . type , Ġplayer . item In Hand . amount Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġfire ball Ġ= Ġplayer . launch Projectile ( Fire ball :: class . java ) ĊĠĠĠĠĠĠĠ Ġfire ball . setIs Inc endi ary ( true ) ĊĠĠĠĠĠĠĠ Ġfire ball . yield Ġ= Ġ 2 . 3 f ĊĠĠĠĠĠĠĠ Ġplugin . game Manager . add Explo s ive ( fire ball . unique Id , Ġplayer . unique Id ) ĊĠĠĠ Ġ} Ċ }