diff --git a/src/errors/Messages.js b/src/errors/Messages.js index cbf4016a67bc..c2e379c0f89b 100644 --- a/src/errors/Messages.js +++ b/src/errors/Messages.js @@ -66,7 +66,7 @@ const Messages = { IMAGE_SIZE: size => `Invalid image size: ${size}`, MESSAGE_BULK_DELETE_TYPE: 'The messages must be an Array, Collection, or number.', - MESSAGE_NONCE_TYPE: 'Message nonce must fit in an unsigned 64-bit integer.', + MESSAGE_NONCE_TYPE: 'Message nonce must be an integer or a string.', TYPING_COUNT: 'Count must be at least 1', diff --git a/src/structures/APIMessage.js b/src/structures/APIMessage.js index 3451bdb9bc39..5f6aea9ca0d4 100644 --- a/src/structures/APIMessage.js +++ b/src/structures/APIMessage.js @@ -151,8 +151,11 @@ class APIMessage { let nonce; if (typeof this.options.nonce !== 'undefined') { - nonce = parseInt(this.options.nonce); - if (isNaN(nonce) || nonce < 0) throw new RangeError('MESSAGE_NONCE_TYPE'); + nonce = this.options.nonce; + // eslint-disable-next-line max-len + if (typeof nonce === 'number' ? !Number.isInteger(nonce) : typeof nonce !== 'string') { + throw new RangeError('MESSAGE_NONCE_TYPE'); + } } const embedLikes = []; diff --git a/typings/index.d.ts b/typings/index.d.ts index 3a6a56e6b4b8..ebc3ed81b202 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -999,7 +999,7 @@ declare module 'discord.js' { public id: Snowflake; public readonly member: GuildMember | null; public mentions: MessageMentions; - public nonce: string | null; + public nonce: string | number | null; public readonly partial: false; public readonly pinnable: boolean; public pinned: boolean; @@ -2810,7 +2810,7 @@ declare module 'discord.js' { interface MessageOptions { tts?: boolean; - nonce?: string; + nonce?: string | number; content?: StringResolvable; embed?: MessageEmbed | MessageEmbedOptions; disableMentions?: 'none' | 'all' | 'everyone';