package Ġorg . spongepowered . m ct ester . internal . coroutine Ċ Ċ import Ġorg . spongepowered . api . Sp onge Ċ import Ġorg . spongepowered . m ct ester . internal . Mc Tester Dummy Ċ import Ġorg . spongepowered . m ct ester . internal . Tick Constants Ċ import Ġjava . util . concurrent . Comp letableFuture Ċ import Ġkotlin . coroutines . Continuation Ċ import Ġkotlin . coroutines . resume Ċ import Ġkotlin . coroutines . resume With Exception Ċ import Ġkotlin . coroutines . suspend Coroutine Ċ Ċ class ĠCor outine TestUtils Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġsuspend Ġfun ĠwaitFor Inventory Propagation () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwait Ticks ( Tick Constants . IN VENT ORY _ PROP AG ATION _ T IC KS ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ suspend Ġfun Ġwait Ticks ( ticks : ĠInt ) Ġ{ ĊĠĠĠ Ġval Ġfuture Ġ= ĠCompletableFuture < Void >() ĊĊĠĠĠ ĠSp onge . get Scheduler (). create Task Builder (). delay Ticks ( ticks . to Long ()). execute ( Runnable Ġ{ Ġfuture . complete ( null ) Ġ}). submit ( Mc Tester Dummy . INSTANCE ) ĊĠĠĠ Ġfuture . await () ĊĠĠĠ Ġprintln (" Done !") Ċ } ĊĊ Ċ // ĠCop ied Ġfrom Ġhttps :// github . com / Kotlin / kotlin - coroutines / blob / e 8 1 8 4 8 3 1 6 1 7 4 2 2 8 0 d 0 ea 3 0 0 fbc 6 6 6 6 2 0 b 2 db ac de / examples / future / await . kt Ċ suspend Ġfun Ġ< T > ĠCompletableFuture < T >. await (): ĠT Ġ= ĊĠĠĠĠĠĠĠ Ġsuspend Coroutine Ġ{ Ġcont : ĠContinu ation < T > Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Complete Ġ{ Ġresult , Ġexception Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( exception Ġ== Ġnull ) Ġ// Ġthe Ġfuture Ġhas Ġbeen Ġcompleted Ġnormally ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcont . resume ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ// Ġthe Ġfuture Ġhas Ġcompleted Ġwith Ġan Ġexception ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcont . resume With Exception ( exception ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ