From f3b49d7cba99425a212d1ba68b0c93a1112961f8 Mon Sep 17 00:00:00 2001 From: slawkens Date: Mon, 30 Aug 2021 16:16:13 +0200 Subject: [PATCH 1/2] Experimental: change player_deaths entries on name change --- system/pages/account/change_name.php | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/system/pages/account/change_name.php b/system/pages/account/change_name.php index 6771760b..077b2060 100644 --- a/system/pages/account/change_name.php +++ b/system/pages/account/change_name.php @@ -52,6 +52,29 @@ else $old_name = $player->getName(); $player->setName($name); $player->save(); + + if ($db->hasTable('player_deaths') && + $db->hasColumn('player_deaths', 'mostdamage_is_player') && + $db->hasColumn('player_deaths', 'killed_by')) { + + $namesToChange = $db->query('SELECT `player_id`, `time`, `is_player`, `killed_by`, `mostdamage_is_player`, `mostdamage_by` FROM `player_deaths` WHERE (`is_player` = 1 AND `killed_by` = ' . $db->quote($old_name) . ') OR (`mostdamage_is_player` = 1 AND `mostdamage_by` = ' . $db->quote($old_name) . ');'); + + if ($namesToChange->rowCount() > 0) { + foreach ($namesToChange->fetchAll(PDO::FETCH_ASSOC) as $row) { + $changeKey = ''; + if ($row['is_player'] == '1' && $row['killed_by'] == $old_name) { + $changeKey = 'killed_by'; + } else if ($row['mostdamage_is_player'] == '1' && $row['mostdamage_by'] == $old_name) { + $changeKey = 'mostdamage_by'; + } + + if (!empty($changeKey)) { + $db->update('player_deaths', [$changeKey => $name], ['player_id' => $row['player_id'], 'time' => $row['time']]); + } + } + } + } + $account_logged->setCustomField("premium_points", $points - $config['account_change_character_name_points']); $account_logged->logAction('Changed name from ' . $old_name . ' to ' . $player->getName() . '.'); $twig->display('success.html.twig', array( @@ -83,4 +106,4 @@ else } } -?> \ No newline at end of file +?> From 1764ce0519e62fc8b0ca7ebc6de55ee74f3863f7 Mon Sep 17 00:00:00 2001 From: slawkens Date: Mon, 30 Aug 2021 16:10:54 +0200 Subject: [PATCH 2/2] Fix: undefined variable notice on database_log enabled --- system/libs/pot/OTS_Base_DB.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/libs/pot/OTS_Base_DB.php b/system/libs/pot/OTS_Base_DB.php index e6ffa9be..21902b9c 100644 --- a/system/libs/pot/OTS_Base_DB.php +++ b/system/libs/pot/OTS_Base_DB.php @@ -83,10 +83,10 @@ abstract class OTS_Base_DB extends PDO implements IOTS_DB $startTime = microtime(true); } - $ret = parent::query(...$args);; + $ret = parent::query(...$args); if($this->logged) { $totalTime = microtime(true) - $startTime; - $this->log .= round($totalTime, 4) . ' ms - ' . $query . PHP_EOL; + $this->log .= round($totalTime, 4) . ' ms - ' . $args[0] . PHP_EOL; } return $ret;