Рефакторинг, очистка, работа над ошибками, связанными с базой, отказ от глобальной переменной $user во многих файлах.

Singleton в некоторых местах вместо решения #42.
Новые шаги для решения #16 и #52.
Closes #42.
Closes #32.
Closes #31.
This commit is contained in:
Igor Barkov (iwork)
2022-01-27 01:15:33 +02:00
parent b1ba212c8c
commit 3502904656
82 changed files with 1575 additions and 2015 deletions
+11 -10
View File
@@ -5,6 +5,7 @@ use Battles\GameLogs;
use Battles\InventoryItem;
use Battles\Nick;
use Battles\Template;
use Battles\User;
require_once 'functions.php';
@@ -27,11 +28,11 @@ if ($_SESSION['receiverName']) {
$sendItemId = $_POST['item_id'] ?? 0;
$telegraphText = $_POST['message'] ?? 0;
if ($submit == 'sendMessage' && $telegraphText && $user->getMoney()) {
if ($submit == 'sendMessage' && $telegraphText && User::getInstance()->getMoney()) {
if ($telegraphText) {
$user->setMoney($user->getMoney() - 1);
Bank::setWalletMoney($user->getMoney(), $user->getId());
User::getInstance()->setMoney(User::getInstance()->getMoney() - 1);
Bank::setWalletMoney(User::getInstance()->getMoney(), User::getInstance()->getId());
db::c()->query('INSERT INTO `telegraph` (`receiver`,`text`) VALUES (?i,"?s")', $receiverId, $telegraphText);
$statusMessage = 'Сообщение отправлено.';
} else {
@@ -39,16 +40,16 @@ if ($_SESSION['receiverName']) {
}
}
if ($submit == 'sendItem' && $sendItemId && $user->getMoney()) {
$res = db::c()->query('SELECT name FROM inventory WHERE owner_id = ?i AND item_id = ?i AND dressed_slot = 0 AND on_sale = 0', $user->getId(), $sendItemId)->fetch_assoc();
if ($submit == 'sendItem' && $sendItemId && User::getInstance()->getMoney()) {
$res = db::c()->query('SELECT name FROM inventory WHERE owner_id = ?i AND item_id = ?i AND dressed_slot = 0 AND on_sale = 0', User::getInstance()->getId(), $sendItemId)->fetch_assoc();
if (!$res) {
$statusMessage = "Предмет не найден в рюкзаке.";
} else {
$user->setMoney($user->getMoney() - 1);
Bank::setWalletMoney($user->getMoney(), $user->getId());
User::getInstance()->setMoney(User::getInstance()->getMoney() - 1);
Bank::setWalletMoney(User::getInstance()->getMoney(), User::getInstance()->getId());
db::c()->query('UPDATE `inventory` SET owner_id = ?i WHERE item_id= ?i AND owner_id = ?i', $receiverId, $sendItemId, $_SESSION['uid']);
$statusMessage = 'Предмет "' . $res['name'] . '" передан персонажу ' . Nick::id($receiverId)->short(1);
$receiverLogMessage = 'Получен предмет "' . $res['name'] . '" от персонажа ' . Nick::id($_SESSION['uid'])->short(1);
$statusMessage = 'Предмет "' . $res['name'] . '" передан персонажу ' . User::getInstance($receiverId)->getLogin();
$receiverLogMessage = 'Получен предмет "' . $res['name'] . '" от персонажа ' . User::getInstance()->getLogin();
db::c()->query('INSERT INTO `telegraph` (`receiver`,`text`) VALUES (?i,"?s")', $receiverId, 'Почтовый перевод: ' . $res['name'] . ' от персонажа ' . $user['login'] . '.');
// Пишем в лог отправителю.
GameLogs::addUserLog($_SESSION['uid'], $statusMessage, 'почта');
@@ -57,7 +58,7 @@ if ($_SESSION['receiverName']) {
}
}
$queryItems = db::c()->query('SELECT * FROM inventory WHERE dressed_slot = 0 AND on_sale = 0 AND owner_id = ?i', $user->getId());
$queryItems = db::c()->query('SELECT * FROM inventory WHERE dressed_slot = 0 AND on_sale = 0 AND owner_id = ?i', User::getInstance()->getId());
while ($row = $queryItems->fetch_assoc()) {
$iteminfo[] = new InventoryItem($row);
}