diff --git a/src/classes/Channel.ts b/src/classes/Channel.ts index f7cc1d26..13bde778 100644 --- a/src/classes/Channel.ts +++ b/src/classes/Channel.ts @@ -7,6 +7,7 @@ import type { Member as APIMember, Message as APIMessage, User as APIUser, + DataCreateInvite, DataEditChannel, DataMessageSearch, DataMessageSend, @@ -709,12 +710,14 @@ export class Channel { /** * Create an invite to the channel + * @param data Invite options * @requires `TextChannel` * @returns Newly created invite code */ - async createInvite(): Promise { + async createInvite(data: DataCreateInvite = {}): Promise { return await this.#collection.client.api.post( `/channels/${this.id as ""}/invites`, + data, ); } diff --git a/src/classes/Invite.ts b/src/classes/Invite.ts index 4e579348..451ebf47 100644 --- a/src/classes/Invite.ts +++ b/src/classes/Invite.ts @@ -52,6 +52,9 @@ export class ServerInvite extends ChannelInvite { readonly creatorId: string; readonly serverId: string; readonly channelId: string; + readonly uses?: number; + readonly maxUses?: number; + readonly expires?: Date; /** * Construct Server Invite @@ -65,6 +68,15 @@ export class ServerInvite extends ChannelInvite { this.creatorId = invite.creator; this.serverId = invite.server; this.channelId = invite.channel; + + const { uses, max_uses, expires } = invite as { + uses?: number; + max_uses?: number; + expires?: string; + }; + this.uses = uses; + this.maxUses = max_uses; + this.expires = expires ? new Date(expires) : undefined; } /**