package Ġio . github . cot ton mc . ley lines . inventory Ċ Ċ import Ġnet . minecraft . inventory . Inventory Ċ import Ġnet . minecraft . item . ItemStack Ċ Ċ class ĠW atched Inventory ( private Ġval Ġroot Inv : ĠInventory , Ġprivate Ġval Ġlistener : ĠInventory Listener ) Ġ: ĠInventory Ġby Ġroot Inv Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġtake Inv Stack ( var 1 : ĠInt , Ġvar 2 : ĠInt ): ĠItemStack Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġroot Inv . take Inv Stack ( var 1 , Ġvar 2 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= ĠItemStack . EMPTY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . watch ( root Inv ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove Inv Stack ( var 1 : ĠInt ): ĠItemStack { ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġroot Inv . remove Inv Stack ( var 1 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= ĠItemStack . EMPTY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . watch ( root Inv ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Inv Stack ( var 1 : ĠInt , Ġvar 2 : ĠItemStack ){ ĊĠĠĠĠĠĠĠ Ġval Ġitem Stack Ġ= Ġroot Inv [ var 1 ] ĊĠĠĠĠĠĠĠ Ġroot Inv . set Inv Stack ( var 1 , var 2 ) ĊĠĠĠĠĠĠĠ Ġif (! item Stack . equals ( var 2 )){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . watch ( root Inv ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġinterface ĠInventory Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġwatch ( inv : ĠInventory ) ĊĠĠĠ Ġ} Ċ }