fix: guild member user error

This commit is contained in:
Marcos Susaña 2024-06-10 16:21:31 -04:00
parent eaa8455d51
commit 0c5e874bbd
6 changed files with 17 additions and 26 deletions

View File

@ -21,7 +21,7 @@
"license": "Apache-2.0",
"dependencies": {
"chokidar": "^3.6.0",
"discord-api-types": "^0.37.86",
"discord-api-types": "^0.37.88",
"magic-bytes.js": "^1.10.0",
"ts-mixer": "^6.0.4",
"ws": "^8.17.0"

10
pnpm-lock.yaml generated
View File

@ -12,8 +12,8 @@ importers:
specifier: ^3.6.0
version: 3.6.0
discord-api-types:
specifier: ^0.37.86
version: 0.37.86
specifier: ^0.37.88
version: 0.37.88
magic-bytes.js:
specifier: ^1.10.0
version: 1.10.0
@ -362,8 +362,8 @@ packages:
resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==}
engines: {node: '>=0.10'}
discord-api-types@0.37.86:
resolution: {integrity: sha512-ofpVLHshKdKl+XuZBbwOBSlgQFPJPzMuUiBpala3+ImPHBVo7ojZpzJUu2NJV/f0t1kqncechDugQpO5AjZnxg==}
discord-api-types@0.37.88:
resolution: {integrity: sha512-Yrj5S3JXzouPc6WLA8svgXCw3Q7IkNdW/Y/IfkJF+CsgUBsgECQ8qVoOaseJJ8Atj2TEvabut4rGmzq6PRi1/Q==}
dot-prop@5.3.0:
resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
@ -1185,7 +1185,7 @@ snapshots:
denque@2.1.0:
optional: true
discord-api-types@0.37.86: {}
discord-api-types@0.37.88: {}
dot-prop@5.3.0:
dependencies:

View File

@ -17,7 +17,10 @@ import type { Command, CommandAutocompleteOption, CommandOption, SubCommand } fr
import type { UsingClient } from './applications/shared';
export type ContextOptionsResolved = {
members?: Record<string, APIGuildMember | APIInteractionGuildMember | GuildMember | InteractionGuildMember>;
members?: Record<
string,
APIGuildMember | Omit<APIGuildMember, 'user'> | APIInteractionGuildMember | GuildMember | InteractionGuildMember
>;
users?: Record<string, APIUser | User>;
roles?: Record<string, APIRole | GuildRole>;
channels?: Record<string, APIInteractionDataResolvedChannel | AllChannels>;

View File

@ -6,6 +6,7 @@ import type {
GatewayGuildDeleteDispatchData,
GatewayGuildEmojisUpdateDispatchData,
GatewayGuildIntegrationsUpdateDispatchData,
GatewayGuildMemberAddDispatchData,
GatewayGuildMemberRemoveDispatchData,
GatewayGuildMemberUpdateDispatchData,
GatewayGuildMembersChunkDispatchData,
@ -21,16 +22,7 @@ import type {
GatewayGuildUpdateDispatchData,
} from 'discord-api-types/v10';
import { toCamelCase } from '../../common';
import {
Guild,
GuildEmoji,
GuildMember,
GuildRole,
Sticker,
UnavailableMember,
User,
type GatewayGuildMemberAddDispatchDataFixed,
} from '../../structures';
import { Guild, GuildEmoji, GuildMember, GuildRole, Sticker, User } from '../../structures';
import type { UsingClient } from '../../commands';
export const GUILD_AUDIT_LOG_ENTRY_CREATE = (_self: UsingClient, data: GatewayGuildAuditLogEntryCreateDispatchData) => {
@ -64,8 +56,7 @@ export const GUILD_INTEGRATIONS_UPDATE = (_self: UsingClient, data: GatewayGuild
return toCamelCase(data);
};
export const GUILD_MEMBER_ADD = (self: UsingClient, data: GatewayGuildMemberAddDispatchDataFixed<boolean>) => {
if (!('user' in data)) return new UnavailableMember(self, data, data.id, data.guild_id);
export const GUILD_MEMBER_ADD = (self: UsingClient, data: GatewayGuildMemberAddDispatchData) => {
return new GuildMember(self, data, data.user, data.guild_id);
};

View File

@ -2,6 +2,7 @@ import { DiscordBase } from './extra/DiscordBase';
export type GuildMemberData =
| APIGuildMember
| Omit<APIGuildMember, 'user'>
| GatewayGuildMemberUpdateDispatchData
| GatewayGuildMemberAddDispatchData
| APIInteractionDataResolvedGuildMember;
@ -19,16 +20,12 @@ import type {
RESTPutAPIGuildMemberJSONBody,
} from 'discord-api-types/v10';
import type { UsingClient } from '../commands';
import type { MakeRequired, MessageCreateBodyRequest, ObjectToLower, ToClass } from '../common';
import type { MessageCreateBodyRequest, ObjectToLower, ToClass } from '../common';
import type { ImageOptions, MethodContext } from '../common/types/options';
import type { GuildMemberResolvable } from '../common/types/resolvables';
import { User } from './User';
import { PermissionsBitField } from './extra/Permissions';
export type GatewayGuildMemberAddDispatchDataFixed<Pending extends boolean> = Pending extends true
? Omit<GatewayGuildMemberAddDispatchData, 'user'> & { id: string }
: MakeRequired<GatewayGuildMemberAddDispatchData, 'user'>;
export interface BaseGuildMember extends DiscordBase, ObjectToLower<Omit<APIGuildMember, 'user' | 'roles'>> {}
export class BaseGuildMember extends DiscordBase {
private _roles: string[];

View File

@ -57,9 +57,9 @@ import {
type GatewayWebhooksUpdateDispatchData,
type PresenceUpdateStatus,
type GatewayMessagePollVoteDispatchData,
type GatewayGuildMemberAddDispatchData,
} from 'discord-api-types/v10';
import type { RestToKeys } from '../common';
import type { GatewayGuildMemberAddDispatchDataFixed } from '../structures';
/** https://discord.com/developers/docs/topics/gateway-events#update-presence */
export interface StatusUpdate {
@ -120,7 +120,7 @@ export interface Events {
[GatewayDispatchEvents.GuildEmojisUpdate]: GatewayGuildEmojisUpdateDispatchData;
[GatewayDispatchEvents.GuildStickersUpdate]: GatewayGuildStickersUpdateDispatchData;
[GatewayDispatchEvents.GuildIntegrationsUpdate]: GatewayGuildIntegrationsUpdateDispatchData;
[GatewayDispatchEvents.GuildMemberAdd]: GatewayGuildMemberAddDispatchDataFixed<boolean>;
[GatewayDispatchEvents.GuildMemberAdd]: GatewayGuildMemberAddDispatchData;
[GatewayDispatchEvents.GuildMemberRemove]: GatewayGuildMemberRemoveDispatchData;
[GatewayDispatchEvents.GuildMemberUpdate]: GatewayGuildMemberUpdateDispatchData;
[GatewayDispatchEvents.GuildMembersChunk]: GatewayGuildMembersChunkDispatchData;