package Ġcom . github . sy ari . ss . w plugins . discord . api Ċ Ċ import Ġcom . github . sy ari . ss . w plugins . discord . api . entity . Message Ċ import Ġcom . github . sy ari . ss . w plugins . discord . api . rest . EndPoint Ċ import Ġcom . github . sy ari . ss . w plugins . discord . api . rest . RestClient Ċ import Ġcom . github . sy ari . ss . w plugins . discord . api . websocket . Gateway Client Ċ import Ġcom . google . gson . Gson Ċ import Ġorg . slf 4 j . Logger Ċ import Ġorg . slf 4 j . LoggerFactory Ċ Ċ internal Ġobject ĠDiscord API Ġ{ ĊĠĠĠ Ġconst Ġval ĠNAME Ġ= Ġ" Discord API " ĊĠĠĠ Ġconst Ġval ĠG ITHUB _ URL Ġ= Ġ" https :// github . com / Second Story Server / SS - Plugins " ĊĠĠĠ Ġconst Ġval ĠAPI _ VERSION Ġ= Ġ 6 ĊĊĠĠĠ Ġval ĠLOGGER : ĠLogger Ġ= ĠLoggerFactory . getLogger ( NAME ) ĊĠĠĠ Ġval ĠG SON Ġ= ĠGson () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠLOGGER . info ("$ NAME Ġ($ GITHUB _ URL )") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlateinit Ġvar Ġtoken : ĠString ĊĠĠĠ Ġlateinit Ġvar Ġmessage Receive Event : Ġ( Message ) Ġ-> ĠUnit ĊĠĠĠ Ġvar Ġstatus Ġ= ĠConnect Status . DIS CONNECTED ĊĊĠĠĠ Ġfun Ġlogin ( token : ĠString , Ġmessage Receive Event : Ġ( Message ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( status Ġ!= ĠConnect Status . DIS CONNECTED ) Ġthrow ĠIllegalStateException () ĊĠĠĠĠĠĠĠ Ġif Ġ( token . isBlank ()) Ġthrow ĠIllegalArgumentException ("") ĊĠĠĠĠĠĠĠ ĠDiscord API . token Ġ= Ġtoken ĊĠĠĠĠĠĠĠ ĠDiscord API . message Receive Event Ġ= Ġmessage Receive Event ĊĠĠĠĠĠĠĠ Ġstatus Ġ= ĠConnect Status . CONNECT ING ĊĠĠĠĠĠĠĠ ĠGateway Client . connect ( RestClient . request ( EndPoint . Get Gateway Bot ). as JsonObject [" url "]. asString ) ĊĠĠĠĠĠĠĠ Ġstatus Ġ= ĠConnect Status . CONNECTED ĊĠĠĠ Ġ} Ċ } Ċ