Готовые чаты
Обзор
Реализация чата с учетом тонкостей очень сложна. Мы предлагаем воспользоваться чатом, встроенным в оверлей.
Вызов окна чата
+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']
});
Игрок автоматически вступает в канал при открытии. Убедитесь, что в канал можно присоединяться всем и он не запаролен.
События для отслеживания открытия и закрытия окна:
// Открыли чат
gp.channels.on('openChat', () => {});
// Закрыли чат
gp.channels.on('closeChat', () => {});
// Не удалось открыть чат
gp.channels.on('error:openChat', (err) => {
// ошибки могут быть связаны с доступом или получением чата
});
Узнать возможно ли показать главный чат:
if (gp.channels.isMainChatEnabled) {
// Чат включен, можно показывать кнопку чата
}
Узнать ID главного чата:
gp.channels.mainChatId;
Возможные ошибки приведены в таблице ниже:
базовые ошибки | сценарные ошибки |
---|---|
player_not_found | empty_channel_id |
project_not_found | channel_not_found |
origin_not_allowed | access_denied |
player_banned | |
internal_error |
Выбор основного чата
- Перейдите в панель управления в раздел Каналы
- Выберите главный чат, либо создайте новый сразу в выборе чата. Создастся базовый чат со всеми настройками для быстрого старта.
- Включите главный чат.
Открыть персональный чат
+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]
Желаем вам успехов!