package Ġnet . az zy . forgot ten . registry Ċ Ċ import Ġcom . google . common . collect . Hash Bi Map Ċ import Ġnet . az zy . forgot ten . entity . Projectile Spell Entity Ċ import Ġnet . az zy . forgot ten . registry . spell Types . Collision Spell s Ċ import Ġnet . az zy . forgot ten . util . context . Context Consumer Ċ import Ġnet . az zy . forgot ten . util . context . Spell Context Ċ import Ġnet . az zy . forgot ten . util . spell . Spell Struct Ċ import Ġnet . minecraft . item . Item Ċ import Ġnet . minecraft . util . Identifier Ċ Ċ private Ġtype alias ĠSpell Context Consumer Ġ= Ġ ĠContext Consumer < Spell Context . Spell Package < Projectile Spell Entity >, ĠSpell Context > Ċ Ċ object ĠSpell Registry Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġspell s Ġ= ĠHash Bi Map . create < Identifier , ĠSpell Struct >() ĊĠĠĠ Ġprivate Ġval Ġspell Keys Ġ= Ġhash Map Of < Item , ĠSpell Struct >() ĊĊĠĠĠ Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ ĠCollision Spell s . init () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġget ( id : ĠIdentifier ): ĠSpell Struct ? Ġ= Ġspell s [ id ] ĊĠĠĠ Ġoperator Ġfun Ġget ( key : ĠItem ): ĠSpell Struct ? Ġ= Ġspell Keys [ key ] ĊĠĠĠ Ġoperator Ġfun Ġget ( spell : ĠSpell Struct ): ĠIdentifier Ġ= Ġspell s . inverse ()[ spell ] !! ĊĊĠĠĠ Ġoperator Ġfun Ġcontains ( id : ĠIdentifier ): ĠBoolean Ġ= Ġid Ġin Ġspell s ĊĠĠĠ Ġoperator Ġfun Ġcontains ( key : ĠItem ): ĠBoolean Ġ= Ġkey Ġin Ġspell Keys ĊĊĠĠĠ Ġoperator Ġfun Ġset ( id : ĠIdentifier , Ġspell : ĠSpell Struct ) Ġ{ ĊĠĠĠĠĠĠĠ Ġspell s [ id ] Ġ= Ġspell ĊĠĠĠĠĠĠĠ Ġspell Keys [ spell . key ] Ġ= Ġspell ĊĠĠĠ Ġ} Ċ }