From 79be200943431bd9dd4f5f7a49cdb90f0f72ca1a Mon Sep 17 00:00:00 2001 From: ITOH <72305210+itohatweb@users.noreply.github.com> Date: Tue, 30 Mar 2021 10:10:53 +0200 Subject: [PATCH] types: add role types (#717) * move perm types * types: add role types * types: add roletags types Co-authored-by: ayntee --- .../bitwise_permission_flags.ts | 0 .../permission_strings.ts | 0 src/types/permissions/role.ts | 26 +++++++++++++++++++ src/types/permissions/role_tags.ts | 13 ++++++++++ 4 files changed, 39 insertions(+) rename src/types/{misc => permissions}/bitwise_permission_flags.ts (100%) rename src/types/{misc => permissions}/permission_strings.ts (100%) create mode 100644 src/types/permissions/role.ts create mode 100644 src/types/permissions/role_tags.ts diff --git a/src/types/misc/bitwise_permission_flags.ts b/src/types/permissions/bitwise_permission_flags.ts similarity index 100% rename from src/types/misc/bitwise_permission_flags.ts rename to src/types/permissions/bitwise_permission_flags.ts diff --git a/src/types/misc/permission_strings.ts b/src/types/permissions/permission_strings.ts similarity index 100% rename from src/types/misc/permission_strings.ts rename to src/types/permissions/permission_strings.ts diff --git a/src/types/permissions/role.ts b/src/types/permissions/role.ts new file mode 100644 index 000000000..6f4bdca8f --- /dev/null +++ b/src/types/permissions/role.ts @@ -0,0 +1,26 @@ +import { SnakeCaseProps } from "../util.ts"; +import { RoleTags } from "./role_tags.ts"; + +export interface Role { + /** Role id */ + id: string; + /** Role name */ + name: string; + /** Integer representation of hexadecimal color code */ + color: number; + /** If this role is showed seperately in the user listing */ + hoist: boolean; + /** Position of this role */ + position: number; + /** Permission bit set */ + permissions: string; + /** Whether this role is managed by an integration */ + managed: boolean; + /** Whether this role is mentionable */ + mentionable: boolean; + /** The tags this role has */ + tags?: RoleTags; +} + +/** https://discord.com/developers/docs/topics/permissions#role-object-role-structure */ +export type DiscordRole = SnakeCaseProps; diff --git a/src/types/permissions/role_tags.ts b/src/types/permissions/role_tags.ts new file mode 100644 index 000000000..3cc857df3 --- /dev/null +++ b/src/types/permissions/role_tags.ts @@ -0,0 +1,13 @@ +import { SnakeCaseProps } from "../util.ts"; + +export interface RoleTags { + /** The id of the bot this role belongs to */ + botId?: string; + /** The id of the integration this role belongs to */ + integrationId?: string; + /** Whether this is the guild's premium subscriber role */ + premiumSubscriber?: null; +} + +/** https://discord.com/developers/docs/topics/permissions#role-object-role-tags-structure */ +export type DiscordRoleTags = SnakeCaseProps;