Перейти к основному содержимому

Готовые чаты

Обзор

Реализация чата с учетом тонкостей очень сложна. Мы предлагаем воспользоваться чатом, встроенным в оверлей.

Вызов окна чата

+2-3 Request

Открыть главный чат:

gp.channels.openChat();

Открыть любой чат по ID канала:

gp.channels.openChat({ id: 123 });

Открыть чат, отфильтровав сообщения по тегам:

gp.channels.openChat({ tags: ['trade'] });
gp.channels.openChat({ tags: ['location', 'underworld'] });

Сообщения в чате будут отправляться включая эти теги автоматически.

Опции открытия чата:

gp.channels.openChat({
// id канала
id: 123,
// теги сообщений,
// сообщения будут показаны только те, у которых есть оба тега: location и underworld
tags: ['location', 'underworld']
});
info

Игрок автоматически вступает в канал при открытии. Убедитесь, что в канал можно присоединяться всем и он не запаролен.

События для отслеживания открытия и закрытия окна:

// Открыли чат
gp.channels.on('openChat', () => {});
// Закрыли чат
gp.channels.on('closeChat', () => {});
// Не удалось открыть чат
gp.channels.on('error:openChat', (err) => {
// ошибки могут быть связаны с доступом или получением чата
});

Узнать возможно ли показать главный чат:

if (gp.channels.isMainChatEnabled) {
// Чат включен, можно показывать кнопку чата
}

Узнать ID главного чата:

gp.channels.mainChatId;

Возможные ошибки приведены в таблице ниже:

базовые ошибкисценарные ошибки
player_not_foundempty_channel_id
project_not_foundchannel_not_found
origin_not_allowedaccess_denied
player_banned
internal_error

Выбор основного чата

  1. Перейдите в панель управления в раздел Каналы
  2. Выберите главный чат, либо создайте новый сразу в выборе чата. Создастся базовый чат со всеми настройками для быстрого старта.
  3. Включите главный чат.

Открыть персональный чат

+2-3 Request

Вы можете дать возможность игрокам общаться в личных сообщениях друг с другом.

gp.channels.openPersonalChat({
// id игрока
playerId: 5499172001,
// теги сообщений,
// сообщения будут показаны только те, у которых есть оба тега: location и underworld
tags: ['location', 'underworld']
});

Открыть фид игрока

+2-3 Request

Вы можете дать возможность игрокам смотреть ленту игрока и оставлять в ней сообщения.

gp.channels.openFeed({
// id игрока
playerId: 5499172001,
// теги сообщений,
// сообщения будут показаны только те, у которых есть оба тега: location и underworld
tags: ['location', 'underworld']
});

Узнать о новом сообщении

FREE

Чтобы игрок постоянно не проверял чат или личные сообщения, можно подписаться на сообщения в чате.

При отправке сообщения всем игрокам в канале приходит уведомление о новом сообщении:

gp.channels.on('event:message', (message) => {
// ID канала
message.channelId;
// ID сообщения
message.id;
// ID автора сообщения
message.authorId;
// Поля автора (аватар, имя, кастомные поля)
message.player;
// Текст сообщения
message.text;
// Теги сообщения
message.tags;
// Дата отправки сообщения
message.createdAt;
// Назначение сообщения: 'CHANNEL' | 'PERSONAL' | 'FEED'
message.target;
});

Вы можете обратить внимание на message.target:

  • CHANNEL: в чате появилось новое сообщение
  • PERSONAL: игроку написали в личные сообщения
  • FEED: игроку написали в фид

Оставайтесь на связи

С другими разделами документации вы можете ознакомиться здесь. Для начала работы вы можете ознакомиться с нашими туториалами.

Сообщество GamePush в Telegram: @gs_community.

Для ваших обращений e-mail: [email protected]

Желаем вам успехов!