package Ġorg . kotlin mc . bukkit . utils Ċ Ċ import Ġorg . kotlin mc . bukkit . controllers . provide B ungee C ord Controller Ċ import Ġorg . kotlin mc . bukkit . extensions . send B ungee C ord Ċ import Ġcom . google . common . io . Byte Streams Ċ import Ġorg . bukkit . entity . Player Ċ Ċ 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 ) ĊĠĠĠ Ġ} Ċ }