feat(MessageAttachment): allow files to be marked as spoilers (#6509)

Co-authored-by: Antonio Román <kyradiscord@gmail.com>
This commit is contained in:
Justin
2021-08-25 04:25:45 +08:00
committed by GitHub
parent 5c276398d6
commit 96e26c428d
2 changed files with 20 additions and 1 deletions

View File

@@ -43,6 +43,24 @@ class MessageAttachment {
return this;
}
/**
* Sets whether this attachment is a spoiler
* @param {boolean} [spoiler=true] Whether the attachment should be marked as a spoiler
* @returns {MessageAttachment} This attachment
*/
setSpoiler(spoiler = true) {
if (spoiler === this.spoiler) return this;
if (!spoiler) {
while (this.spoiler) {
this.name.slice('SPOILER_'.length);
}
return this;
}
this.name = `SPOILER_${this.name}`;
return this;
}
_patch(data) {
/**
* The attachment's id
@@ -93,7 +111,7 @@ class MessageAttachment {
* @readonly
*/
get spoiler() {
return Util.basename(this.url).startsWith('SPOILER_');
return Util.basename(this.url ?? this.name).startsWith('SPOILER_');
}
toJSON() {

1
typings/index.d.ts vendored
View File

@@ -1210,6 +1210,7 @@ export class MessageAttachment {
public width: number | null;
public setFile(attachment: BufferResolvable | Stream, name?: string): this;
public setName(name: string): this;
public setSpoiler(spoiler?: boolean): this;
public toJSON(): unknown;
}