some changes to Role

This commit is contained in:
DjDeveloperr 2021-01-25 17:08:56 +05:30
parent d36922c0b7
commit c2e7916aa3

View file

@ -1,12 +1,13 @@
import { Client } from '../models/client.ts'
import { Base } from './base.ts'
import { SnowflakeBase } from './base.ts'
import { RoleModifyPayload, RolePayload } from '../types/role.ts'
import { Permissions } from '../utils/permissions.ts'
import { Guild } from './guild.ts'
import { Member } from './member.ts'
import { User } from './user.ts'
export class Role extends Base {
/** Represents a Guild Role */
export class Role extends SnowflakeBase {
id: string
guild: Guild
name: string
@ -52,6 +53,17 @@ export class Role extends Base {
this.mentionable = data.mentionable ?? this.mentionable
}
/** Delete the Role */
async delete(): Promise<Role | undefined> {
return this.guild.roles.delete(this)
}
/** Edit the Role */
async edit(options: RoleModifyPayload): Promise<Role> {
return this.guild.roles.edit(this, options)
}
/** Add the Role to a Member */
async addTo(member: Member | User | string): Promise<boolean> {
if (member instanceof User) {
member = member.id
@ -68,6 +80,7 @@ export class Role extends Base {
return member.roles.add(this.id)
}
/** Remove the Role from a Member */
async removeFrom(member: Member | User | string): Promise<boolean> {
if (member instanceof User) {
member = member.id
@ -83,14 +96,6 @@ export class Role extends Base {
return member.roles.remove(this.id)
}
async delete(): Promise<Role | undefined> {
return this.guild.roles.delete(this)
}
async edit(options: RoleModifyPayload): Promise<Role> {
return this.guild.roles.edit(this, options)
}
}
export interface RoleTags {