diff --git a/CHANGELOG.md b/CHANGELOG.md index 010228cac..b77441213 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## [23.10.1] 9/16/2025 + +### Hotfix +* Fixed Mail Key Bug ([#5015](https://github.com/EQEmu/Server/pull/5015)) @Kinglykrab 2025-09-16 + ## [23.10.0] 9/15/2025 ### Build diff --git a/common/shareddb.cpp b/common/shareddb.cpp index 4527bfc5c..0a9dab91f 100644 --- a/common/shareddb.cpp +++ b/common/shareddb.cpp @@ -122,7 +122,7 @@ bool SharedDatabase::SetGMFlymode(uint32 account_id, uint8 flymode) return a.id > 0; } -void SharedDatabase::SetMailKey(uint32 character_id, int ip_address, int mail_key) +void SharedDatabase::SetMailKey(uint32 character_id, uint32 ip_address, uint32 mail_key) { std::string full_mail_key; @@ -133,6 +133,10 @@ void SharedDatabase::SetMailKey(uint32 character_id, int ip_address, int mail_ke } auto e = CharacterDataRepository::FindOne(*this, character_id); + if (!e.id) { + LogError("Failed to find character_id [{}] when setting mailkey", character_id); + return; + } e.mailkey = full_mail_key; @@ -422,7 +426,7 @@ bool SharedDatabase::DeleteSharedBankSlot(uint32 char_id, int16 slot_id) int32 SharedDatabase::GetSharedPlatinum(uint32 account_id) { const auto& e = AccountRepository::FindOne(*this, account_id); - + return e.sharedplat; } diff --git a/common/shareddb.h b/common/shareddb.h index 463aaac96..2a78be670 100644 --- a/common/shareddb.h +++ b/common/shareddb.h @@ -84,7 +84,7 @@ public: bool GetCommandSubSettings(std::vector &command_subsettings); bool SetGMInvul(uint32 account_id, bool gminvul); bool SetGMFlymode(uint32 account_id, uint8 flymode); - void SetMailKey(uint32 character_id, int ip_address, int mail_key); + void SetMailKey(uint32 character_id, uint32 ip_address, uint32 mail_key); struct MailKeys { std::string mail_key; std::string mail_key_full; diff --git a/common/version.h b/common/version.h index 0b9b4e0e6..25688ca0d 100644 --- a/common/version.h +++ b/common/version.h @@ -25,7 +25,7 @@ // Build variables // these get injected during the build pipeline -#define CURRENT_VERSION "23.10.0-dev" // always append -dev to the current version for custom-builds +#define CURRENT_VERSION "23.10.1-dev" // always append -dev to the current version for custom-builds #define LOGIN_VERSION "0.8.0" #define COMPILE_DATE __DATE__ #define COMPILE_TIME __TIME__ diff --git a/package.json b/package.json index 2ad9967a4..f8782b8f0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "eqemu-server", - "version": "23.10.0", + "version": "23.10.1", "repository": { "type": "git", "url": "https://github.com/EQEmu/Server.git" diff --git a/world/client.cpp b/world/client.cpp index 52244e531..a2d35a485 100644 --- a/world/client.cpp +++ b/world/client.cpp @@ -985,7 +985,7 @@ bool Client::HandleEnterWorldPacket(const EQApplicationPacket *app) { safe_delete(outapp); // set mailkey - used for duration of character session - int mail_key = EQ::Random::Instance()->Int(1, INT_MAX); + uint32 mail_key = EQ::Random::Instance()->Int(1, INT_MAX); database.SetMailKey(charid, GetIP(), mail_key); if (UCSServerAvailable_) {