Добавлены совместные ролевые действия и команды падежей
This commit is contained in:
		@@ -42,24 +42,52 @@ $database->truncate();
 | 
				
			|||||||
$chat = new chat;
 | 
					$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 {
 | 
					    try {
 | 
				
			||||||
        // Удаление сообщения
 | 
					        // Удаление сообщения
 | 
				
			||||||
        $robot->message()->delete($update['object']['message']['conversation_message_id'], $update['object']['message']['peer_id']);
 | 
					        $robot->message()->delete($update['object']['message']['conversation_message_id'], $update['object']['message']['peer_id']);
 | 
				
			||||||
    } catch (Exception $e) {
 | 
					    } catch (Exception $e) {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Инициализация данных отправителя
 | 
					    // Конвертация кодировки текста сообщения
 | 
				
			||||||
 | 
					    // $text = mb_convert_encoding($text, 'UTF-8');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Инициализация данных аккаунта отправителя
 | 
				
			||||||
    $sender = $robot->user()->get($update['object']['message']['from_id']);
 | 
					    $sender = $robot->user()->get($update['object']['message']['from_id']);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Отправка ответа
 | 
					    if (isset($update['object']['message']['reply_message'])) {
 | 
				
			||||||
    $robot->message($update['object']['message']['peer_id'], "@id$sender->id ($sender->first_name) $text");
 | 
					        // Найдено сообщение для ответа
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Инициализация данных аккаунта отправившего сообщение для ответа (получателя)
 | 
				
			||||||
 | 
					        $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) {
 | 
					$longpoll->handle(function (array $update) use ($robot, $database, $chat) {
 | 
				
			||||||
    // Обработка события
 | 
					    // Обработка события
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // var_dump($update);
 | 
					    var_dump($update);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Сохранение события в базе данных
 | 
					    // Сохранение события в базе данных
 | 
				
			||||||
    // $database->save($update);
 | 
					    // $database->save($update);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user