Добавлены совместные ролевые действия и команды падежей
This commit is contained in:
		@@ -42,24 +42,52 @@ $database->truncate();
 | 
			
		||||
$chat = new chat;
 | 
			
		||||
 | 
			
		||||
// Инициализация команды "ролевое действие"
 | 
			
		||||
$chat->pattern('/\*([A-я\w\s]+)\*/', new command(function (array $update, string $text) use ($robot) {
 | 
			
		||||
$chat->pattern('/(*UTF8)\*([A-я\w\s]+)\*/', new command(function (array $update, string $text) use ($robot) {
 | 
			
		||||
    try {
 | 
			
		||||
        // Удаление сообщения
 | 
			
		||||
        $robot->message()->delete($update['object']['message']['conversation_message_id'], $update['object']['message']['peer_id']);
 | 
			
		||||
    } catch (Exception $e) {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Инициализация данных отправителя
 | 
			
		||||
    // Конвертация кодировки текста сообщения
 | 
			
		||||
    // $text = mb_convert_encoding($text, 'UTF-8');
 | 
			
		||||
 | 
			
		||||
    // Инициализация данных аккаунта отправителя
 | 
			
		||||
    $sender = $robot->user()->get($update['object']['message']['from_id']);
 | 
			
		||||
 | 
			
		||||
    // Отправка ответа
 | 
			
		||||
    $robot->message($update['object']['message']['peer_id'], "@id$sender->id ($sender->first_name) $text");
 | 
			
		||||
    if (isset($update['object']['message']['reply_message'])) {
 | 
			
		||||
        // Найдено сообщение для ответа
 | 
			
		||||
 | 
			
		||||
        // Инициализация данных аккаунта отправившего сообщение для ответа (получателя)
 | 
			
		||||
        $receiver = $robot->user()->get($update['object']['message']['reply_message']['from_id']);
 | 
			
		||||
 | 
			
		||||
        // Поиск падежей для получателя
 | 
			
		||||
        preg_match_all('/(*UTF8)\s\|([А-я\w]+)$/', $text, $matches);
 | 
			
		||||
 | 
			
		||||
        // Инициализация падежа получателя
 | 
			
		||||
        $receiver_case = $matches[1][0];
 | 
			
		||||
 | 
			
		||||
        // Инициализация цели для ролевого действия
 | 
			
		||||
        $target = " @id$receiver->id ($receiver->first_name$receiver_case)";
 | 
			
		||||
    } else $target = '';
 | 
			
		||||
 | 
			
		||||
    // Поиск падежей для отправителя
 | 
			
		||||
    preg_match_all('/(*UTF8)^\|([А-я\w]+)\s/', $text, $matches);
 | 
			
		||||
 | 
			
		||||
    // Инициализация падежа отправителя
 | 
			
		||||
    $sender_case = $matches[1][0];
 | 
			
		||||
 | 
			
		||||
    // Удаление команд падежей из строки
 | 
			
		||||
    $text = preg_replace('/(*UTF8)\s?\|[А-я\w]+\s?/', '', $text, 500);
 | 
			
		||||
 | 
			
		||||
    // Отправка сообщения с ролевым действием
 | 
			
		||||
    $robot->message($update['object']['message']['peer_id'], "@id$sender->id ($sender->first_name$sender_case) $text$target");
 | 
			
		||||
}));
 | 
			
		||||
 | 
			
		||||
$longpoll->handle(function (array $update) use ($robot, $database, $chat) {
 | 
			
		||||
    // Обработка события
 | 
			
		||||
 | 
			
		||||
    // var_dump($update);
 | 
			
		||||
    var_dump($update);
 | 
			
		||||
 | 
			
		||||
    // Сохранение события в базе данных
 | 
			
		||||
    // $database->save($update);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user