99 lines
1.9 KiB
JavaScript
99 lines
1.9 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
const Base = require('./Base');
|
||
|
|
||
|
/**
|
||
|
* Represents a WidgetMember.
|
||
|
*/
|
||
|
class WidgetMember extends Base {
|
||
|
/**
|
||
|
* Activity sent in a {@link WidgetMember}.
|
||
|
* @typedef {Object} WidgetActivity
|
||
|
* @property {string} name The name of the activity
|
||
|
*/
|
||
|
|
||
|
constructor(client, data) {
|
||
|
super(client);
|
||
|
|
||
|
/**
|
||
|
* The id of the user. It's an arbitrary number.
|
||
|
* @type {string}
|
||
|
*/
|
||
|
this.id = data.id;
|
||
|
|
||
|
/**
|
||
|
* The username of the member.
|
||
|
* @type {string}
|
||
|
*/
|
||
|
this.username = data.username;
|
||
|
|
||
|
/**
|
||
|
* The discriminator of the member.
|
||
|
* @type {string}
|
||
|
*/
|
||
|
this.discriminator = data.discriminator;
|
||
|
|
||
|
/**
|
||
|
* The avatar of the member.
|
||
|
* @type {?string}
|
||
|
*/
|
||
|
this.avatar = data.avatar;
|
||
|
|
||
|
/**
|
||
|
* The status of the member.
|
||
|
* @type {PresenceStatus}
|
||
|
*/
|
||
|
this.status = data.status;
|
||
|
|
||
|
/**
|
||
|
* If the member is server deafened
|
||
|
* @type {?boolean}
|
||
|
*/
|
||
|
this.deaf = data.deaf ?? null;
|
||
|
|
||
|
/**
|
||
|
* If the member is server muted
|
||
|
* @type {?boolean}
|
||
|
*/
|
||
|
this.mute = data.mute ?? null;
|
||
|
|
||
|
/**
|
||
|
* If the member is self deafened
|
||
|
* @type {?boolean}
|
||
|
*/
|
||
|
this.selfDeaf = data.self_deaf ?? null;
|
||
|
|
||
|
/**
|
||
|
* If the member is self muted
|
||
|
* @type {?boolean}
|
||
|
*/
|
||
|
this.selfMute = data.self_mute ?? null;
|
||
|
|
||
|
/**
|
||
|
* If the member is suppressed
|
||
|
* @type {?boolean}
|
||
|
*/
|
||
|
this.suppress = data.suppress ?? null;
|
||
|
|
||
|
/**
|
||
|
* The id of the voice channel the member is in, if any
|
||
|
* @type {?Snowflake}
|
||
|
*/
|
||
|
this.channelId = data.channel_id ?? null;
|
||
|
|
||
|
/**
|
||
|
* The avatar URL of the member.
|
||
|
* @type {string}
|
||
|
*/
|
||
|
this.avatarURL = data.avatar_url;
|
||
|
|
||
|
/**
|
||
|
* The activity of the member.
|
||
|
* @type {?WidgetActivity}
|
||
|
*/
|
||
|
this.activity = data.activity ?? null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = WidgetMember;
|