package Ġbas ura . command Ċ Ċ import Ġbas ura . Locale Message Ċ import Ġbas ura . Log 4 j 2 Ċ import Ġbas ura . bot Ċ import Ġbas ura . db . User Ċ import Ġbas ura . db . users Ċ import Ġbas ura . graphql . An i List Ċ import Ġbas ura . send Localized Ċ import Ġdev . min n . j da . k tx . await Ċ import Ġnet . dv 8 tion . j da . api . events . interaction . Slash Command Event Ċ import Ġorg . kode in . di . instance Ċ import Ġorg . kt orm . database . Database Ċ import Ġorg . kt orm . dsl . and Ċ import Ġorg . kt orm . dsl . eq Ċ import Ġorg . kt orm . entity . add Ċ import Ġorg . kt orm . entity . first OrNull Ċ Ċ suspend Ġfun Ġon Link ( event : ĠSl ash Command Event ) Ġ{ ĊĠĠĠ Ġval Ġlog Ġby ĠLog 4 j 2 (" Link ") ĊĠĠĠ Ġval Ġdb Ġby Ġbot . instance < Database >() ĊĠĠĠ Ġval Ġan i List Ġby Ġbot . instance < An i List >() ĊĊĠĠĠ Ġevent . defer Reply (). await () ĊĊĠĠĠ Ġ// ĠEnsure Ġin Ġguild ĊĠĠĠ Ġif Ġ( event . is Direct Message ) Ġ{ ĊĠĠĠĠĠĠĠ Ġevent . send Localized ( Locale Message . Link . Server Only Error , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġguild Ġ= Ġevent . guild Context . guild ĊĠĠĠ Ġval Ġusername Ġ= Ġevent . getOption (" username ") !!. asString . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . debug (" Link ing ĠAn i List Ġuser Ġ[ Ġ$ this Ġ] Ġto ĠDiscord Ġ[ Ġuser Ġ= Ġ${ event . user . name }, Ġguild Ġ= Ġ${ guild . name } Ġ] ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġexisting User Ġ= Ġdb . users . first OrNull Ġ{ ĊĠĠĠĠĠĠĠ Ġ( it . discord Id Ġeq Ġevent . user . id Long ) Ġand Ġ( it . discord Guild Id Ġeq Ġguild . id Long ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( existing User Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġevent . send Localized ( Locale Message . Link . Already Linked ) ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġuser Ġ= Ġan i List . find User ByName ( username ) ĊĊĠĠĠ Ġif Ġ( user Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġevent . send Localized ( Locale Message . User . NotFoundError ) ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdb . users . add ( ĊĠĠĠĠĠĠĠ ĠUser Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġan i List Id Ġ= Ġuser . id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġan i List Username Ġ= Ġuser . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiscord Id Ġ= Ġevent . user . id Long ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiscord Guild Id Ġ= Ġguild . id Long ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġevent . send Localized ( Locale Message . Link . Successful ) Ċ } Ċ