package Ġcom . cout 9 7 0 . f ira . modules Ċ Ċ import Ġcom . cout 9 7 0 . f ira . Config Ċ import Ġcom . cout 9 7 0 . f ira . util . Utils Ċ import Ġnet . minecraft . client . Minecraft Ċ import Ġnet . minecraft . client . entity . Entity Player SP Ċ import Ġnet . minecraft . client . gui . Gui In game Ċ import Ġnet . minecraft . client . resources . I 1 8 n Ċ import Ġnet . minecraft . init . Items Ċ import Ġnet . minecraft . inventory . Click Type Ċ import Ġnet . minecraft . util . math . Math Helper Ċ import Ġnet . minecraft . util . text . Text Formatting Ċ import Ġorg . lwjgl . input . Keyboard Ċ import Ġkotlin . math . min Ċ import Ġkotlin . math . sqrt Ċ Ċ object ĠE ly tra Fly Ġ{ ĊĊĠĠĠ Ġ// ĠN Ãºmero Ġde Ġticks Ġa Ġde jar Ġca er Ġpara Ġque Ġel Ġpi lo to Ġautomatic o Ġsub a Ġa Ġla Ġpos icion Ġa dec u ada ĊĠĠĠ Ġvar Ġauto Pilot Ascending Ġ= Ġ 0 ĊĊĠĠĠ Ġfun Ġh ud (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġplayer Ġ= ĠMinecraft . getM inecraft (). player Ġ?: Ġreturn Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġel y tra Ġ= Ġplayer . inventory . armor Inventory [ 2 ] ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ" E ly tra Fly Ġ${ ely tra . max Damage Ġ- Ġel y tra . item Damage }" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpre E ly tra Travel Hook ( entity : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( entity Ġis ĠEntity Player SP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Config . E ly tra Fly . enable ) ĠConfig . E ly tra Fly . move Facing Ġelse Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġel y tra Travel Hook ( entity : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( entity Ġis ĠEntity Player SP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Player Pre E ly tra Travel ( entity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Player Pre E ly tra Travel ( player : ĠEntity Player SP ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! can Fly ()) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġscreen Ġ= ĠMinecraft . getM inecraft (). current Screen ĊĠĠĠĠĠĠĠ Ġval Ġin Menu Ġ= Ġscreen Ġ!= Ġnull Ġ&& Ġscreen . does Gui Pause Game () ĊĠĠĠĠĠĠĠ Ġval Ġallow Desc end Ġ= Ġ! Config . E ly tra Fly . lock Controls Ġ&& Ġ( screen Ġ== Ġnull Ġ|| Ġscreen Ġis ĠGui In game ) Ġ&& ĠUtils . mc . player Ġ== ĠUtils . mc . render View Entity ĊĠĠĠĠĠĠĠ Ġval Ġvanilla Fly Ġ= ĠConfig . E ly tra Fly . ely tra Fly Control . isActive () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Config . E ly tra T weak s . swap E ly tras Ġ&& ĠConfig . E ly tra T weak s . swap E ly tra By Time Ġ> Ġ 0 Ġ&& Ġplayer . world . total World Time Ġ% ĠConfig . E ly tra T weak s . swap E ly tra By Time Ġ== Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġswap E ly tras () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġforward Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin Menu Ġ-> Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! van illa Fly Ġ&& ĠConfig . Auto Fly . enable Ġ-> Ġ 1 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! van illa Fly Ġ&& Ġplayer . movement Input . forward KeyDown Ġ-> Ġ 1 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! van illa Fly Ġ&& Ġplayer . movement Input . back KeyDown Ġ-> Ġ- 1 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġside Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin Menu Ġ-> Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . movement Input . left KeyDown Ġ-> Ġ 1 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . movement Input . right KeyDown Ġ-> Ġ- 1 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 0 . 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Config . Debug . debug Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspeed Ġ= Ġwhen Ġ( player . world . total World Time Ġ% Ġ 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 L , Ġ 1 L , Ġ 2 L Ġ-> Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 L , Ġ 4 L , Ġ 5 L Ġ-> Ġ 3 6 Ġ/ Ġ 2 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ- 3 6 Ġ/ Ġ 2 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf 1 Ġ= ĠMath Helper . sin ( player . rotation Y aw Ġ* Ġ 0 . 0 1 7 4 5 3 2 9 2 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf 2 Ġ= ĠMath Helper . cos ( player . rotation Y aw Ġ* Ġ 0 . 0 1 7 4 5 3 2 9 2 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . motion X Ġ= Ġ( speed Ġ* Ġf 2 Ġ- Ġ 0 Ġ* Ġf 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . motion Z Ġ= Ġ( 0 Ġ* Ġf 2 Ġ+ Ġspeed Ġ* Ġf 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Motion Ġ= Ġsqrt ( player . motion X Ġ* Ġplayer . motion X Ġ+ Ġplayer . motion Z Ġ* Ġplayer . motion Z ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmax Ġ= ĠConfig . E ly tra Fly . movement Speed Ġ/ Ġ 2 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠM ant ener Ġel Ġlim ite Ġen Ġdiag on ales ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Motion Ġ> Ġmax ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . motion X Ġ*= Ġmax Ġ/ Ġnew Motion ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . motion Z Ġ*= Ġmax Ġ/ Ġnew Motion ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( forward Ġ!= Ġ 0 . 0 Ġ|| Ġside Ġ!= Ġ 0 . 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmax Ġ= ĠConfig . E ly tra Fly . movement Speed Ġ/ Ġ 2 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmult Ġ= Ġ( Config . E ly tra Fly . acceleration Speed Ġ/ Ġ 2 0 . 0 ). coerce In ( 0 . 0 , Ġmax ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf 1 Ġ= ĠMath Helper . sin ( player . rotation Y aw Ġ* Ġ 0 . 0 1 7 4 5 3 2 9 2 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf 2 Ġ= ĠMath Helper . cos ( player . rotation Y aw Ġ* Ġ 0 . 0 1 7 4 5 3 2 9 2 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdir X Ġ= Ġ( side Ġ* Ġf 2 Ġ- Ġforward Ġ* Ġf 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdir Z Ġ= Ġ( forward Ġ* Ġf 2 Ġ+ Ġside Ġ* Ġf 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . motion X Ġ= Ġmin ( max , Ġplayer . motion X Ġ+ Ġmult Ġ* Ġdir X ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . motion Z Ġ= Ġmin ( max , Ġplayer . motion Z Ġ+ Ġmult Ġ* Ġdir Z ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Motion Ġ= Ġsqrt ( player . motion X Ġ* Ġplayer . motion X Ġ+ Ġplayer . motion Z Ġ* Ġplayer . motion Z ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠM ant ener Ġel Ġlim ite Ġen Ġdiag on ales ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Motion Ġ> Ġmax ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . motion X Ġ*= Ġmax Ġ/ Ġnew Motion ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . motion Z Ġ*= Ġmax Ġ/ Ġnew Motion ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Config . E ly tra Fly . keep In ertia Ġ|| ĠConfig . E ly tra Fly . ely tra Fly Stop . isActive ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . motion X Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . motion Z Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(! van illa Fly ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . motion X Ġ-= Ġplayer . motion X Ġ* ĠConfig . E ly tra Fly . air Drag ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . motion Z Ġ-= Ġplayer . motion Z Ġ* ĠConfig . E ly tra Fly . air Drag ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġplayer . motion Y Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDebug Ġmode ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfig . Debug . debug Mode Ġ-> Ġif Ġ( player . world . total World Time Ġ% Ġ 9 Ġ== Ġ 1 L ) Ġ 1 . 0 Ġelse Ġ- 0 . 0 0 0 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠEn Ġun Ġmenu ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin Menu Ġ-> Ġ- Config . E ly tra Fly . ely tra Fly Fall . toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠEn Ġchat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! allow Desc end Ġ-> Ġ- Config . E ly tra Fly . ely tra Fly Fall . toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠS low Ġfall ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKeyboard . is KeyDown ( Keyboard . KEY _ L SHIFT ) Ġ&& ĠKeyboard . is KeyDown ( Keyboard . KEY _ L CONTROL ) Ġ-> Ġ- 0 . 0 2 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠF aster Ġfall ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKeyboard . is KeyDown ( Keyboard . KEY _ L SHIFT ) Ġ-> Ġ- 0 . 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNormal Ġfly ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvanilla Fly Ġ|| Ġauto Pilot Ascending Ġ> Ġ 0 Ġ-> Ġplayer . motion Y ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠBase Ġfall Ġspeed ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ- Config . E ly tra Fly . ely tra Fly Fall . toDouble () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( auto Pilot Ascending Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauto Pilot Ascending -- ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcan Fly (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! Config . E ly tra Fly . enable ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġplayer Ġ= ĠMinecraft . getM inecraft (). player Ġ?: Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ// ĠIgn or ar Ġsi Ġel Ġj ug ador Ġno Ġtiene Ġel y tra ĊĠĠĠĠĠĠĠ Ġif Ġ(! has E ly tra ( player )) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ// ĠDes h abil ita Ġcuando Ġse Ġac aba Ġla Ġdur abil idad Ġde Ġlas Ġel y tras ĊĠĠĠĠĠĠĠ Ġif Ġ(! has Chest plate Dur ability ( player , ĠConfig . E ly tra T weak s . ely tra Min Dur ability )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Config . E ly tra T weak s . swap E ly tras ) Ġswap E ly tras () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . with Cooldown (" swap E ly tras Msg ", Ġ 2 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . run Later ( 2 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! has Chest plate Dur ability ( player , ĠConfig . E ly tra T weak s . ely tra Min Dur ability )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . chat Msg ("${ Text Formatting . RED }${ I 1 8 n . format (" text . f ira _ client . ely tra _ fly . warning 1 ") }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . ping () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConfig . E ly tra Fly . enable Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhas E ly tra ( player : ĠEntity Player SP ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġche st plate Ġ= Ġplayer . inventory . armor Inventory [ 2 ] ĊĠĠĠĠĠĠĠ Ġreturn Ġ! che st plate . isEmpty Ġ&& Ġche st plate . item Ġ== ĠItems . ELY TRA ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhas Chest plate Dur ability ( player : ĠEntity Player SP , Ġamount : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġche st plate Ġ= Ġplayer . inventory . armor Inventory [ 2 ] ĊĠĠĠĠĠĠĠ Ġreturn Ġ! che st plate . isEmpty Ġ&& Ġche st plate . item Damage Ġ< Ġche st plate . max Damage Ġ- Ġamount ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġswap E ly tras () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠUtils . mc . player Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= Ġmutable ListOf < Pair < Int , ĠInt >>() ĊĊĠĠĠĠĠĠĠ Ġrepeat ( 9 Ġ* Ġ 3 ) Ġ{ Ġslot Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstack Ġ= Ġp . inventory . main Inventory [ 9 Ġ+ Ġslot ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! stack . isEmpty Ġ&& Ġstack . item Ġ== ĠItems . ELY TRA Ġ&& Ġ( stack . max Damage Ġ- Ġstack . item Damage ) Ġ> ĠConfig . E ly tra T weak s . ely tra Min Dur ability ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Ġ+= Ġ( 9 Ġ+ Ġslot ) Ġto Ġ( stack . max Damage Ġ- Ġstack . item Damage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrepeat ( 9 ) Ġ{ Ġslot Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstack Ġ= Ġp . inventory . main Inventory [ slot ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! stack . isEmpty Ġ&& Ġstack . item Ġ== ĠItems . ELY TRA Ġ&& Ġ( stack . max Damage Ġ- Ġstack . item Damage ) Ġ> ĠConfig . E ly tra T weak s . ely tra Min Dur ability ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Ġ+= Ġ( 3 6 Ġ+ Ġslot ) Ġto Ġ( stack . max Damage Ġ- Ġstack . item Damage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( options . isEmpty ()) Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġslot Ġ= Ġoptions . max By Ġ{ Ġit . second Ġ} ?. first Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ ĠUtils . mc . player Controller ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. window Click ( p . inventory Container . window Id , Ġ 6 , Ġ 0 , ĠClick Type . QU ICK _ MOVE , Ġp ) ĊĊĠĠĠĠĠĠĠ ĠUtils . mc . player Controller ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. window Click ( p . inventory Container . window Id , Ġslot , Ġ 0 , ĠClick Type . QU ICK _ MOVE , Ġp ) ĊĠĠĠ Ġ} Ċ }