refactor php8 to use native str_starts_with();

This commit is contained in:
Ivor Barhansky 2023-10-16 13:52:58 +03:00
parent 53f0e1108f
commit 4113c4a1da
3 changed files with 147 additions and 70 deletions

File diff suppressed because one or more lines are too long

View File

@ -1,63 +1,63 @@
<?php
if(!defined('GAME')) {
die();
if (!defined('GAME')) {
die();
}
session_start();
function js_help($txt, $color = 'Black') {
global $r;
$r['js'] .= 'chat.sendMsg(["new", "'.time().'", "6", "", "'.$u->info['login'].'", "<small>'.$txt.'</small>", "'.$color.'", "1", "1", "0"]);';
function jsHelp($txt, $color = 'Black'): void
{
global $r, $u;
$r['js'] .= 'chat.sendMsg(["new", "' . time() . '", "6", "", "' . $u->info['login'] . '", "<small>' . $txt . '</small>", "' . $color . '", "1", "1", "0"]);';
}
if(!isset($_SESSION['help_step']) || $_SESSION['help_step'] < 1) {
$_SESSION['help_step'] = 1;
if (!isset($_SESSION['help_step']) || $_SESSION['help_step'] < 1) {
$_SESSION['help_step'] = 1;
}
$go_help = array(
1 => array(
1 => 2,
2 => 3,
3 => 4
),
2 => array(0 => 1),
3 => array(0 => 1 , 1 => 3),
4 => array(0 => 1)
);
$go_help = [
1 => [
1 => 2,
2 => 3,
3 => 4,
],
2 => [0 => 1],
3 => [0 => 1, 1 => 3],
4 => [0 => 1],
];
if($chat->str_count($_POST['msg'], 2) == '/[') {
$_POST['msg'] = str_replace('/[','',$_POST['msg']);
$_POST['msg'] = str_replace(']','',$_POST['msg']);
$_POST['msg'] = round((int)$_POST['msg']);
if(isset($go_help[$_SESSION['help_step']][$_POST['msg']])) {
$_SESSION['help_step'] = $go_help[$_SESSION['help_step']][$_POST['msg']];
} else {
js_help('----------------------------------------------------------------------------------------');
js_help('<b><font color=red>Ошибка, раздел справки не найден</font></b>');
}
if (str_starts_with($_POST['msg'], '/[')) {
$_POST['msg'] = str_replace(['/[', ']'], '', $_POST['msg']);
$_POST['msg'] = round((int)$_POST['msg']);
if (isset($go_help[$_SESSION['help_step']][$_POST['msg']])) {
$_SESSION['help_step'] = $go_help[$_SESSION['help_step']][$_POST['msg']];
} else {
jsHelp('----------------------------------------------------------------------------------------');
jsHelp('<b style="color: red">Ошибка, раздел справки не найден</b>');
}
}
if($chat->str_count($_POST['msg'],5)=='/help' || $_SESSION['help_step']==1)
{
js_help('<b>Добро пожаловать в раздел справки!</b>');
js_help('Вырерите раздел справки: <i>(Отправить ответ в чат. Пример: &quot;/[1]&quot;)</i>');
js_help('[1] Информация о пользовании чатом');
js_help('[2] Нагрузка сервера');
js_help('[3] Закрыть справку');
}elseif($_SESSION['help_step']==2) {
js_help('<b>Раздел:</b> Информация о пользовании чатом');
js_help('<b>Чат</b> - выглядит как обычная веб-страница, где можно прочесть последние несколько десятков фраз, написанные участниками чата и модераторами. Страница чата автоматически обновляется с заданной периодичностью. Участники чата которые нарушили правила общения могут получают молчанку и не могут общаться определенное время. Для более подробной информации выберите следующий раздел.');
js_help('Вырерите раздел справки: <i>(Отправить ответ в чат. Пример: &quot;/[1]&quot;)</i>');
js_help('[0] Вернуться назад');
}elseif($_SESSION['help_step']==3) {
$load = sys_getloadavg();
js_help('<b>Нагрузка:</b> '.$load[0].' / '.$load[1].' / '.$load[2]);
js_help('[1] Обновить');
js_help('[0] Вернуться назад');
} elseif($_SESSION['help_step']==4) {
js_help('Спасибо за использование подсказки');
$_SESSION['help_step'] = null;
if (str_starts_with($_POST['msg'], '/help') || $_SESSION['help_step'] == 1) {
jsHelp('<b>Добро пожаловать в раздел справки!</b>');
jsHelp('Вырерите раздел справки: <i>(Отправить ответ в чат. Пример: &quot;/[1]&quot;)</i>');
jsHelp('[1] Информация о пользовании чатом');
jsHelp('[2] Нагрузка сервера');
jsHelp('[3] Закрыть справку');
} elseif ($_SESSION['help_step'] == 2) {
jsHelp('<b>Раздел:</b> Информация о пользовании чатом');
jsHelp('<b>Чат</b> - выглядит как обычная веб-страница, где можно прочесть последние несколько десятков фраз, написанные участниками чата и модераторами.
Страница чата автоматически обновляется с заданной периодичностью. Участники чата которые нарушили правила общения могут получают молчанку и не могут общаться определенное время.
Для более подробной информации выберите следующий раздел.');
jsHelp('Вырерите раздел справки: <i>(Отправить ответ в чат. Пример: &quot;/[1]&quot;)</i>');
jsHelp('[0] Вернуться назад');
} elseif ($_SESSION['help_step'] == 3) {
$load = sys_getloadavg();
jsHelp('<b>Нагрузка:</b> ' . $load[0] . ' / ' . $load[1] . ' / ' . $load[2]);
jsHelp('[1] Обновить');
jsHelp('[0] Вернуться назад');
} elseif ($_SESSION['help_step'] == 4) {
jsHelp('Спасибо за использование подсказки');
$_SESSION['help_step'] = null;
}
js_help('----------------------------------------------------------------------------------------');
?>
jsHelp('----------------------------------------------------------------------------------------');

View File

@ -369,7 +369,7 @@ if (isset($_POST['msg']) && str_replace(' ', '', $_POST['msg']) != '') {
$msg['type'] = -3;
}
$msw = $chat->smileText($_POST['msg'], $msg['to'], $u->info['room'], $u->info['city']);
$msw = $chat->smileText($_POST['msg'], $msg['to'], $u->info['room']);
$nosend = 0;
if ($msw) {
$_POST['msg'] = $msw;
@ -379,16 +379,16 @@ if (isset($_POST['msg']) && str_replace(' ', '', $_POST['msg']) != '') {
$r['js'] .= 'chat.sendMsg(["new","' . time() . '","6","","' . $u->info['login'] . '","<small>Персонажа нет в данной комнате.</small>","Black","1","1","0"]);';
$nosend = 1;
}
} elseif ($chat->str_count($_POST['msg'], 3) == '/e ') {
} elseif (str_starts_with($_POST['msg'], '/e ')) {
$msg['type'] = 21;
$_POST['msg'] = ltrim($_POST['msg'], '/e ');
} elseif ($chat->str_count($_POST['msg'], 3) == '/е ') {
} elseif (str_starts_with($_POST['msg'], '/е ')) { // это кириллица!!
$msg['type'] = 21;
$_POST['msg'] = ltrim($_POST['msg'], '/е ');
} elseif ($chat->str_count($_POST['msg'], 4) == ' /e ') {
} elseif (str_starts_with($_POST['msg'], ' /e ')) {
$msg['type'] = 21;
$_POST['msg'] = ltrim($_POST['msg'], ' /e ');
} elseif ($chat->str_count($_POST['msg'], 4) == ' /е ') {
} elseif (str_starts_with($_POST['msg'], ' /е ')) { // это кириллица!!
$msg['type'] = 21;
$_POST['msg'] = ltrim($_POST['msg'], ' /е ');
}