package Ġpro . d arc . cake . utils čĊč Ċ import Ġcom . google . common . io . Byte Streams č Ċ import Ġorg . bukkit . entity . Player č Ċ import Ġpro . d arc . cake . core . controller . provide B ungee C ord Controller č Ċ import Ġpro . d arc . cake . module . extensions . send B ungee C ord čĊč Ċ type alias ĠResponse Callback Ġ= Ġ( message : ĠByteArray ) Ġ-> ĠUnit čĊč Ċ class ĠB ungee C ord Request ( čĊĠĠĠ Ġval Ġplayer : ĠPlayer , čĊĠĠĠ Ġval Ġsub Channel : ĠString , čĊĠĠĠ Ġval Ġrequest : ĠByteArray ? Ġ= Ġnull , čĊĠĠĠ Ġval Ġresponse Callback : ĠResponse Callback ? Ġ= Ġnull č Ċ ) Ġ{ čĊĠĠĠ Ġfun Ġsend () Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġout Ġ= ĠByte Streams . new Data Output () čĊĠĠĠĠĠĠĠ Ġout . write UTF ( sub Channel ) čĊĠĠĠĠĠĠĠ Ġif Ġ( request Ġ!= Ġnull ) Ġout . write ( request ) čĊčĊĠĠĠĠĠĠĠ Ġplayer . send B ungee C ord ( out . toByteArray ()) čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( response Callback Ġ!= Ġnull ) Ġprovide B ungee C ord Controller (). addTo Queue ( this ) čĊĠĠĠ Ġ} č Ċ } čĊ