---
url: https://docs.juniper.bot/message-templates/persistence/member-attributes.md
description: Руководство по хранению данных в атрибутах участников
---

[Число]: /message-templates/types/index#literals

[Строка]: /message-templates/types/index#literals

[Логический]: /message-templates/types/index#literals

[Список]: /message-templates/types/index#lists

[Карта]: /message-templates/types/index#maps

[DateTime]: /message-templates/types/index#datetime

[TwitchChannel]: /message-templates/types/subscriptions/twitch#twitch-channel

[TwitchStream]: /message-templates/types/subscriptions/twitch#twitch-stream

[TwitchGame]: /message-templates/types/subscriptions/twitch#twitch-game

[YouTubeChannel]: /message-templates/types/subscriptions/youtube#youtube-channel

[YouTubeVideo]: /message-templates/types/subscriptions/youtube#youtube-video

[VkWallPost]: /message-templates/types/subscriptions/vk#vkwallpost

[Rank]: /message-templates/types/discord/rank

[Guild]: /message-templates/types/discord/guild

[Member]: /message-templates/types/discord/member

[Role]: /message-templates/types/discord/role

[Message]: /message-templates/types/discord/message

[Attachment]: /message-templates/types/discord/attachment

[Embed]: /message-templates/types/discord/embed

[Activity]: /message-templates/types/discord/activity

[MemberVoiceState]: /message-templates/types/discord/member-voice-state

[MemberPrimaryGuild]: /message-templates/types/discord/member-primary-guild

[MenuBuilder]: /message-templates/types/discord/menu-builder

[UserFlag]: /message-templates/types/discord/user-flag

[Permission]: /message-templates/types/discord/permission

[Category]: /message-templates/types/discord/category

[TextChannel]: /message-templates/types/discord/text-channel

[VoiceChannel]: /message-templates/types/discord/voice-channel

[NewsChannel]: /message-templates/types/discord/news-channel

[StageChannel]: /message-templates/types/discord/stage-channel

[ForumChannel]: /message-templates/types/discord/forum-channel

[MediaChannel]: /message-templates/types/discord/media-channel

[ThreadChannel]: /message-templates/types/discord/thread-channel

[Page]: /message-templates/types/storage/page

[GuildIndex]: /message-templates/types/storage/guild-index

[GuildIndexEntry]: /message-templates/types/storage/guild-index-entry

[GuildIndexes]: /message-templates/types/storage/guild-indexes

[MemberAttribute]: /message-templates/types/storage/member-attribute

[MemberAttributes]: /message-templates/types/storage/member-attributes

[Arguments]: /message-templates/types/custom-commands/arguments

[Parameters]: /message-templates/types/custom-commands/parameters

[Component]: /message-templates/types/custom-commands/component

[Modal]: /message-templates/types/custom-commands/modal

# Атрибуты участников { #member-attributes }

Атрибуты участников — хранилище данных, используемое для хранения какой-либо информации, относящейся к конкретному участнику.

Они представлены методом [`getAttribute`](../types/discord/member#method-getattribute) и свойством
[`attributes`](../types/storage/member-attributes) у типа \[Member].

::: warning Внимание
В рамках выполнения одного шаблона сообщения допускается обращение максимум к 5 атрибутам участников.

[Активный бонус](https://juniper.bot/donate) на сервере увеличивает этот лимит до 10 атрибутов.
:::

## Сохранение данных { #saving }

Для сохранения каких-либо данных в атрибуты следует использовать метод [`update`](../types/storage/member-attribute#method-update):

::: tabs

\== Метод | mdi-code-parentheses

```template
{% do member.getAttribute('example').update('Hello World!') %}
```

\== Свойство | mdi-alphabet-latin

Данный способ доступен только если ключ атрибута является корректным [идентификатором](../advanced/expressions#identifiers):

```template
{% do member.attributes.example.update('Hello World!') %}
```

:::

Вы можете увеличить или уменьшить числовое значение атрибута на указанное число, используя методы
[`increment`](../types/storage/member-attribute#method-increment)
и [`decrement`](../types/storage/member-attribute#method-decrement):

::: tabs

\== Метод | mdi-code-parentheses

Увеличение значения:

```template
{% do member.getAttribute('example').increment(1) %}
```

Уменьшение значения:

```template
{% do member.getAttribute('example').decrement(1) %}
```

\== Свойство | mdi-alphabet-latin

Данный способ доступен только если ключ атрибута является корректным [идентификатором](../advanced/expressions#identifiers):

Увеличение значения:

```template
{% do member.attributes.example.increment(1) %}
```

Уменьшение значения:

```template
{% do member.attributes.example.decrement(1) %}
```

:::

::: info Информация
Если вы хотите хранить какие-то данные, не привязанные к конкретному участнику, вы можете использовать атрибуты самого
бота. Доступ к ним можно получить через предопределённую переменную `bot` вместо `member`.
:::

## Запрос данных { #accessing }

Атрибуты хранятся бессрочно и доступ к ним можно получить следующими способами:

::: tabs

\== Метод | mdi-code-parentheses

```template
{{ member.getAttribute('example').value }}
```

\== Свойство | mdi-alphabet-latin

Данный способ доступен только если ключ атрибута является корректным [идентификатором](../advanced/expressions#identifiers):

```template
{{ member.attributes.example.value }}
```

:::

## Очистка данных { #clearing }

Для очистки атрибута следует использовать метод [`clear`](../types/storage/member-attribute#method-clear):

::: tabs

\== Метод | mdi-code-parentheses

```template
{% do member.getAttribute('example').clear() %}
```

\== Свойство | mdi-alphabet-latin

Данный способ доступен только если ключ атрибута является корректным [идентификатором](../advanced/expressions#identifiers):

```template
{% do member.attributes.example.clear() %}
```

:::

Вы можете очистить атрибуты с указанным ключом у всех участников с помощью метода
[`clearAttributes`](../types/discord/guild#method-clearattributes) у типа данных \[Guild]:

```template
{% do guild.clearAttributes('example') %}
```

Если вы хотите очистить вообще все атрибуты на сервере, воспользуйтесь методом
[`clearAllAttributes`](../types/discord/guild#method-clearallattributes) у типа данных \[Guild]:

```template
{% do guild.clearAttributes() %}
```
