From 63769ce72dfe8bec6ccdc0c889b03b1e842dbf47 Mon Sep 17 00:00:00 2001 From: flashwave Date: Sun, 19 Jan 2025 21:03:30 +0000 Subject: [PATCH] Allow user colours to be NULL instead of 0x40000000. --- .../2025_01_19_205947_fix_user_colour_field.php | 14 ++++++++++++++ src/Users/UserInfo.php | 4 +--- src/Users/Users.php | 5 ++--- 3 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 database/2025_01_19_205947_fix_user_colour_field.php diff --git a/database/2025_01_19_205947_fix_user_colour_field.php b/database/2025_01_19_205947_fix_user_colour_field.php new file mode 100644 index 0000000..d51633c --- /dev/null +++ b/database/2025_01_19_205947_fix_user_colour_field.php @@ -0,0 +1,14 @@ +execute(<<execute('UPDATE ser_users SET user_colour = NULL WHERE user_colour & 0x40000000'); + } +} diff --git a/src/Users/UserInfo.php b/src/Users/UserInfo.php index 5015393..7e315fe 100644 --- a/src/Users/UserInfo.php +++ b/src/Users/UserInfo.php @@ -19,12 +19,10 @@ class UserInfo { ) {} public static function fromResult(DbResult $result): UserInfo { - $colour = $result->getIntegerOrNull(2); - return new UserInfo( id: $result->getString(0), name: $result->getString(1), - colourRaw: $colour === null || $colour & 0x40000000 ? null : $colour, + colourRaw: $result->getIntegerOrNull(2), rank: $result->getInteger(3), perms: $result->getInteger(4), passKey: $result->getStringOrNull(5), diff --git a/src/Users/Users.php b/src/Users/Users.php index 008862f..02189ad 100644 --- a/src/Users/Users.php +++ b/src/Users/Users.php @@ -20,14 +20,13 @@ class Users { } public function syncApiUser(V1User $authInfo): void { - $userColourUnfixed = $authInfo->getColourRaw() ?? 0x40000000; $stmt = $this->cache->get('INSERT INTO ser_users (user_id, user_name, user_colour, user_rank, user_permissions) VALUES (?, ?, ?, ?, 0) ON DUPLICATE KEY UPDATE user_name = ?, user_colour = ?, user_rank = ?'); $stmt->nextParameter($authInfo->getId()); $stmt->nextParameter($authInfo->getName()); - $stmt->nextParameter($userColourUnfixed); + $stmt->nextParameter($authInfo->getColourRaw()); $stmt->nextParameter($authInfo->getRank()); $stmt->nextParameter($authInfo->getName()); - $stmt->nextParameter($userColourUnfixed); + $stmt->nextParameter($authInfo->getColourRaw()); $stmt->nextParameter($authInfo->getRank()); $stmt->execute(); }