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 +?>