package Ġnet . edu ard . api . lib . menu Ċ Ċ import Ġnet . edu ard . api . lib . modules . Copy able Ċ import Ġnet . edu ard . api . lib . modules . Extra Ċ import Ġnet . edu ard . api . lib . modules . Mine Ċ import Ġorg . bukkit . inventory . Inventory Ċ import Ġorg . bukkit . inventory . ItemStack Ċ import Ġjava . io . Serializable ĊĊ Ċ open Ġclass ĠSlot ( ĊĠĠĠĠĠĠĠ Ġvar Ġposition X Ġ: ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠ Ġvar Ġposition Y Ġ: ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠ Ġvar Ġitem : ĠItemStack ? Ġ= Ġnull Ċ Ċ ) Ġ: ĠSerializable Ġ{ ĊĊĠĠĠ Ġvar Ġeffects : ĠEffect Manager ? Ġ= Ġnull ĊĊĠĠĠ Ġconstructor ( item : ĠItemStack ?, Ġindex : ĠInt ) Ġ: Ġthis ( item Ġ= Ġitem ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . index Ġ= Ġindex ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġslot : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġindex ĊĊĠĠĠ Ġvar Ġindex : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠExtra . getIndex ( position X , Ġposition Y ) ĊĠĠĠĠĠĠĠ Ġset ( index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition X Ġ= ĠExtra . getColumn ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition Y Ġ= ĠExtra . getLine ( index ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġconstructor ( item : ĠItemStack ?, Ġposition X : ĠInt , Ġposition Y : ĠInt ) Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis ( position X , position Y , item ) ĊĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ== Ġnull ) return Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġis ĠSlot ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġposition X Ġ== Ġother . position X Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition Y Ġ== Ġother . position Y ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġis ĠItemStack ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis . item Ġ== Ġother ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġset Slot ( slot : ĠSlot ) Ġ{ ĊĠĠĠĠĠĠĠ Ġindex Ġ= Ġslot . index ĊĠĠĠĠĠĠĠ Ġitem Ġ= Ġslot . item ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġcopy (): ĠSlot Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCopy able . copy Object ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Position ( coll umn : ĠInt , Ġline : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġposition X Ġ= Ġcoll umn ĊĠĠĠĠĠĠĠ Ġposition Y Ġ= Ġline ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgive ( inventory : ĠInventory ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinventory . setItem ( index , Ġitem ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgive ( menu : ĠInventory , Ġplaceholders : ĠMap < String ?, ĠString ?> ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclone Ġ= Ġitem ?. clone () ĊĠĠĠĠĠĠĠ ĠM ine . apply Place holders ( clone , Ġplaceholders ) ĊĠĠĠĠĠĠĠ Ġmenu . setItem ( index , Ġclone ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġposition X ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġposition Y ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ Ċ }