@ file : Suppress (" UN CHECK ED _ CAST ") Ċ Ċ package Ġcom . github . sh yn ix n . pet blocks . bukkit Ċ Ċ import Ġcom . github . sh yn ix n . pet blocks . api . business . enumeration . Version Ċ import Ġcom . github . sh yn ix n . pet blocks . api . business . proxy . Plugin Proxy Ċ import Ġcom . github . sh yn ix n . pet blocks . api . business . serializer . ItemStack Serializer Ċ import Ġcom . github . sh yn ix n . pet blocks . api . business . service .* Ċ import Ġcom . github . sh yn ix n . pet blocks . api . persistence . context . Sql DbContext Ċ import Ġcom . github . sh yn ix n . pet blocks . api . persistence . repository . Pet Meta Repository Ċ import Ġcom . github . sh yn ix n . pet blocks . bukkit . logic . business . serializer . ItemStack Serializer Impl Ċ import Ġcom . github . sh yn ix n . pet blocks . bukkit . logic . business . service .* Ċ import Ġcom . github . sh yn ix n . pet blocks . core . logic . business . service .* Ċ import Ġcom . github . sh yn ix n . pet blocks . core . logic . persistence . context . Sql DbContext Impl Ċ import Ġcom . github . sh yn ix n . pet blocks . core . logic . persistence . repository . Pet Meta Sql Repository Ċ import Ġcom . google . inject . Abstract Module Ċ import Ġcom . google . inject . Scopes Ċ import Ġorg . bukkit . plugin . Plugin Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠSh yn ix n Ġ 2 0 1 8 . Ċ Ġ* Ġ< p > Ċ Ġ* ĠVersion Ġ 1 . 2 Ċ Ġ* Ġ< p > Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ġ< p > Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 Ġby ĠSh yn ix n Ċ Ġ* Ġ< p > Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ġ< p > Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ġ< p > Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ class ĠPet Blocks DependencyInjection Binder ( private Ġval Ġplugin : ĠPet Blocks Plugin ) Ġ: ĠAbstract Module () Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConfig ures Ġthe Ġbusiness Ġlogic Ġtree . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġconfigure () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġplugin . getServer Version () ĊĊĠĠĠĠĠĠĠ Ġbind ( Plugin :: class . java ). to Instance ( plugin ) ĊĠĠĠĠĠĠĠ Ġbind ( Version :: class . java ). to Instance ( version ) ĊĠĠĠĠĠĠĠ Ġbind ( Plugin Proxy :: class . java ). to Instance ( plugin ) ĊĠĠĠĠĠĠĠ Ġbind ( Logging Service :: class . java ). to Instance ( Logging Util ServiceImpl ( plugin . logger )) ĊĊĠĠĠĠĠĠĠ Ġ// ĠRe positories ĊĠĠĠĠĠĠĠ Ġbind ( Pet Meta Repository :: class . java ). to ( Pet Meta Sql Repository :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠServices ĊĠĠĠĠĠĠĠ Ġbind ( Sql DbContext :: class . java ). to ( Sql DbContext Impl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( AI Service :: class . java ). to ( AI ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( C arry Pet Service :: class . java ). to ( C arry Pet ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Combat Pet Service :: class . java ). to ( Combat Pet ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Feed ing Pet Service :: class . java ). to ( Feed Pet ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Health Service :: class . java ). to ( Health ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Persistence Pet Meta Service :: class . java ). to ( Persistence Pet Meta ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Pet Action Service :: class . java ). to ( Pet Action ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Pet Service :: class . java ). to ( Pet ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Update Check Service :: class . java ). to ( Update Check ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Yaml Serialization Service :: class . java ). to ( Yaml Serialization ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Pet Debug Service :: class . java ). to ( Pet Debug ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Command Service :: class . java ). to ( Command ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Concurrency Service :: class . java ). to ( Concurrency ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Configuration Service :: class . java ). to ( Configuration ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Dependency Head Database Service :: class . java ). to ( Dependency Head Database ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Dependency Service :: class . java ). to ( Dependency ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Entity Service :: class . java ). to ( Entity ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Event Service :: class . java ). to ( Event ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( GUI Service :: class . java ). to ( GUI ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( ItemType Service :: class . java ). to ( ItemType ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Message Service :: class . java ). to ( Message ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Navigation Service :: class . java ). to ( Navigation ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Particle Service :: class . java ). to ( Particle ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Proxy Service :: class . java ). to ( Proxy ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Sound Service :: class . java ). to ( Sound ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( GUI Item Load Service :: class . java ). to ( GUI Item Load ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( Yaml Service :: class . java ). to ( Yaml ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( GU IP et Storage Service :: class . java ). to ( GU IP et Storage ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġbind ( ItemStack Serializer :: class . java ). to ( ItemStack Serializer Impl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion . is Version Same Or GreaterThan ( Version . VERSION _ 1 _ 1 4 _ R 1 ) Ġ-> Ġbind ( Entity Registration Service :: class . java ). to ( Entity Registration 1 1 4 R 1 ServiceImpl :: class . java ). ` in `( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS copes . SINGLE TON ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion . is Version Same Or GreaterThan ( Version . VERSION _ 1 _ 1 3 _ R 2 ) Ġ-> Ġbind ( Entity Registration Service :: class . java ). to ( Entity Registration 1 1 3 R 2 ServiceImpl :: class . java ). ` in `( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS copes . SINGLE TON ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion . is Version Same Or GreaterThan ( Version . VERSION _ 1 _ 1 3 _ R 1 ) Ġ-> Ġbind ( Entity Registration Service :: class . java ). to ( Entity Registration 1 1 3 R 1 ServiceImpl :: class . java ). ` in `( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS copes . SINGLE TON ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion . is Version Same Or GreaterThan ( Version . VERSION _ 1 _ 1 1 _ R 1 ) Ġ-> Ġbind ( Entity Registration Service :: class . java ). to ( Entity Registration 1 1 1 R 1 ServiceImpl :: class . java ). ` in `( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS copes . SINGLE TON ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġbind ( Entity Registration Service :: class . java ). to ( Entity Registration 1 8 R 1 ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion . is Version Same Or GreaterThan ( Version . VERSION _ 1 _ 9 _ R 1 ) Ġ-> Ġbind ( Hand Service :: class . java ). to ( Hand 1 9 R 1 ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġbind ( Hand Service :: class . java ). to ( Hand 1 8 R 1 ServiceImpl :: class . java ). ` in `( Scopes . SINGLE TON ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }