mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-03 09:20:08 +00:00
49 lines
1.5 KiB
TypeScript
49 lines
1.5 KiB
TypeScript
import { Bot } from "../bot.ts";
|
|
import { Role } from "../types/mod.ts";
|
|
import { SnakeCasedPropertiesDeep } from "../types/util.ts";
|
|
|
|
export function transformRole(
|
|
bot: Bot,
|
|
payload: { role: SnakeCasedPropertiesDeep<Role> } & {
|
|
guildId: bigint;
|
|
}
|
|
): DiscordenoRole {
|
|
return {
|
|
// UNTRANSFORMED STUFF HERE
|
|
name: payload.role.name,
|
|
guildId: payload.guildId,
|
|
position: payload.role.position,
|
|
color: payload.role.color,
|
|
bitfield:
|
|
(payload.role.hoist ? 1n : 0n) |
|
|
(payload.role.managed ? 2n : 0n) |
|
|
(payload.role.mentionable ? 4n : 0n) |
|
|
(payload.role.tags?.premium_subscriber ? 8n : 0n),
|
|
|
|
// TRANSFORMED STUFF BELOW
|
|
id: bot.transformers.snowflake(payload.role.id),
|
|
botId: payload.role.tags?.bot_id ? bot.transformers.snowflake(payload.role.tags.bot_id) : undefined,
|
|
integrationId: payload.role.tags?.integration_id
|
|
? bot.transformers.snowflake(payload.role.tags.integration_id)
|
|
: undefined,
|
|
permissions: bot.transformers.snowflake(payload.role.permissions),
|
|
};
|
|
}
|
|
|
|
export interface DiscordenoRole extends Omit<Role, "tags" | "id" | "permissions"> {
|
|
/** The role id */
|
|
id: bigint;
|
|
/** The bot id that is associated with this role. */
|
|
botId?: bigint;
|
|
/** If this role is the nitro boost role. */
|
|
isNitroBoostRole: boolean;
|
|
/** The integration id that is associated with this role */
|
|
integrationId?: bigint;
|
|
/** The roles guildId */
|
|
guildId: bigint;
|
|
/** Permission bit set */
|
|
permissions: bigint;
|
|
/** Holds all the boolean toggles. */
|
|
bitfield: bigint;
|
|
}
|