Библиотека на основе которой собрано Vatuu/discord-rpc
Жми сюда
- Чтобы использовать пакет вам надо создать приложение в discord.
- Название
игры \ приложения
- это название вашего приложения, вы его можете в любой момент поменять в настройках по ссылке в п. 1. - Чтобы ваше приложение отображало иконку, надо загрузить изображения в "Rich Presence" (см. ссылку в п. 1), загружаете и даете ID вашей картинке (может не сразу работать, у меня только через пару минут начало подгружать ее)
$appId = ""; // ID приложения что вы создали до этого
$discord = new DiscordRPC($appId);
// заголовок
$discord->setState("Игроков на сервере");
// Подзагловок
$discord->setDetails("...");
// Иконка
$discord->setBigImage("ID картинки");
// нужен чтобы отображалось сколько времени вы провели в приложении
$discord->setStartTimestamp((Time::now())->getTime());
$discord->updateState();
После любого изменения заголовка, подзаголовка и т.д. НУЖНО вызвать метод updateState
чтобы эти изменения применились
Callback события в основном бесполезные тут (имхо конечно, не видел я что-то чтобы хоть кто-то делал игры на DN), единственное для которого есть применение это DiscordRPC::EVENT_READY
т.к. там возвращается объект User с данными (ну может кому-то захочется статистику делать, или там бан по ID сделать)
$discord->on(DiscordRPC::EVENT_READY, function (User $user) {
// пример формирования ссылки для получения аватара
// $avatar = "https://cdn.discordapp.com/avatars/" . $user->getId() . "/" . $user->getAvatar() . ".png";
var_dump($user->getName());
});
Событие — Аргументы в callback функции
DiscordRPC::EVENT_READY - User $user
DiscordRPC::EVENT_JOIN_REQUES - User $user
DiscordRPC::EVENT_JOIN - string $secret
DiscordRPC::EVENT_SPECTATE - string $spectateSecret
DiscordRPC::EVENT_ERROR - int $code, string $message
DiscordRPC::EVENT_DISCONNECTED - int $code, string $message
Чтобы события работали надо постоянно вызывать метод updateCallbacks
setParty
- принимает 3 значения: ID, текущее количество игроков, максимальное количество игроков
setEndTimestamp
- принимает значение будущего, для обратного отсчета (время до закрытия лобби и прочие моменты когда нужно вывести информацию об каком то ограниченном событии)
setSecrets
- для создания кнопки в профиле "присоединиться". Вот тут, конечно, события будут нам нужны
jppm add jphp-discord-rpc-ext@git+https://github.com/silentdeath76/JPHP-DiscordRPC-ext