package Ġju ux el . ad orn . trading Ċ Ċ import Ġju ux el . ad orn . util . N bt Convert ible Ċ import Ġnet . minecraft . item . ItemStack Ċ import Ġnet . minecraft . nbt . N bt Compound Ċ Ċ data Ġclass ĠTrade ( var Ġsell ing : ĠItemStack , Ġvar Ġprice : ĠItemStack ) Ġ: ĠNbt Convert ible Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlisteners : ĠMutable List < Trade Listener > Ġ= ĠArrayList () ĊĊĠĠĠ Ġfun ĠisEmpty () Ġ= Ġsell ing . isEmpty Ġ|| Ġprice . isEmpty ĊĊĠĠĠ Ġoverride Ġfun Ġread N bt ( nbt : ĠNbt Compound ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsell ing Ġ= ĠItemStack . from N bt ( nbt . get Compound (" Sell ing ")) ĊĠĠĠĠĠĠĠ Ġprice Ġ= ĠItemStack . from N bt ( nbt . get Compound (" Price ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġwrite N bt ( nbt : ĠNbt Compound ) Ġ= Ġn bt . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġput (" Sell ing ", Ġsell ing . write N bt ( N bt Compound ())) ĊĠĠĠĠĠĠĠ Ġput (" Price ", Ġprice . write N bt ( N bt Compound ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Listener ( listener : ĠTrade Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlisteners Ġ+= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcall Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( listener Ġin Ġlisteners ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Trade Changed ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreates Ġa Ġmod ifiable Ġinventory Ġfor Ġthis Ġtrade . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate Inventory () Ġ= ĠTrade Inventory ( this ) ĊĊĠĠĠ Ġfun Ġinterface ĠTrade Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Trade Changed ( trade : ĠTrade ) ĊĠĠĠ Ġ} Ċ } Ċ