package Ġcom . w illiam bl . ha ema . compat . b ew itch ment Ċ Ċ import Ġcom . w illiam bl . ha ema . V amp irable Ċ import Ġcom . w illiam bl . ha ema . V amp ire Blood Manager Ċ import Ġcom . w illiam bl . ha ema . api . Blood Change Events Ċ import Ġcom . w illiam bl . ha ema . api . Blood Dr ink ing Events Ċ import Ġcom . w illiam bl . ha ema . api . Damage Source E ffic acy Event Ċ import Ġcom . w illiam bl . ha ema . api . client . V amp ire Hud Add Text Event Ċ import Ġm ori y ashi ine . b ew itch ment . api . B ew itch ment API Ċ import Ġm ori y ashi ine . b ew itch ment . api . component . Blood Component Ċ import Ġm ori y ashi ine . b ew itch ment . api . component . Transformation Component Ċ import Ġm ori y ashi ine . b ew itch ment . api . event .* Ċ import Ġm ori y ashi ine . b ew itch ment . client . B ew itch ment Client Ċ import Ġm ori y ashi ine . b ew itch ment . common . registry . B WD amage Sources Ċ import Ġm ori y ashi ine . b ew itch ment . common . registry . B WP led ges Ċ import Ġm ori y ashi ine . b ew itch ment . common . registry . BW Transform ations Ċ import Ġm ori y ashi ine . b ew itch ment . common . registry . BW Components Ċ import Ġnet . minecraft . entity . player . Player Entity Ċ import Ġnet . minecraft . text . Text Ċ import Ġnet . minecraft . text . Trans latable Text Ċ import Ġkotlin . math . ceil Ċ Ċ fun Ġregister B ew itch ment Event Listeners () Ġ{ ĊĠĠĠ Ġ// ĊĠĠĠ Ġ// Ġ== ĠB lood ĠSync ing Ġ== ĊĠĠĠ Ġ// ĊĊĠĠĠ Ġ// ĠSync Ġblood ĠB ew itch ment Ġ-> ĠHa ema ĊĠĠĠ ĠB lood Set Events . ON _ B LO OD _ SET . register ( Blood Set Events . On Set Blood Ġ{ Ġentity , Ġamount Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( entity Ġis ĠV amp irable Ġ&& Ġentity Ġis ĠPlayer Entity Ġ&& Ġentity . hun ger Manager Ġis ĠV amp ire Blood Manager ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( entity . hun ger Manager Ġas ĠV amp ire Blood Manager ). absolute Blood Level Ġ= Ġamount * 0 . 2 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠĠĠ Ġ// ĠSync Ġblood Ġchanges ĠHa ema Ġ-> ĠB ew itch ment ĊĠĠĠ ĠB lood Change Events . ON _ B LO OD _ ADD . register ( Blood Change Events . Add Blood Event Ġ{ Ġplayer , Ġamount Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( B ew itch ment API . is V amp ire ( player , Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB W Components . B LO OD _ COMPONENT . get ( player ). fill Blood ( ceil ( amount Ġ* Ġ 5 ). toInt (), Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠĠĠ Ġ// ĠSync Ġblood Ġchanges ĠHa ema Ġ-> ĠB ew itch ment ĊĠĠĠ ĠB lood Change Events . ON _ B LO OD _ REMOVE . register ( Blood Change Events . Remove Blood Event Ġ{ Ġplayer , Ġamount Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( B ew itch ment API . is V amp ire ( player , Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB W Components . B LO OD _ COMPONENT . get ( player ). drain Blood ( ceil ( amount Ġ* Ġ 5 ). toInt (), Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġ// ĊĠĠĠ Ġ// Ġ== ĠB lood ĠD rink ing Ġ== ĊĠĠĠ Ġ// ĊĊĠĠĠ Ġ// ĠLet ĠB ew itch ment Ġhandle Ġdrink ing ĊĠĠĠ ĠB lood Dr ink ing Events . CANCEL . register ( Blood Dr ink ing Events . Cancel Blood Dr ink Event Ġ{ Ġplayer , Ġworld , Ġhand , Ġtarget , Ġentity Hit Result Ġ-> ĊĠĠĠĠĠĠĠ Ġ! B ew itch ment API . is V amp ire ( player , Ġtrue ) ĊĠĠĠ Ġ}) ĊĠĠĠ Ġ// ĠGet Ġblood Ġfrom Ġm obs Ġbased Ġon ĠHa ema 's Ġtags ĊĠĠĠ ĠB lood S uck Events . B LO OD _ AMOUNT . register ( Blood S uck Events . Set Blood Amount Ġ{ Ġplayer , Ġtarget , Ġcurrent Blood To Give Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV amp ire Blood Manager . good Blood Tag . contains ( target . type ) Ġ-> Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV amp ire Blood Manager . medium Blood Tag . contains ( target . type ) Ġ-> Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV amp ire Blood Manager . po or Blood Tag . contains ( target . type ) Ġ-> Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġcurrent Blood To Give ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠĠĠ Ġ// ĠRun ĠHa ema Ġblood Ġdrink Ġevents Ġwhen ĠB ew itch ment Ġones Ġdo ĊĠĠĠ ĠB lood S uck Events . ON _ B LO OD _ SU CK . register ( Blood S uck Events . On Blood S uck Ġ{ Ġplayer , Ġtarget , Ġamount Ġ-> ĊĠĠĠĠĠĠĠ ĠB lood Dr ink ing Events . ON _ B LO OD _ DR INK . inv oker (). on Dr ink ( player , Ġtarget , Ġplayer . world ) ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġ// ĊĠĠĠ Ġ// Ġ== ĠMisc Ġ== ĊĠĠĠ Ġ// ĊĊĠĠĠ Ġ// ĠSync Ġv amp ir ism Ġstatus ĠB ew itch ment Ġ-> ĠHa ema ĊĠĠĠ ĠOn Transformation Set . EVENT . register ( On Transformation Set Ġ{ Ġplayer , Ġtransformation Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġtransformation Component Ġ= ĠB W Components . TRANS FORMATION _ COMPONENT . get ( player ) ĊĠĠĠĠĠĠĠ Ġif Ġ( transformation Ġ== ĠB W Transform ations . V AM PI RE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( player Ġas ĠV amp irable ). is V amp ire Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . is Permanent V amp ire Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( transformation Ġ!= ĠB W Transform ations . V AM PI RE Ġ&& Ġtransformation Component . transformation Ġ== ĠB W Transform ations . V AM PI RE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( player Ġas ĠV amp irable ). is V amp ire Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplayer . is Permanent V amp ire Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠĠĠ Ġ// ĠLet ĠHa ema Ġhandle Ġburn ing ĊĠĠĠ ĠAllow V amp ire Burn . EVENT . register ( Allow V amp ire Burn Ġ{ Ġplayer Ġ-> Ġfalse Ġ}) ĊĠĠĠ Ġ// ĠLet ĠHa ema Ġhandle Ġhe aling ĊĠĠĠ ĠAllow V amp ire He al . EVENT . register ( Allow V amp ire He al Ġ{ Ġplayer Entity , Ġis P led ged To L il ith Ġ-> Ġfalse Ġ}) ĊĊĠĠĠ Ġ// ĠMake ĠB ew itch ment 's Ġdamage Ġsources Ġeffective Ġagainst Ġv amp ires ĊĠĠĠ ĠDamage Source E ffic acy Event . EVENT . register ( Damage Source E ffic acy Event Ġ{ Ġsource , Ġworld Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( source Ġ== ĠB WD amage Sources . DE ATH Ġ|| Ġsource Ġ== ĠB WD amage Sources . MAGIC _ COPY Ġ|| Ġsource Ġ== ĠB WD amage Sources . SUN Ġ|| Ġsource Ġ== ĠB WD amage Sources . W ED N ES DAY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 . 2 5 f ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 f ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) Ċ } Ċ Ċ fun Ġregister B ew itch ment Client Event Listeners () Ġ{ ĊĠĠĠ ĠV amp ire Hud Add Text Event . EVENT . register ( V amp ire Hud Add Text Event Ġ{ Ġplayer , Ġcreate Text Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġtexts Ġ= Ġmutable ListOf < Text >() ĊĠĠĠĠĠĠĠ Ġif Ġ( B ew itch ment API . is V amp ire ( player , Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransformation Component Ġ= ĠB W Components . TRANS FORMATION _ COMPONENT . get ( player ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(!( transformation Component . is Alternate Form )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtexts . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ew itch ment Client . TRANS FORMATION _ ABILITY . bound Key Localized Text . copy (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTrans latable Text (" compat . b ew itch ment . gui . ha ema . h ud . transform ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtexts . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ew itch ment Client . TRANS FORMATION _ ABILITY . bound Key Localized Text . copy (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ew itch ment API . is P led ged ( player , ĠB WP led ges . LIL ITH ) Ġ&& ĠB W Components . B LO OD _ COMPONENT . get ( player ). blood Ġ> Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTrans latable Text (" compat . b ew itch ment . gui . ha ema . h ud . un transform ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn @ V amp ire Hud Add Text Event Ġtexts ĊĠĠĠ Ġ}) Ċ }