Tagscript

MemberTransformer

TagScript


Class: MemberTransformer

Defined in: tagscript-plugin-discord/src/lib/Transformer/GuildMember.ts:58

Transformer for a Discord GuildMember payload.

Properties:

id: Gives member id.
mention: Mentions the member.
username: Gives username of the member.
discriminator: Gives discriminator of the member
tag: Gives username#discriminator for legacy accounts, username otherwise.
avatar: Gives member's custom avatar if they have one. Else it'll be an empty string.
displayAvatar: Gives member's avatar URL if they have one else gives member's default avatar.
nickname: Gives member's nickname.
displayName: Gives member's display name. (nickname, then global name, then username)
joinedAt: Gives member's join date.
joinedTimestamp: Gives member's join date in ms
createdAt: Gives member's account create date.
createdTimestamp: Gives member's account created date in ms
bot: Gives true if the member is a bot else false.
roles: Mentions each of the member's roles.
roleIds: Gives member's roles ids.
timeoutUntil: Gives member's timeout until date.
timeoutUntilTimestamp: Gives member's timeout until date in ms.

Remarks

You need to use StrictVarsParser parser to use this transformer.

A member payload carries role ids, not role objects, and no guild id. Role names, the top role, the member colour and the per-guild avatar therefore need the guild alongside the member, so pass them yourself:

const roles = guild.roles.filter((role) => member.roles.includes(role.id));

new MemberTransformer(member, {
	roleNames: roles.map((role) => role.name).join(', '),
	topRole: roles.reduce((highest, role) => (role.position > highest.position ? role : highest)).name,
});

Example

import { Interpreter, StrictVarsParser } from 'tagscript';
import { MemberTransformer } from '@tagscript/plugin-discord';

const ts = new Interpreter(new StrictVarsParser());

await ts.run('Hi {member}', { member: new MemberTransformer(member) });
// Hi <@758880890159235083>

Extends

Constructors

Constructor

new MemberTransformer(base, safeValues?): MemberTransformer

Defined in: tagscript-plugin-discord/src/lib/Transformer/Base.ts:28

Parameters

base

GuildMember

safeValues?

SafeValues<GuildMember> = {}

Returns

MemberTransformer

Inherited from

BaseTransformer.constructor

Properties

base

protected base: GuildMember

Defined in: tagscript-plugin-discord/src/lib/Transformer/Base.ts:24

Inherited from

BaseTransformer.base


safeValues

protected safeValues: SafeValues<GuildMember> = {}

Defined in: tagscript-plugin-discord/src/lib/Transformer/Base.ts:26

Inherited from

BaseTransformer.safeValues

Methods

resolveId()

protected resolveId(): string

Defined in: tagscript-plugin-discord/src/lib/Transformer/GuildMember.ts:59

The snowflake this payload is identified by. Read as {thing.id}.

Returns

string

Overrides

BaseTransformer.resolveId


resolveMention()

protected resolveMention(): string

Defined in: tagscript-plugin-discord/src/lib/Transformer/GuildMember.ts:63

What a bare {thing} renders to.

Returns

string

Overrides

BaseTransformer.resolveMention


toJSON()

toJSON(): SafeValues<GuildMember>

Defined in: tagscript-plugin-discord/src/lib/Transformer/Base.ts:45

Returns

SafeValues<GuildMember>

Inherited from

BaseTransformer.toJSON


transform()

transform(tag): string | null

Defined in: tagscript-plugin-discord/src/lib/Transformer/Base.ts:37

Transforms the given tag.

Parameters

tag

Lexer

The tag that triggered the transformer.

Returns

string | null

Inherited from

BaseTransformer.transform


updateSafeValues()

protected updateSafeValues(): void

Defined in: tagscript-plugin-discord/src/lib/Transformer/GuildMember.ts:67

Returns

void

Overrides

BaseTransformer.updateSafeValues

On this page