Skip to content

Commit a9571bc

Browse files
authored
feat(Scripts/Commands): show level on character deleted list, show characters from most recent (azerothcore#25791)
1 parent 40a52c8 commit a9571bc

3 files changed

Lines changed: 19 additions & 6 deletions

File tree

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
--
2+
-- Show character level in `.character deleted list` output
3+
--
4+
DELETE FROM `acore_string` WHERE `entry` IN (1016, 1017, 1018, 1026);
5+
INSERT INTO `acore_string` (`entry`, `content_default`, `locale_koKR`, `locale_frFR`, `locale_deDE`, `locale_zhCN`, `locale_zhTW`, `locale_esES`, `locale_esMX`, `locale_ruRU`) VALUES
6+
(1016, '| GUID | Name | Level | Account | Delete Date |', NULL, NULL, '| GUID | Name | Level | Account | gelöscht am |', '| 唯一标识符 | 名称 | 等级 | 账号 | 删除日期 |', NULL, NULL, NULL, NULL),
7+
(1017, '| {} | {} | {} | {} ({}) | {} |', NULL, NULL, '| {} | {} | {} | {} ({}) | {} |', '| {} | {} | {} | {} ({}) | {} |', NULL, NULL, NULL, NULL),
8+
(1018, '==================================================================================================', NULL, NULL, '==================================================================================================', '错误:510', NULL, NULL, NULL, NULL),
9+
(1026, 'GUID: {} Name: {} Level: {} Account: {} ({}) Date: {}', NULL, NULL, 'GUID: {} Name: {} Level: {} Account: {} ({}) Datum: {}', '唯一标识符: {} 名称: {} 等级: {} 账号: {} ({}) 时间: {}', NULL, NULL, NULL, NULL);

src/server/database/Database/Implementation/CharacterDatabase.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -402,10 +402,10 @@ void CharacterDatabaseConnection::DoPrepareStatements()
402402
PrepareStatement(CHAR_UPD_CHARACTER_POSITION, "UPDATE characters SET position_x = ?, position_y = ?, position_z = ?, orientation = ?, map = ?, zone = ?, trans_x = 0, trans_y = 0, trans_z = 0, transguid = 0, taxi_path = '', cinematic = 1 WHERE guid = ?", CONNECTION_ASYNC);
403403
PrepareStatement(CHAR_SEL_CHARACTER_AURA_FROZEN, "SELECT characters.name FROM characters LEFT JOIN character_aura ON (characters.guid = character_aura.guid) WHERE character_aura.spell = 9454", CONNECTION_ASYNC);
404404
PrepareStatement(CHAR_SEL_CHARACTER_ONLINE, "SELECT name, account, map, zone FROM characters WHERE online > 0", CONNECTION_SYNCH);
405-
PrepareStatement(CHAR_SEL_CHAR_DEL_INFO_BY_GUID, "SELECT guid, deleteInfos_Name, deleteInfos_Account, deleteDate FROM characters WHERE deleteDate IS NOT NULL AND guid = ?", CONNECTION_SYNCH);
406-
PrepareStatement(CHAR_SEL_CHAR_DEL_INFO_BY_NAME, "SELECT guid, deleteInfos_Name, deleteInfos_Account, deleteDate FROM characters WHERE deleteDate IS NOT NULL AND deleteInfos_Name LIKE CONCAT('%%', ?, '%%')", CONNECTION_SYNCH);
407-
PrepareStatement(CHAR_SEL_CHAR_DEL_INFO_BY_NAME_LIMIT, "SELECT guid, deleteInfos_Name, deleteInfos_Account, deleteDate FROM characters WHERE deleteDate IS NOT NULL AND deleteInfos_Name LIKE CONCAT('%%', ?, '%%') LIMIT 51", CONNECTION_SYNCH);
408-
PrepareStatement(CHAR_SEL_CHAR_DEL_INFO, "SELECT guid, deleteInfos_Name, deleteInfos_Account, deleteDate FROM characters WHERE deleteDate IS NOT NULL LIMIT 51", CONNECTION_SYNCH);
405+
PrepareStatement(CHAR_SEL_CHAR_DEL_INFO_BY_GUID, "SELECT guid, deleteInfos_Name, deleteInfos_Account, deleteDate, level FROM characters WHERE deleteDate IS NOT NULL AND guid = ?", CONNECTION_SYNCH);
406+
PrepareStatement(CHAR_SEL_CHAR_DEL_INFO_BY_NAME, "SELECT guid, deleteInfos_Name, deleteInfos_Account, deleteDate, level FROM characters WHERE deleteDate IS NOT NULL AND deleteInfos_Name LIKE CONCAT('%%', ?, '%%') ORDER BY deleteDate DESC", CONNECTION_SYNCH);
407+
PrepareStatement(CHAR_SEL_CHAR_DEL_INFO_BY_NAME_LIMIT, "SELECT guid, deleteInfos_Name, deleteInfos_Account, deleteDate, level FROM characters WHERE deleteDate IS NOT NULL AND deleteInfos_Name LIKE CONCAT('%%', ?, '%%') ORDER BY deleteDate DESC LIMIT 51", CONNECTION_SYNCH);
408+
PrepareStatement(CHAR_SEL_CHAR_DEL_INFO, "SELECT guid, deleteInfos_Name, deleteInfos_Account, deleteDate, level FROM characters WHERE deleteDate IS NOT NULL ORDER BY deleteDate DESC LIMIT 51", CONNECTION_SYNCH);
409409
PrepareStatement(CHAR_SEL_CHARS_BY_ACCOUNT_ID, "SELECT guid FROM characters WHERE account = ?", CONNECTION_SYNCH);
410410
PrepareStatement(CHAR_SEL_CHAR_PINFO, "SELECT totaltime, level, money, account, race, class, map, zone, gender, health, playerFlags FROM characters WHERE guid = ?", CONNECTION_SYNCH);
411411
PrepareStatement(CHAR_SEL_PINFO_BANS, "SELECT unbandate, bandate = unbandate, bannedby, banreason FROM character_banned WHERE guid = ? AND active ORDER BY bandate ASC LIMIT 1", CONNECTION_SYNCH);

src/server/scripts/Commands/cs_character.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ class character_commandscript : public CommandScript
9595
uint32 accountId; ///< the account id
9696
std::string accountName; ///< the account name
9797
time_t deleteDate; ///< the date at which the character has been deleted
98+
uint8 level; ///< the character level at the time of deletion
9899
};
99100

100101
typedef std::list<DeletedInfo> DeletedInfoList;
@@ -155,6 +156,7 @@ class character_commandscript : public CommandScript
155156
// account name will be empty for nonexisting account
156157
AccountMgr::GetName(info.accountId, info.accountName);
157158
info.deleteDate = time_t(fields[3].Get<uint32>());
159+
info.level = fields[4].Get<uint8>();
158160
foundList.push_back(info);
159161
} while (result->NextRow());
160162
}
@@ -187,11 +189,13 @@ class character_commandscript : public CommandScript
187189

188190
if (!handler->GetSession())
189191
handler->PSendSysMessage(LANG_CHARACTER_DELETED_LIST_LINE_CONSOLE,
190-
itr->lowGuid, itr->name, itr->accountName.empty() ? "<Not existing>" : itr->accountName,
192+
itr->lowGuid, itr->name, uint32(itr->level),
193+
itr->accountName.empty() ? "<Not existing>" : itr->accountName,
191194
itr->accountId, dateStr);
192195
else
193196
handler->PSendSysMessage(LANG_CHARACTER_DELETED_LIST_LINE_CHAT,
194-
itr->lowGuid, itr->name, itr->accountName.empty() ? "<Not existing>" : itr->accountName,
197+
itr->lowGuid, itr->name, uint32(itr->level),
198+
itr->accountName.empty() ? "<Not existing>" : itr->accountName,
195199
itr->accountId, dateStr);
196200
}
197201

0 commit comments

Comments
 (0)