EnotPRO Logo EnotPRO

varcloud

Макрос !{varcloud} подставляет значение облачной переменной непосредственно в текст. Это альтернатива реакции GetVarCloud, но без необходимости предварительной загрузки переменной в контекст.

Сравнение с GetVarCloud:

Характеристика !{varcloud} GetVarCloud
Синтаксис !{varcloud...} Реакция в триггере
Загрузка в контекст Нет (значение подставляется сразу) Да (через ${var.type.name})
Когда использовать Необходимо значение Необходимы все значения
Скорость Быстрее Медленнее (требуется отдельный вызов)

💡 Совет: Для подстановки значения переменной в сообщение используйте !{varcloud}. Для сложной логики (проверки, изменения) используйте GetVarCloud.

Синтаксис

   !{varcloud|
     type: тип;
     name: название;
     userid: ID пользователя;
     chatid: ID чата;
   }

Короткая форма

!{varcloud|type: person; name: score}

Параметры

Параметр Тип Обязательный Описание Значение по умолчанию
type Строка ❌ Нет Тип облачной переменной person
name Строка ✅ Да* Название переменной
id Строка ❌ Нет ID переменной (вместо type + name)
userid Число ❌ Нет ID пользователя (для person и member) target.user.id
chatid Число ❌ Нет ID чата (для member и chat) target.chat.id
  • name обязателен, если не указан id.

Типы переменных (type)

Тип Описание Требует userid Требует chatid
person Личная переменная пользователя ❌ Нет (по умолчанию — текущий) ❌ Нет
member Переменная участника чата ❌ Нет (по умолчанию — текущий) ❌ Нет (по умолчанию — текущий)
chat Переменная чата/канала ❌ Нет ❌ Нет (по умолчанию — текущий)
dynamic Динамическая переменная ❌ Нет ❌ Нет
global Глобальная переменная (для всех пользователей) ❌ Нет ❌ Нет

💡 По умолчанию:

  • userid берётся из target.user.id (текущий пользователь)
  • chatid берётся из target.chat.id (текущий чат)

Примеры

Простейший пример (текущий пользователь)

Переменная score текущего пользователя

Ваш счёт: !{varcloud|type: person; name: score}

Если у пользователя score = 125, результат: Ваш счёт: 125

Сокращённая запись (type по умолчанию — person)

То же самое, но короче

!{varcloud|name: score}

Переменная другого пользователя

Баланс пользователя с ID 123456789

!{varcloud|type: person; name: balance; userid: 123456789}

Переменная участника чата

Предупреждения пользователя в текущем чате

Предупреждений: !{varcloud|type: member; name: warns}

Переменная чата

Приветственное сообщение, отправленное в этом чате

ID приветствия: !{varcloud|type: chat; name: welcome_message_id}

Глобальная переменная

Глобальный счётчик запусков бота

Всего запусков: !{varcloud|type: global; name: total_starts}

Использование id вместо type + name

Если вы знаете внутренний ID переменной, можно использовать его:

!{varcloud|id: 12345}

⚠️ Примечание: id — это технический идентификатор переменной в системе. Обычно проще использовать type +name.

В сообщении с текстом

SendMessage → Текст: | Привет, ${user.name}! Твой текущий счёт: !{varcloud|name: score} Для пополнения отправь /deposit

С значением по умолчанию (через |default)

Макрос !{varcloud} можно комбинировать с параметром |default для подстановки значения по умолчанию, если переменная не существует:

!{varcloud|name: score|default: 0}

Если переменная score не существует, результат будет 0

Типичные ошибки и их решение

Ошибка Причина Решение
Макрос ничего не выводит Переменная не существует Используйте default: значение
Выводится [object Object] Переменная содержит сложный объект Используйте !{pick} для извлечения конкретного поля
userid не подставлен Не указан userid, а контекст не содержит target.user Укажите userid явно
Переменная не та Неправильный type Проверьте, где создана переменная (person, member, chat)
© 2025 EnotPRO. Все права защищены.