70 lines
3.3 KiB
PHP
70 lines
3.3 KiB
PHP
<?php
|
||
|
||
declare(strict_types=1);
|
||
|
||
namespace mirzaev\vk\robot\bobby\programs;
|
||
|
||
// Фреймворк ВКонтакте
|
||
use mirzaev\vk\robots\robot;
|
||
|
||
// Модуль чат-робота для фреймворка ВКонтакте
|
||
use mirzaev\vk\chat\core,
|
||
mirzaev\vk\chat\program;
|
||
|
||
/**
|
||
* Программа: "ответ группе"
|
||
*
|
||
* Обрабатывает ответ напрвленный не пользователю, а группе
|
||
*
|
||
* @package mirzaev\vk\robot\bobby\programs
|
||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||
*/
|
||
class reply_to_group extends program
|
||
{
|
||
/**
|
||
* Конструктор
|
||
*
|
||
* @param robot $robot Робот, который будет выполнять команду
|
||
* @param array $accounts Реестр аккаунтов которым разрешено выполнять команду
|
||
*/
|
||
public function __construct(
|
||
public robot $robot,
|
||
public array $accounts = []
|
||
) {
|
||
parent::__construct(function (core $core, robot $robot, array &$update): void {
|
||
if (isset($update['object']['message']['reply_message'])) {
|
||
// Найдено сообщение для ответа
|
||
|
||
if ($update['object']['message']['reply_message']['from_id'] < 0) {
|
||
// Ответ на сообщение группы
|
||
|
||
// Инициализация данных аккаунта отправителя
|
||
$sender = $robot->user()->get($update['object']['message']['from_id'], name_case: 'gen');
|
||
|
||
if ($update['object']['message']['reply_message']['from_id'] === -217012993) {
|
||
// Ответ на сообщение Бобби Мирзаева
|
||
|
||
// Отправка сообщения с ролевым действием
|
||
$core->message($robot->message()->destination($update['object']['message']['peer_id'])->text("@club217012993 (Бобби) избил @id$sender->id ($sender->first_name) до полусмерти")->mentions(false));
|
||
} else if ($update['object']['message']['reply_message']['from_id'] === -191417381) {
|
||
// Ответ на сообщение Шамиля Мирзаева
|
||
|
||
// Отправка сообщения с ролевым действием
|
||
$core->message($robot->message()->destination($update['object']['message']['peer_id'])->text('Как дела, @club191417381 (брат)? Давай свалим отсюда?')->mentions(false));
|
||
} else {
|
||
// Ответ на сообщение другой группы
|
||
|
||
// Отправка сообщения с ролевым действием
|
||
$core->message($robot->message()->destination($update['object']['message']['peer_id'])->text('@club' . $update['object']['message']['reply_message']['from_id'] . ' (Слышь), здристни отсюда')->mentions(false));
|
||
}
|
||
|
||
// Завершение выполнения команд
|
||
$core->break();
|
||
|
||
return;
|
||
}
|
||
}
|
||
}, $robot, $accounts);
|
||
}
|
||
}
|