/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠRen ĠBind en Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . r pk it . players . bukkit . servlet . api . v 1 Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . r pk it . core . web . RP K Servlet Ċ import Ġcom . r pk it . players . bukkit . RP K Players Bu kkit Ċ import Ġcom . r pk it . players . bukkit . profile . RP K IRC Profile Impl Ċ import Ġcom . r pk it . players . bukkit . profile . RP K IRC Profile Provider Ċ import Ġcom . r pk it . players . bukkit . profile . RP K Profile Ċ import Ġcom . r pk it . players . bukkit . profile . RP K Profile Provider Ċ import Ġjavax . servlet . http . HttpServletRequest Ċ import Ġjavax . servlet . http . HttpServletResponse Ċ import Ġjavax . servlet . http . HttpServletResponse .* ĊĊ Ċ class ĠIRC Profile API Servlet ( private Ġval Ġplugin : ĠRP K Players Bu kkit ): ĠRP K Servlet () Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġurl Ġ= Ġ"/ api / v 1 / irc profile /* " ĊĊĠĠĠ Ġoverride Ġfun Ġdo Get ( req : ĠHttpServletRequest , Ġresp : ĠHttpServletResponse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠ Ġif Ġ( req . path Info Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . contentType Ġ= Ġ" application / json " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . status Ġ= ĠSC _ NOT _ FOUND ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . writer . write ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . toJson ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" message ", Ġ" Not Ġfound .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġprofile Provider Ġ= Ġplugin . core . service Manager . get ServiceProvider ( RP K Profile Provider :: class ) ĊĠĠĠĠĠĠĠ Ġval Ġprofile Ġ= Ġprofile Provider . get Profile ( req . path Info . drop ( 1 )) ĊĠĠĠĠĠĠĠ Ġif Ġ( profile Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . contentType Ġ= Ġ" application / json " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . status Ġ= ĠSC _ NOT _ FOUND ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . writer . write ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . toJson ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" message ", Ġ" Not Ġfound .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġ irc Profile Provider Ġ= Ġplugin . core . service Manager . get ServiceProvider ( RP K IRC Profile Provider :: class ) ĊĠĠĠĠĠĠĠ Ġval Ġ irc Profiles Ġ= Ġ irc Profile Provider . get IRC Profiles ( profile ) ĊĠĠĠĠĠĠĠ Ġresp . contentType Ġ= Ġ" application / json " ĊĠĠĠĠĠĠĠ Ġresp . status Ġ= ĠSC _ OK ĊĠĠĠĠĠĠĠ Ġresp . writer . write ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . toJson ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ irc Profiles . map Ġ{ Ġ irc Profile Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ irc Profile Profile Ġ= Ġ irc Profile . profile ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( irc Profile Profile Ġis ĠRP K Profile ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" id ", Ġ irc Profile . id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" profile _ id ", Ġ irc Profile Profile . id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" nick ", Ġ irc Profile . nick ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" id ", Ġ irc Profile . id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" nick ", Ġ irc Profile . nick ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdo Post ( req : ĠHttpServletRequest , Ġresp : ĠHttpServletResponse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠ Ġif Ġ( req . path Info Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . contentType Ġ= Ġ" application / json " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . status Ġ= ĠSC _ NOT _ FOUND ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . writer . write ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . toJson ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" message ", Ġ" Not Ġfound .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġprofile Provider Ġ= Ġplugin . core . service Manager . get ServiceProvider ( RP K Profile Provider :: class ) ĊĠĠĠĠĠĠĠ Ġval Ġprofile Ġ= Ġprofile Provider . get Profile ( req . path Info . drop ( 1 )) ĊĠĠĠĠĠĠĠ Ġif Ġ( profile Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . contentType Ġ= Ġ" application / json " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . status Ġ= ĠSC _ NOT _ FOUND ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . writer . write ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . toJson ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" message ", Ġ" Not Ġfound .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġactive Profile Ġ= Ġprofile Provider . getActive Profile ( req ) ĊĠĠĠĠĠĠĠ Ġif Ġ( active Profile Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . contentType Ġ= Ġ" application / json " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . status Ġ= ĠSC _ FOR BID DEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . writer . write ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . toJson ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" message ", Ġ" Not Ġauthenticated .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( active Profile Ġ!= Ġprofile ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . contentType Ġ= Ġ" application / json " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . status Ġ= ĠSC _ FOR BID DEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . writer . write ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . toJson ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" message ", Ġ" You Ġdo Ġnot Ġhave Ġpermission .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġnick Ġ= Ġreq . getParameter (" nick ") ĊĠĠĠĠĠĠĠ Ġif Ġ( nick Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . contentType Ġ= Ġ" application / json " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . status Ġ= ĠSC _ BAD _ REQUEST ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp . writer . write ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . toJson ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" message ", Ġ" Missing Ġnick Ġparameter .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġ irc Profile Provider Ġ= Ġplugin . core . service Manager . get ServiceProvider ( RP K IRC Profile Provider :: class ) ĊĠĠĠĠĠĠĠ Ġval Ġ irc Profile Ġ= ĠRP K IRC Profile Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile Ġ= Ġprofile , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnick Ġ= Ġnick ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ irc Profile Provider . add IRC Profile ( irc Profile ) ĊĠĠĠĠĠĠĠ Ġresp . contentType Ġ= Ġ" application / json " ĊĠĠĠĠĠĠĠ Ġresp . status Ġ= ĠSC _ OK ĊĠĠĠĠĠĠĠ Ġresp . writer . write ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . toJson ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" message ", Ġ" IRC Ġprofile Ġadded Ġsuccessfully ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ }