From a88e25a8e37fcacef5efa206ccb2f706f150d461 Mon Sep 17 00:00:00 2001 From: Lemongrass3110 Date: Thu, 18 Aug 2022 00:44:23 +0200 Subject: [PATCH] Fixed returned mails from deleted chars (#7181) Fixes #7161 Thanks to @Pokye --- sql-files/upgrades/upgrade_20220818.sql | 7 +++++++ src/char/char.cpp | 4 ++++ 2 files changed, 11 insertions(+) create mode 100644 sql-files/upgrades/upgrade_20220818.sql diff --git a/sql-files/upgrades/upgrade_20220818.sql b/sql-files/upgrades/upgrade_20220818.sql new file mode 100644 index 0000000000..f27194ae86 --- /dev/null +++ b/sql-files/upgrades/upgrade_20220818.sql @@ -0,0 +1,7 @@ +UPDATE `mail` +SET `send_id`='0' +WHERE `send_id` NOT IN ( + select `char_id` + from `char` +) +; diff --git a/src/char/char.cpp b/src/char/char.cpp index 82b27799ad..0f0a29c71a 100644 --- a/src/char/char.cpp +++ b/src/char/char.cpp @@ -1729,6 +1729,10 @@ enum e_char_del_response char_delete(struct char_session_data* sd, uint32 char_i if (SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `%s` WHERE `dest_id`='%d'", schema_config.mail_db, char_id)) Sql_ShowDebug(sql_handle); + /* mark mails as sent from server, if a character gets deleted */ + if (SQL_ERROR == Sql_Query(sql_handle, "UPDATE `%s` SET `send_id`='0' WHERE `send_id`='%d'", schema_config.mail_db, char_id)) + Sql_ShowDebug(sql_handle); + #ifdef ENABLE_SC_SAVING /* status changes */ if( SQL_ERROR == Sql_Query(sql_handle, "DELETE FROM `%s` WHERE `account_id` = '%d' AND `char_id`='%d'", schema_config.scdata_db, account_id, char_id) )