/* Ċ Ġ* ĠThis Ġfile Ġis Ġpart Ġof ĠMy th ic D rops , Ġlicensed Ġunder Ġthe ĠMIT ĠLicense . Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 ĠRichard ĠH arr ah Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . teal cube . minecraft . bukkit . my th ic dro ps . commands Ċ Ċ import Ġco . a ik ar . commands . Base Command Ċ import Ġco . a ik ar . commands . annotation . Command Alias Ċ import Ġco . a ik ar . commands . annotation . Command Completion Ċ import Ġco . a ik ar . commands . annotation . Command Permission Ċ import Ġco . a ik ar . commands . annotation . Dependency Ċ import Ġco . a ik ar . commands . annotation . Description Ċ import Ġco . a ik ar . commands . annotation . Flags Ċ import Ġco . a ik ar . commands . annotation . Sub command Ċ import Ġcom . google . common . collect . Sets Ċ import Ġcom . teal cube . minecraft . bukkit . my th ic dro ps . api . My th ic D rops Ċ import Ġcom . teal cube . minecraft . bukkit . my th ic dro ps . api . locations . Vec 3 Ċ import Ġcom . teal cube . minecraft . bukkit . my th ic dro ps . chat Color ize Ċ import Ġcom . teal cube . minecraft . bukkit . my th ic dro ps . send My th ic Message Ċ import Ġorg . bukkit . Material Ċ import Ġorg . bukkit . command . Command Sender Ċ import Ġorg . bukkit . entity . Player Ċ Ċ @ Command Alias (" my th ic dro ps | md ") Ċ class ĠCombin er Commands Ġ: ĠBase Command () Ġ{ ĊĠĠĠ Ġ@ Sub command (" combin ers ") ĊĠĠĠ Ġclass ĠNested Combin er Commands ( parent : ĠBase Command ) Ġ: ĠBase Command () Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ field : Dependency ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġmy th ic D rops : ĠMy th ic D rops ĊĊĠĠĠĠĠĠĠ Ġ@ Description (" Lists Ġthe Ġsocket Ġgem Ġcombin ers Ġand Ġtheir Ġlocations .") ĊĠĠĠĠĠĠĠ Ġ@ Sub command (" list ") ĊĠĠĠĠĠĠĠ Ġ@ Command Permission (" my th ic dro ps . command . combin ers . list ") ĊĠĠĠĠĠĠĠ Ġfun Ġlist Combin ers Command ( sender : ĠCommand Sender ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ("& 6 My th ic D rops ĠSocket ĠGem ĠCombin ers ". chat Color ize ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy th ic D rops . socket Gem Combin er Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġsocket Gem Combin er Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString . format ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"% s Ġ=> Ġ% s : Ġ% d , Ġ% d , Ġ% d ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsocket Gem Combin er . uuid . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsocket Gem Combin er . location . world . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsocket Gem Combin er . location . x , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsocket Gem Combin er . location . y , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsocket Gem Combin er . location . z ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Description (" Lists Ġthe Ġsocket Ġgem Ġcombin ers Ġand Ġtheir Ġlocations .") ĊĠĠĠĠĠĠĠ Ġ@ Command Completion ("@ players ") ĊĠĠĠĠĠĠĠ Ġ@ Sub command (" open ") ĊĠĠĠĠĠĠĠ Ġ@ Command Permission (" my th ic dro ps . command . combin ers . open ") ĊĠĠĠĠĠĠĠ Ġfun Ġopen Combin er Command ( sender : ĠCommand Sender , Ġ@ Flags (" other ") Ġplayer : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy th ic D rops . socket Gem Combin er Gui Factory . create And Register Socket Gem Combin er Gui (). show To Player ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . send My th ic Message ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy th ic D rops . settings Manager . language Settings . command . socket Gem Combin er Open , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"% player %" Ġto Ġplayer . displayName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Description (" Adds Ġa Ġsocket Ġgem Ġcombin er Ġat Ġthe Ġblock Ġthe Ġsender Ġis Ġlooking Ġat .") ĊĠĠĠĠĠĠĠ Ġ@ Sub command (" add ") ĊĠĠĠĠĠĠĠ Ġ@ Command Permission (" my th ic dro ps . command . combin ers . add ") ĊĠĠĠĠĠĠĠ Ġfun Ġadd Combin er Command ( sender : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġblocks Ġ= Ġsender . getLine Of S ight ( Sets . new HashSet ( Material . AIR ), Ġ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( block Ġin Ġblocks ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( block . type Ġ== ĠMaterial . CH EST ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloc Ġ= ĠVec 3 . from Location ( block . location ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy th ic D rops . socket Gem Combin er Manager . add At Location ( loc ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy th ic D rops . save Socket Gem Combin ers () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy th ic D rops ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. settings Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. language Settings ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. command ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. socket Gem Combin er Add ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. success . chat Color ize () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy th ic D rops ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. settings Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. language Settings ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. command ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. socket Gem Combin er Add ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. failure . chat Color ize () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Description (" Remov es Ġa Ġsocket Ġgem Ġcombin er Ġfrom Ġthe Ġblock Ġthe Ġsender Ġis Ġlooking Ġat .") ĊĠĠĠĠĠĠĠ Ġ@ Sub command (" remove ") ĊĠĠĠĠĠĠĠ Ġ@ Command Permission (" my th ic dro ps . command . combin ers . remove ") ĊĠĠĠĠĠĠĠ Ġfun Ġremove Combin er Command ( sender : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġblocks Ġ= Ġsender . getLine Of S ight ( Sets . new HashSet ( Material . AIR ), Ġ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( block Ġin Ġblocks ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( block . type Ġ== ĠMaterial . CH EST ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloc Ġ= ĠVec 3 . from Location ( block . location ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( my th ic D rops . socket Gem Combin er Manager . contains At Location ( loc )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy th ic D rops . socket Gem Combin er Manager . remove At Location ( loc ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy th ic D rops . save Socket Gem Combin ers () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy th ic D rops ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. settings Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. language Settings ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. command ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. socket Gem Combin er Remove ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. success . chat Color ize () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy th ic D rops ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. settings Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. language Settings ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. command ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. socket Gem Combin er Remove ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. failure . chat Color ize () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ