2020-10-22 15:50:47 +00:00
|
|
|
import { Client } from '../models/client.ts'
|
|
|
|
import { UserPayload } from '../types/userTypes.ts'
|
|
|
|
import { Base } from './base.ts'
|
|
|
|
|
2020-10-23 16:11:00 +00:00
|
|
|
export class User extends Base {
|
2020-10-22 15:50:47 +00:00
|
|
|
id: string
|
|
|
|
username: string
|
|
|
|
discriminator: string
|
|
|
|
avatar?: string
|
|
|
|
bot?: boolean
|
|
|
|
system?: boolean
|
2020-10-23 16:11:00 +00:00
|
|
|
mfaEnabled?: boolean
|
2020-10-22 15:50:47 +00:00
|
|
|
locale?: string
|
|
|
|
verified?: boolean
|
|
|
|
email?: string
|
|
|
|
flags?: number
|
2020-10-23 16:11:00 +00:00
|
|
|
premiumType?: 0 | 1 | 2
|
|
|
|
publicFlags?: number
|
2020-10-22 15:50:47 +00:00
|
|
|
|
2020-10-23 03:19:40 +00:00
|
|
|
get nickMention () {
|
|
|
|
return `<@!${this.id}>`
|
|
|
|
}
|
|
|
|
|
|
|
|
get mention () {
|
|
|
|
return `<@${this.id}>`
|
|
|
|
}
|
|
|
|
|
2020-10-22 15:50:47 +00:00
|
|
|
constructor (client: Client, data: UserPayload) {
|
|
|
|
super(client)
|
|
|
|
this.id = data.id
|
|
|
|
this.username = data.username
|
|
|
|
this.discriminator = data.discriminator
|
|
|
|
this.avatar = data.avatar
|
|
|
|
this.bot = data.bot
|
|
|
|
this.system = data.system
|
2020-10-23 16:11:00 +00:00
|
|
|
this.mfaEnabled = data.mfa_enabled
|
2020-10-22 15:50:47 +00:00
|
|
|
this.locale = data.locale
|
|
|
|
this.verified = data.verified
|
|
|
|
this.email = data.email
|
|
|
|
this.flags = data.flags
|
2020-10-23 16:11:00 +00:00
|
|
|
this.premiumType = data.premium_type
|
|
|
|
this.publicFlags = data.public_flags
|
2020-10-22 15:50:47 +00:00
|
|
|
}
|
|
|
|
}
|