package Ġgg . r sm od . plugins . content . magic . tele ports Ċ Ċ import Ġgg . r sm od . plugins . content . magic .* Ċ import Ġgg . r sm od . plugins . content . magic . Magic Spell s . on _ magic _ spell _ button Ċ Ċ private Ġval ĠSO UND AREA _ ID Ġ= Ġ 2 0 0 Ċ private Ġval ĠSO UND AREA _ RADIUS Ġ= Ġ 1 0 Ċ private Ġval ĠSO UND AREA _ VOLUME Ġ= Ġ 1 Ċ Ċ Teleport Spell . values . forEach Ġ{ Ġtele port Ġ-> ĊĠĠĠ Ġif Ġ( tele port . param Item Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon _ magic _ spell _ button ( tele port . spell Name ) Ġ{ Ġmetadata Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . tele port ( tele port , Ġmetadata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmetadata Ġ= ĠMagic Spell s . getMetadata ( tele port . param Item ) !! ĊĠĠĠĠĠĠĠ Ġon Button ( metadata . interface Id , Ġmetadata . component ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . tele port ( tele port , Ġmetadata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ on _ magic _ spell _ button (" Resp awn ĠTele port ") Ġ{ Ġmetadata Ġ-> ĊĠĠĠ Ġplayer . tele port ( Teleport Type . AR CE U US , Ġworld . game Context . home , Ġ 2 7 . 0 , Ġmetadata ) Ċ } Ċ Ċ fun ĠPlayer . tele port ( spell : ĠTele port Spell , Ġdata : ĠSpell Metadata ) Ġ= Ġtele port ( spell . type , Ġspell . end Area . random Tile , Ġspell . xp , Ġdata ) Ċ Ċ fun ĠPlayer . tele port ( type : ĠTele port Type , Ġend Tile : ĠTile , Ġxp : ĠDouble , Ġdata : ĠSpell Metadata ) Ġ{ ĊĠĠĠ Ġif Ġ(! Magic Spell s . can Cast ( this , Ġdata . lvl , Ġdata . items , Ġdata . spell book )) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( can Teleport ( type )) Ġ{ ĊĠĠĠĠĠĠĠ ĠMagic Spell s . remove Run es ( this , Ġdata . items ) ĊĠĠĠĠĠĠĠ Ġtele port ( end Tile , Ġtype ) ĊĠĠĠĠĠĠĠ Ġadd Xp ( Skills . MAGIC , Ġxp ) ĊĠĠĠĠĠĠĠ Ġworld . spawn ( Area Sound ( tile , ĠSO UND AREA _ ID , ĠSO UND AREA _ RADIUS , ĠSO UND AREA _ VOLUME )) ĊĠĠĠ Ġ} Ċ }