package Ġcom . github . sy ari . ss . plugins . de mon kill . craft Ċ Ċ import Ġcom . github . sy ari . sp ig ot . api . inventory . Custom Inventory Ċ import Ġcom . github . sy ari . sp ig ot . api . inventory . inventory Ċ import Ġorg . bukkit . Material Ċ import Ġorg . bukkit . entity . Player Ċ import Ġorg . bukkit . inventory . ItemStack Ċ Ċ object ĠCraft Interface Ġ{ ĊĠĠĠ Ġfun Ġopen Root ( player : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinventory ("& 9 & l ãĤ¯ãĥ© ãĥķãĥĪ ", Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( 0 .. 2 6 , ĠMaterial . GRAY _ ST AIN ED _ GL ASS _ P ANE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( 1 0 , ĠMaterial . IRON _ S WORD , Ġ"& 6 æŃ¦ åĻ¨ ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Weapon ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( 1 3 , ĠMaterial . IRON _ CH EST PL ATE , Ġ"& 6 éĺ² åħ· ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Armor ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( 1 6 , ĠMaterial . APPLE , Ġ"& 6 ãģĿãģ® ä»ĸ ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Other ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. open ( player ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Weapon ( player : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinventory ("& 9 & l æŃ¦ åĻ¨ ", Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem (( 0 .. 9 ) Ġ+ Ġ( 1 7 .. 2 6 ), ĠMaterial . GRAY _ ST AIN ED _ GL ASS _ P ANE ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp grade Items ( player , ĠWeapon . get From Inventory ( player ), Ġ:: open Weapon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( 2 2 , ĠMaterial . BAR RI ER , Ġ"& c éĸ ī ãģĺ ãĤĭ ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Root ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. open ( player ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Armor ( player : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinventory ("& 9 & l éĺ² åħ· ", Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem (( 0 .. 9 ) Ġ+ Ġ( 1 7 .. 2 6 ), ĠMaterial . GRAY _ ST AIN ED _ GL ASS _ P ANE ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp grade Items ( player , ĠArm or . get From Inventory ( player ), Ġ:: open Armor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( 2 2 , ĠMaterial . BAR RI ER , Ġ"& c éĸ ī ãģĺ ãĤĭ ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Root ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. open ( player ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠCustom Inventory . set Upgrade Items ( player : ĠPlayer , Ġbase Item : ĠUpgrade able ?, ĠonClose : Ġ( Player ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġupgrade Ġ= Ġwhen Ġ( base Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠWeapon Ġ-> Ġbase Item . upgrade ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠArm or Ġ-> Ġbase Item . upgrade ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( 4 , ĠMaterial . AIR , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. map Ġ{ Ġit . key Ġto Ġit . value . request Ġ} ĊĠĠĠĠĠĠĠ Ġitem ( 4 , Ġbase Item . item ) ĊĠĠĠĠĠĠĠ Ġval Ġindex List Ġ= Ġwhen Ġ( upgrade . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠlistOf ( 1 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> ĠlistOf ( 1 1 , Ġ 1 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> ĠlistOf ( 1 0 , Ġ 1 3 , Ġ 1 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> ĠlistOf ( 1 0 , Ġ 1 2 , Ġ 1 4 , Ġ 1 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠ 5 Ġ-> ĠlistOf ( 1 1 , Ġ 1 2 , Ġ 1 3 , Ġ 1 4 , Ġ 1 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠ 6 Ġ-> ĠlistOf ( 1 0 , Ġ 1 1 , Ġ 1 2 , Ġ 1 3 , Ġ 1 4 , Ġ 1 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠ 7 Ġ-> ĠlistOf ( 1 0 , Ġ 1 1 , Ġ 1 2 , Ġ 1 3 , Ġ 1 4 , Ġ 1 5 , Ġ 1 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġupgrade . forEach Ġ{ Ġ( upgrade Item , Ġrequest ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( index List [ index ], Ġupgrade Item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Upgrade ( player , Ġbase Item , Ġupgrade Item , Ġrequest , ĠonClose ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Upgrade ( player : ĠPlayer , Ġbase Item : ĠUpgrade able , Ġupgrade Item : ĠItemStack , Ġrequest : ĠList < ItemStack >, ĠonClose : Ġ( Player ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinventory ("& 9 & l ãĤ¢ ãĤ¤ ãĥĨ ãĥł å¼ · åĮĸ ", Ġ 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem (( 0 .. 9 ) Ġ+ Ġ( 1 7 .. 1 8 ) Ġ+ Ġ( 2 6 .. 3 5 ), ĠMaterial . GRAY _ ST AIN ED _ GL ASS _ P ANE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( listOf ( 1 5 , Ġ 2 4 ), ĠMaterial . GRAY _ ST AIN ED _ GL ASS _ P ANE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( 1 0 , Ġbase Item . item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . sub List ( 0 , Ġ 4 . coerce At Most ( request . size )). forEach Indexed Ġ{ Ġindex , Ġrequest Item Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( 1 1 Ġ+ Ġindex , Ġrequest Item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( 4 Ġ< Ġrequest . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . sub List ( 4 , Ġ 9 . coerce At Most ( request . size )). forEach Indexed Ġ{ Ġindex , Ġrequest Item Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( 1 9 Ġ+ Ġindex , Ġrequest Item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( 1 6 , Ġupgrade Item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( 2 5 , ĠMaterial . AN V IL , Ġ"& 6 ä½ľæĪĲ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( 3 1 , ĠMaterial . BAR RI ER , Ġ"& c éĸ ī ãģĺ ãĤĭ ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClose ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. open ( player ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Other ( player : ĠPlayer ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinventory ("& 9 & l ãģĿãģ® ä»ĸ ", Ġ 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem (( 0 .. 9 ) Ġ+ Ġ( 1 7 .. 1 8 ) Ġ+ Ġ( 2 6 .. 2 7 ) Ġ+ Ġ( 3 5 .. 3 6 ) Ġ+ Ġ( 4 4 .. 5 4 ), ĠMaterial . GRAY _ ST AIN ED _ GL ASS _ P ANE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem List Ġ= ĠOther . get From Inventory ( player )?. list ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem List ?. forEach Ġ{ Ġindex , Ġ( item , Ġrequest ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( index , Ġitem ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinventory ("& 9 & l ãĤ¢ ãĤ¤ ãĥĨ ãĥł ä½ľæĪĲ ", Ġ 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem (( 0 .. 9 ) Ġ+ Ġ( 1 7 .. 1 8 ) Ġ+ Ġ( 2 6 .. 3 5 ), ĠMaterial . GRAY _ ST AIN ED _ GL ASS _ P ANE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( listOf ( 1 5 , Ġ 2 4 ), ĠMaterial . GRAY _ ST AIN ED _ GL ASS _ P ANE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . sub List ( 0 , Ġ 5 . coerce At Most ( request . size )). forEach Indexed Ġ{ Ġindex , Ġrequest Item Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( 1 0 Ġ+ Ġindex , Ġrequest Item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( 4 Ġ< Ġrequest . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . sub List ( 5 , Ġ 1 0 . coerce At Most ( request . size )). forEach Indexed Ġ{ Ġindex , Ġrequest Item Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( 1 9 Ġ+ Ġindex , Ġrequest Item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( 1 6 , Ġitem ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( 2 5 , ĠMaterial . CR AFT ING _ TABLE , Ġ"& 6 ä½ľæĪĲ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( 3 1 , ĠMaterial . BAR RI ER , Ġ"& c éĸ ī ãģĺ ãĤĭ ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Other ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. open ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ( 4 9 , ĠMaterial . BAR RI ER , Ġ"& c éĸ ī ãģĺ ãĤĭ ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Root ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. open ( player ) ĊĠĠĠ Ġ} Ċ } Ċ