package Ġme . de pr il ula 2 8 . discord proxy kt . entities . discord . guild čĊč Ċ import Ġkotlinx . serialization . encode ToString č Ċ import Ġkotlinx . serialization . json . Json č Ċ import Ġkotlinx . serialization . json . Json Element č Ċ import Ġkotlinx . serialization . json . JsonObject č Ċ import Ġkotlinx . serialization . json . Json Primitive č Ċ import Ġme . de pr il ula 2 8 . discord proxy kt . Discord Proxy Kt č Ċ import Ġme . de pr il ula 2 8 . discord proxy kt . assert Permissions č Ċ import Ġme . de pr il ula 2 8 . discord proxy kt . entities . Parse č Ċ import Ġme . de pr il ula 2 8 . discord proxy kt . entities . Timestamp č Ċ import Ġme . de pr il ula 2 8 . discord proxy kt . entities . Unavailable Field č Ċ import Ġme . de pr il ula 2 8 . discord proxy kt . entities . discord .* č Ċ import Ġme . de pr il ula 2 8 . discord proxy kt . entities . discord . channel . Guild Channel č Ċ import Ġme . de pr il ula 2 8 . discord proxy kt . entities . discord . channel . Partial Guild Channel č Ċ import Ġme . de pr il ula 2 8 . discord proxy kt . events . guild . invite .* č Ċ import Ġme . de pr il ula 2 8 . discord proxy kt . rest .* čĊč Ċ /** čĊ Ġ* Ġhttps :// discord . com / developers / docs / resources / invite # invite - object čĊ Ġ*/ č Ċ open Ġclass ĠInv ite ( čĊĠĠĠ Ġoverride Ġvar Ġmap : ĠJsonObject , čĊĠĠĠ Ġoverride Ġval Ġbot : ĠDiscord Proxy Kt , čĊĠĠĠ Ġprivate Ġval Ġinternal Guild : ĠPartial Guild ? Ġ= Ġnull č Ċ ): ĠParse Ġ{ čĊĠĠĠ Ġval Ġcode : ĠString Ġby Ġparsing ( Json Element :: asString ) čĊĠĠĠ Ġ/** čĊĠĠĠĠ Ġ* ĠThe Ġguild Ġreturned Ġfrom Ġthe Ġinvite Ġis Ġa Ġpreview Ġguild , Ġwith Ġless Ġinformation . čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġ// ĠTODO ĠPreview Ġguild Ġobject čĊĠĠĠ Ġval Ġguild : ĠGuild ? Ġby Ġparsing Opt ({ ĠGuild ( this Ġas ĠJsonObject , Ġbot ) Ġ}) čĊĠĠĠ Ġval Ġinv iter : ĠUser ? Ġby Ġparsing Opt ({ ĠUser ( this Ġas ĠJsonObject , Ġbot ) Ġ}) čĊĠĠĠ Ġval Ġtarget User : ĠUser ? Ġby Ġparsing Opt ({ ĠUser ( this Ġas ĠJsonObject , Ġbot ) Ġ}, Ġ" target _ user ") čĊĠĠĠ Ġval Ġapprox Presence Count : ĠInt ? Ġby Ġparsing Opt ( Json Element :: as Int , Ġ" approx imate _ presence _ count ") čĊĠĠĠ Ġval Ġapprox Member Count : ĠInt ? Ġby Ġparsing Opt ( Json Element :: as Int , Ġ" approx imate _ member _ count ") čĊĠĠĠĠčĊĠĠĠ Ġ/** čĊĠĠĠĠ Ġ* ĠThis Ġis Ġpresent Ġunder Ġfetched Ġinv ites čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġval Ġcached Channel : ĠGuild Channel ? Ġby Ġparsing Opt ({ čĊĠĠĠĠĠĠĠ Ġ( guild Ġ?: Ġinternal Guild )?. run Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ parsing Opt . as Guild Channel ( bot , Ġthis ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ}, Ġ" channel ") čĊĠĠĠ Ġ/** čĊĠĠĠĠ Ġ* ĠThis Ġis Ġpresent Ġunder Ġinvite Ġevents Ġ[ Guild Invite Create Event ] Ġand Ġ[ Guild Invite Delete Event ] čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġval Ġpartial Channel : ĠPartial Guild Channel ? Ġby Ġparsing Opt ({ čĊĠĠĠĠĠĠĠ Ġ( guild Ġ?: Ġinternal Guild )?. run Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠPartial Guild Channel . new ( this , Ġas Snow flake ()) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ}, Ġ" channel _ id ") čĊĠĠĠĠčĊĠĠĠ Ġ/** čĊĠĠĠĠ Ġ* ĠThe Ġonly Ġcase Ġwhere Ġthis Ġis Ġnot Ġpresent Ġis Ġwhen Ġ[ guild ] Ġis Ġ` null ` čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġval Ġchannel : ĠPartial Guild Channel ? čĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcached Channel Ġ?: Ġpartial Channel čĊĠĠĠĠčĊĠĠĠ Ġfun Ġdelete (): ĠI Rest Action < Unit > Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( guild Ġ!= Ġnull ) ĠI Rest Action . coroutine ( bot ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Permissions ( guild !! , ĠPermissions . MANAGE _ GU ILD ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbot . coroutine Request ( Rest Endpoint . DELETE _ INV ITE . path ( code ), Ġ{ ĠUnit Ġ}) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġelse Ġbot . request ( Rest Endpoint . DELETE _ INV ITE . path ( code ), Ġ{ ĠUnit Ġ}) čĊĠĠĠ Ġ} čĊĠĠĠĠčĊĠĠĠ Ġ/** čĊĠĠĠĠ Ġ* Ġ@ throws Ġ[ Unavailable Field ] ĠIf Ġ[ guild ] Ġis Ġ` null ` čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġfun Ġexpand (): ĠI Rest Action < Extended Invite > čĊĠĠĠĠĠĠĠ Ġ= ĠI Rest Action . coroutine ( bot ) Ġ{ čĊĠĠĠĠĠĠĠ Ġ( channel Ġ?: Ġthrow ĠUn available Field ()). fetch Inv ites . await (). find Ġ{ Ġit . code Ġ== Ġthis . code Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠUn available Field () čĊĠĠĠ Ġ} č Ċ } čĊč Ċ class ĠInv ite Builder ( private Ġval Ġinternal Channel : ĠGuild Channel , Ġbot : ĠDiscord Proxy Kt ): čĊĠĠĠ ĠInv ite ( JsonObject ( Map Not Ready ()), Ġbot ), ĠEntity Builder < Invite > č Ċ { čĊĠĠĠ Ġval Ġchanges Ġ= Ġmutable Map Of < String , ĠJson Element >() čĊĠĠĠĠčĊĠĠĠ Ġ/** čĊĠĠĠĠ Ġ* ĠCreates Ġan Ġinvite Ġbased Ġon Ġaltered Ġfields Ġand Ġreturns Ġit Ġas Ġa Ġrest Ġaction .< br > čĊĠĠĠĠ Ġ* ĠThe Ġvalues Ġof Ġthe Ġfields Ġin Ġthe Ġbuilder Ġitself Ġwill Ġbe Ġupdated , Ġmaking Ġit Ġusable Ġas Ġa ĠInv ite . čĊĠĠĠĠ Ġ*/ čĊĠĠĠ Ġoverride Ġfun Ġcreate (): ĠI Rest Action < Invite > Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn ĠI Rest Action . coroutine ( bot ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Permissions ( internal Channel , ĠPermissions . CREATE _ INST ANT _ INV ITE ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġbot . coroutine Request ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRest Endpoint . CREATE _ CHANNEL _ INV ITE . path ( internal Channel . snow flake . id ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġthis @ Invite Builder . apply Ġ{ Ġmap Ġ= Ġthis @ coroutine Request Ġas ĠJsonObject Ġ} Ġ}, čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= ĠJson . encode ToString ( changes ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchanges . clear () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ } čĊč Ċ class ĠExtended Invite ( map : ĠJsonObject , Ġbot : ĠDiscord Proxy Kt , Ġinternal Guild : ĠPartial Guild ? Ġ= Ġnull ): čĊĠĠĠ ĠInv ite ( map , Ġbot , Ġinternal Guild ) č Ċ { čĊĠĠĠ Ġval Ġuses : ĠInt Ġby Ġparsing ( Json Element :: as Int , Ġ" uses ") čĊĠĠĠ Ġval Ġmax Uses : ĠInt Ġby Ġparsing ( Json Element :: as Int , Ġ" max _ uses ") čĊĠĠĠ Ġval Ġmax Age : ĠInt Ġby Ġparsing ( Json Element :: as Int , Ġ" max _ age ") čĊĠĠĠ Ġval Ġtemporary : ĠBoolean Ġby Ġparsing ( Json Element :: as Boolean ) čĊĠĠĠ Ġval ĠcreatedAt : ĠTimestamp Ġby Ġparsing ( Json Element :: as Timestamp , Ġ" created _ at ") č Ċ }