mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-17 20:13:30 +01:00
feat: voice messages (#9444)
* feat: voice messages * fix: delete unnesseary error
This commit is contained in:
@@ -147,6 +147,28 @@ class MessageAttachment {
|
|||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
*/
|
*/
|
||||||
this.ephemeral = data.ephemeral ?? false;
|
this.ephemeral = data.ephemeral ?? false;
|
||||||
|
|
||||||
|
if ('duration_secs' in data) {
|
||||||
|
/**
|
||||||
|
* The duration of this attachment in seconds
|
||||||
|
* <info>This will only be available if the attachment is an audio file.</info>
|
||||||
|
* @type {?number}
|
||||||
|
*/
|
||||||
|
this.duration = data.duration_secs;
|
||||||
|
} else {
|
||||||
|
this.duration ??= null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ('waveform' in data) {
|
||||||
|
/**
|
||||||
|
* The base64 encoded byte array representing a sampled waveform
|
||||||
|
* <info>This will only be available if the attachment is an audio file.</info>
|
||||||
|
* @type {?string}
|
||||||
|
*/
|
||||||
|
this.waveform = data.waveform;
|
||||||
|
} else {
|
||||||
|
this.waveform ??= null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1141,6 +1141,11 @@ exports.APIErrors = {
|
|||||||
INVALID_JSON: 50109,
|
INVALID_JSON: 50109,
|
||||||
CANNOT_MIX_SUBSCRIPTION_AND_NON_SUBSCRIPTION_ROLES_FOR_EMOJI: 50144,
|
CANNOT_MIX_SUBSCRIPTION_AND_NON_SUBSCRIPTION_ROLES_FOR_EMOJI: 50144,
|
||||||
CANNOT_CONVERT_PREMIUM_EMOJI_TO_NORMAL_EMOJI: 50145,
|
CANNOT_CONVERT_PREMIUM_EMOJI_TO_NORMAL_EMOJI: 50145,
|
||||||
|
VOICE_MESSAGES_DO_NOT_SUPPORT_ADDITIONAL_CONTENT: 50159,
|
||||||
|
VOICE_MESSAGES_MUST_HAVE_A_SINGLE_AUDIO_ATTACHMENT: 50160,
|
||||||
|
VOICE_MESSAGES_MUST_HAVE_SUPPORTING_METADATA: 50161,
|
||||||
|
VOICE_MESSAGES_CANNOT_BE_EDITED: 50162,
|
||||||
|
YOU_CANNOT_SEND_VOICE_MESSAGES_IN_THIS_CHANNEL: 50173,
|
||||||
TWO_FACTOR_REQUIRED: 60003,
|
TWO_FACTOR_REQUIRED: 60003,
|
||||||
NO_USERS_WITH_DISCORDTAG_EXIST: 80004,
|
NO_USERS_WITH_DISCORDTAG_EXIST: 80004,
|
||||||
REACTION_BLOCKED: 90001,
|
REACTION_BLOCKED: 90001,
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ MessageFlags.FLAGS = {
|
|||||||
EPHEMERAL: 1 << 6,
|
EPHEMERAL: 1 << 6,
|
||||||
LOADING: 1 << 7,
|
LOADING: 1 << 7,
|
||||||
SUPPRESS_NOTIFICATIONS: 1 << 12,
|
SUPPRESS_NOTIFICATIONS: 1 << 12,
|
||||||
|
IS_VOICE_MESSAGE: 1 << 13,
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = MessageFlags;
|
module.exports = MessageFlags;
|
||||||
|
|||||||
@@ -160,6 +160,7 @@ Permissions.FLAGS = {
|
|||||||
MODERATE_MEMBERS: 1n << 40n,
|
MODERATE_MEMBERS: 1n << 40n,
|
||||||
VIEW_CREATOR_MONETIZATION_ANALYTICS: 1n << 41n,
|
VIEW_CREATOR_MONETIZATION_ANALYTICS: 1n << 41n,
|
||||||
USE_SOUNDBOARD: 1n << 42n,
|
USE_SOUNDBOARD: 1n << 42n,
|
||||||
|
SEND_VOICE_MESSAGES: 1n << 46n,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
13
typings/index.d.ts
vendored
13
typings/index.d.ts
vendored
@@ -1705,6 +1705,7 @@ export class MessageAttachment {
|
|||||||
public attachment: BufferResolvable | Stream;
|
public attachment: BufferResolvable | Stream;
|
||||||
public contentType: string | null;
|
public contentType: string | null;
|
||||||
public description: string | null;
|
public description: string | null;
|
||||||
|
public duration: number | null;
|
||||||
public ephemeral: boolean;
|
public ephemeral: boolean;
|
||||||
public height: number | null;
|
public height: number | null;
|
||||||
public id: Snowflake;
|
public id: Snowflake;
|
||||||
@@ -1713,6 +1714,7 @@ export class MessageAttachment {
|
|||||||
public size: number;
|
public size: number;
|
||||||
public readonly spoiler: boolean;
|
public readonly spoiler: boolean;
|
||||||
public url: string;
|
public url: string;
|
||||||
|
public waveform: string | null;
|
||||||
public width: number | null;
|
public width: number | null;
|
||||||
public setDescription(description: string): this;
|
public setDescription(description: string): this;
|
||||||
public setFile(attachment: BufferResolvable | Stream, name?: string): this;
|
public setFile(attachment: BufferResolvable | Stream, name?: string): this;
|
||||||
@@ -3933,6 +3935,11 @@ export interface APIErrors {
|
|||||||
INSUFFICIENT_BOOSTS: 50101;
|
INSUFFICIENT_BOOSTS: 50101;
|
||||||
INVALID_JSON: 50109;
|
INVALID_JSON: 50109;
|
||||||
CANNOT_MIX_SUBSCRIPTION_AND_NON_SUBSCRIPTION_ROLES_FOR_EMOJI: 50144;
|
CANNOT_MIX_SUBSCRIPTION_AND_NON_SUBSCRIPTION_ROLES_FOR_EMOJI: 50144;
|
||||||
|
VOICE_MESSAGES_DO_NOT_SUPPORT_ADDITIONAL_CONTENT: 50159;
|
||||||
|
VOICE_MESSAGES_MUST_HAVE_A_SINGLE_AUDIO_ATTACHMENT: 50160;
|
||||||
|
VOICE_MESSAGES_MUST_HAVE_SUPPORTING_METADATA: 50161;
|
||||||
|
VOICE_MESSAGES_CANNOT_BE_EDITED: 50162;
|
||||||
|
YOU_CANNOT_SEND_VOICE_MESSAGES_IN_THIS_CHANNEL: 50173;
|
||||||
CANNOT_CONVERT_PREMIUM_EMOJI_TO_NORMAL_EMOJI: 50145;
|
CANNOT_CONVERT_PREMIUM_EMOJI_TO_NORMAL_EMOJI: 50145;
|
||||||
TWO_FACTOR_REQUIRED: 60003;
|
TWO_FACTOR_REQUIRED: 60003;
|
||||||
NO_USERS_WITH_DISCORDTAG_EXIST: 80004;
|
NO_USERS_WITH_DISCORDTAG_EXIST: 80004;
|
||||||
@@ -5864,7 +5871,8 @@ export type MessageFlagsString =
|
|||||||
| 'HAS_THREAD'
|
| 'HAS_THREAD'
|
||||||
| 'EPHEMERAL'
|
| 'EPHEMERAL'
|
||||||
| 'LOADING'
|
| 'LOADING'
|
||||||
| 'SUPPRESS_NOTIFICATIONS';
|
| 'SUPPRESS_NOTIFICATIONS'
|
||||||
|
| 'IS_VOICE_MESSAGE';
|
||||||
|
|
||||||
export interface MessageInteraction {
|
export interface MessageInteraction {
|
||||||
id: Snowflake;
|
id: Snowflake;
|
||||||
@@ -6056,7 +6064,8 @@ export type PermissionString =
|
|||||||
| 'MODERATE_MEMBERS'
|
| 'MODERATE_MEMBERS'
|
||||||
| 'MANAGE_EVENTS'
|
| 'MANAGE_EVENTS'
|
||||||
| 'VIEW_CREATOR_MONETIZATION_ANALYTICS'
|
| 'VIEW_CREATOR_MONETIZATION_ANALYTICS'
|
||||||
| 'USE_SOUNDBOARD';
|
| 'USE_SOUNDBOARD'
|
||||||
|
| 'SEND_VOICE_MESSAGES';
|
||||||
|
|
||||||
export type RecursiveArray<T> = ReadonlyArray<T | RecursiveArray<T>>;
|
export type RecursiveArray<T> = ReadonlyArray<T | RecursiveArray<T>>;
|
||||||
|
|
||||||
|
|||||||
16
typings/rawDataTypes.d.ts
vendored
16
typings/rawDataTypes.d.ts
vendored
@@ -5,7 +5,6 @@ import {
|
|||||||
APIApplication,
|
APIApplication,
|
||||||
APIApplicationCommand,
|
APIApplicationCommand,
|
||||||
APIApplicationCommandInteraction,
|
APIApplicationCommandInteraction,
|
||||||
APIAttachment,
|
|
||||||
APIAuditLog,
|
APIAuditLog,
|
||||||
APIAuditLogEntry,
|
APIAuditLogEntry,
|
||||||
APIBan,
|
APIBan,
|
||||||
@@ -169,7 +168,20 @@ export type RawInviteStageInstance = APIInviteStageInstance;
|
|||||||
export type RawMessageData = APIMessage;
|
export type RawMessageData = APIMessage;
|
||||||
export type RawPartialMessageData = GatewayMessageUpdateDispatchData;
|
export type RawPartialMessageData = GatewayMessageUpdateDispatchData;
|
||||||
|
|
||||||
export type RawMessageAttachmentData = APIAttachment;
|
export interface RawMessageAttachmentData {
|
||||||
|
id: Snowflake;
|
||||||
|
filename: string;
|
||||||
|
description?: string;
|
||||||
|
content_type?: string;
|
||||||
|
size: number;
|
||||||
|
url: string;
|
||||||
|
proxy_url: string;
|
||||||
|
height?: number | null;
|
||||||
|
width?: number | null;
|
||||||
|
ephemeral?: boolean;
|
||||||
|
duration_secs?: number;
|
||||||
|
waveform?: string;
|
||||||
|
}
|
||||||
|
|
||||||
export type RawMessagePayloadData =
|
export type RawMessagePayloadData =
|
||||||
| RESTPostAPIChannelMessageJSONBody
|
| RESTPostAPIChannelMessageJSONBody
|
||||||
|
|||||||
Reference in New Issue
Block a user