@@ -415,6 +415,14 @@ proc postHook(p: var Presence) =
415415 if p.client_status.mobile == " " :
416416 p.client_status.mobile = " offline"
417417
418+ proc postHook (m: var Message ) =
419+ if m.member.isSome:
420+ if m.member.get.user == nil and m.author != nil :
421+ m.member.get.user = m.author
422+ m.member.get.presence.user = m.author
423+ if m.member.get.presence.guild_id == " " :
424+ m.member.get.presence.guild_id = m.guild_id.get
425+
418426proc parseHook * (s: string , i: var int , v: var OverwriteType ) =
419427 var data: JsonNode
420428 parseHook (s, i, data)
@@ -437,7 +445,9 @@ proc newHook(m: var Member) =
437445 )
438446
439447proc postHook (m: var Member ) =
440- m.presence.user = m.user
448+ if m.user != nil : m.presence.user = m.user
449+ if m.presence.guild_id == " " and m.guild_id != " " :
450+ m.presence.guild_id = m.guild_id
441451
442452proc parseHook (s: string , i: var int , v: var Table [string , Overwrite ]) =
443453 var overwrites: seq [Overwrite ]
@@ -854,39 +864,31 @@ proc parseHook(s: string, n: var int, a: var ApplicationCommandInteractionData)
854864 kind: ($ data[" type" ]).fromJson (ApplicationCommandType )
855865 )
856866
857- a.resolved= ApplicationCommandResolution (kind: a.kind)
858- if " resolved" in data:
859- for key, values in data[" resolved" ].getFields.pairs:
860- case key:
861- of " users" :
862- for k, v in values.pairs:
863- a.resolved.users[k] = v.newUser
864- of " attachments" :
865- for k, v in values.pairs:
866- a.resolved.attachments[k] = v.newAttachment
867- else : discard
868-
869- if a.kind == atUser:
870- case key:
871- of " members" :
872- for k, v in values.pairs:
873- a.resolved.members[k] = v.newMember
874- of " roles" :
875- for k, v in values.pairs:
876- a.resolved.roles[k] = v.newRole
877- else : discard
878-
879- if a.kind == atMessage:
880- case key:
881- of " channels" :
882- for k, v in values.pairs:
883- a.resolved.channels[k] = ($ v).fromJson (
884- ResolvedChannel
885- )
886- of " messages" :
887- for k, v in values.pairs:
888- a.resolved.messages[k] = v.newMessage
889- else : discard
867+ a.resolved= ResolvedData ()
868+ if " resolved" in data:
869+ for key, values in data[" resolved" ].getFields.pairs:
870+ case key:
871+ of " users" :
872+ for k, v in values.pairs:
873+ a.resolved.users[k] = v.newUser
874+ of " attachments" :
875+ for k, v in values.pairs:
876+ a.resolved.attachments[k] = v.newAttachment
877+ of " members" :
878+ for k, v in values.pairs:
879+ a.resolved.members[k] = v.newMember
880+ of " roles" :
881+ for k, v in values.pairs:
882+ a.resolved.roles[k] = v.newRole
883+ of " channels" :
884+ for k, v in values.pairs:
885+ a.resolved.channels[k] = ($ v).fromJson (
886+ ResolvedChannel
887+ )
888+ of " messages" :
889+ for k, v in values.pairs:
890+ a.resolved.messages[k] = v.newMessage
891+ else : discard
890892
891893 for k, val in data.pairs:
892894 case val.kind:
@@ -948,7 +950,8 @@ proc `%%*`*(a: ApplicationCommand): JsonNode =
948950 # This ternary is needed so that the enums can stay similar to
949951 # the discord api
950952
951- # <TODO> PLEASE CLEAN UP THE CODE
953+ # <TODO> PLEASE CLEAN UP THE CODE -> im postponing this cause ibr code cleanup is for later
954+ # if anyone cares enough to read this :<
952955
953956 let commandKind = if a.kind == atNothing: atSlash else : a.kind
954957 result = %* {
@@ -1074,29 +1077,28 @@ proc `%%*`*(comp: MessageComponent): JsonNode =
10741077 # I thought I'd just keep it as it is and make a `%` that would redirect the proc.
10751078 result = %* {" type" : comp.kind.ord}
10761079
1077- result .loadOpts (comp, spoiler, placeholder, disabled, id, label, description)
1080+ result .loadOpts (comp, spoiler, placeholder,
1081+ disabled, id, label, description,
1082+ custom_id, min_values, max_values, required)
1083+
10781084 case comp.kind:
1079- of mctNone: discard
1085+ of mctNone, mctFileUpload : discard
10801086 of mctActionRow, mctContainer:
10811087 result [" components" ] = % comp.components.mapIt (%%* it)
10821088 result .loadOpts (comp, accent_color)
10831089 of mctButton:
10841090 result &= %* {" style" : comp.style.ord}
10851091
1086- result .loadOpts (comp, custom_id, url, sku_id)
1092+ result .loadOpts (comp, url, sku_id)
10871093 if comp.emoji.isSome:
10881094 result [" emoji" ] = comp.emoji.get.toPartial
10891095 of mctSelectMenu, mctUserSelect, mctRoleSelect, mctMentionableSelect, mctChannelSelect:
1090- result &= %* {" custom_id" : comp.custom_id.get,
1091- " options" : comp.options,
1096+ result &= %* {" options" : comp.options,
10921097 " placeholder" : comp.placeholder,
1093- " min_values" : comp.minValues,
1094- " max_values" : comp.maxValues,
10951098 " channel_types" : comp.channel_types.mapIt (it.ord),
10961099 " default_values" : comp.default_values.mapIt (% it)}
10971100 of mctTextInput:
1098- result &= %* {" custom_id" : comp.custom_id.get,
1099- " placeholder" : comp.placeholder,
1101+ result &= %* {" placeholder" : comp.placeholder,
11001102 " style" : ord comp.input_style.get}
11011103
11021104 result .loadOpts (comp, value, required, min_length, max_length)
0 commit comments