30 static std::vector<ChatCommand> pdumpCommandTable =
35 static std::vector<ChatCommand> characterDeletedCommandTable =
43 static std::vector<ChatCommand> characterCommandTable =
56 static std::vector<ChatCommand> commandTable =
88 if (!searchString.empty())
118 Field* fields = result->Fetch();
128 info.
deleteDate = time_t(fields[3].GetUInt32());
129 foundList.push_back(info);
130 }
while (result->NextRow());
155 for (DeletedInfoList::const_iterator itr = foundList.begin(); itr != foundList.end(); ++itr)
161 itr->lowGuid, itr->name.c_str(), itr->accountName.empty() ?
"<Not existed>" : itr->accountName.c_str(),
162 itr->accountId, dateStr.c_str());
165 itr->lowGuid, itr->name.c_str(), itr->accountName.empty() ?
"<Not existed>" : itr->accountName.c_str(),
166 itr->accountId, dateStr.c_str());
214 sWorld->AddCharacterNameData(delInfo.
lowGuid, delInfo.
name, (*result)[2].GetUInt8(), (*result)[0].GetUInt8(), (*result)[1].GetUInt8(), (*result)[3].GetUInt8(), (*result)[4].GetUInt32());
227 if (oldLevel == newLevel)
229 else if (oldLevel < newLevel)
255 char const* targetName = target->
GetName().c_str();
263 if (titleInfo && target->
HasTitle(titleInfo))
265 std::string name = titleInfo->
name;
273 char titleNameStr[80];
274 snprintf(titleNameStr, 80, name.c_str(), targetName);
292 std::string targetName;
296 char const* newNameStr = strtok(NULL,
" ");
300 std::string playerOldName;
301 std::string newName = newNameStr;
309 playerOldName = target->
GetName();
317 sObjectMgr->GetPlayerNameByGUID(targetGuid, playerOldName);
364 session->KickPlayer();
374 sWorld->UpdateCharacterNameData(targetGuid, newName);
381 sLog->outCommand(session->GetAccountId(),
"GM %s (Account: %u) forced rename %s to player %s (Account: %u)", player->GetName().c_str(), session->GetAccountId(), newName.c_str(), playerOldName.c_str(),
sObjectMgr->GetPlayerAccountIdByGUID(targetGuid));
384 sLog->outCommand(0,
"CONSOLE forced rename '%s' to '%s' (GUID: %u)", playerOldName.c_str(), newName.c_str(),
GUID_LOPART(targetGuid));
403 std::string oldNameLink = handler->
playerLink(targetName);
425 if (isalpha(levelStr[0]))
433 std::string targetName;
438 int32 newlevel = levelStr ? atoi(levelStr) : oldlevel;
449 std::string nameLink = handler->
playerLink(targetName);
461 std::string targetName;
475 std::string oldNameLink = handler->
playerLink(targetName);
488 std::string targetName;
503 std::string oldNameLink = handler->
playerLink(targetName);
516 std::string targetName;
531 std::string oldNameLink = handler->
playerLink(targetName);
550 for (FactionStateList::const_iterator itr = targetFSL.begin(); itr != targetFSL.end(); ++itr)
554 char const* factionName = factionEntry ? factionEntry->
name :
"#Not found#";
557 std::ostringstream ss;
559 ss << faction.
ID <<
" - |cffffffff|Hfaction:" << faction.
ID <<
"|h[" << factionName <<
' ' <<
localeNames[loc] <<
"]|h|r";
561 ss << faction.
ID <<
" - " << factionName <<
' ' <<
localeNames[loc];
601 if (foundList.empty())
629 std::string searchString;
630 std::string newCharName;
634 std::istringstream params(args);
635 params >> searchString >> newCharName >> newAccount;
641 if (foundList.empty())
650 if (newCharName.empty())
653 for (DeletedInfoList::iterator itr = foundList.begin(); itr != foundList.end(); ++itr)
661 delInfo.
name = newCharName;
664 if (newAccount && newAccount != delInfo.
accountId)
698 if (foundList.empty())
708 for (DeletedInfoList::const_iterator itr = foundList.begin(); itr != foundList.end(); ++itr)
729 char* daysStr = strtok((
char*)args,
" ");
735 keepDays = atoi(daysStr);
740 else if (keepDays <= 0)
753 char* characterName_str = strtok((
char*)args,
" ");
754 if (!characterName_str)
757 std::string characterName = characterName_str;
767 characterGuid = player->
GetGUID();
773 characterGuid =
sObjectMgr->GetPlayerGUIDByName(characterName);
780 accountId =
sObjectMgr->GetPlayerAccountIdByGUID(characterGuid);
783 std::string accountName;
799 if (levelStr && isalpha(levelStr[0]))
807 std::string targetName;
812 int32 addlevel = levelStr ? atoi(levelStr) : 1;
813 int32 newlevel = oldlevel + addlevel;
825 std::string nameLink = handler->
playerLink(targetName);
837 char* fileStr = strtok((
char*)args,
" ");
841 char* accountStr = strtok(NULL,
" ");
845 std::string accountName = accountStr;
856 accountId = atoi(accountStr);
872 char* guidStr = NULL;
873 char* nameStr = strtok(NULL,
" ");
894 guidStr = strtok(NULL,
" ");
901 guid =
uint32(atoi(guidStr));
909 if (
sObjectMgr->GetPlayerAccountIdByGUID(guid))
948 char* fileStr = strtok((
char*)args,
" ");
949 char* playerStr = strtok(NULL,
" ");
951 if (!fileStr || !playerStr)
971 if (!
sObjectMgr->GetPlayerAccountIdByGUID(guid))
@ CHAR_SEL_CHAR_DEL_INFO_BY_NAME
@ CHAR_UDP_RESTORE_DELETE_INFO
@ CHAR_SEL_CHAR_DEL_INFO_BY_GUID
@ CHAR_SEL_CHARACTER_NAME_DATA
@ CHAR_UPD_ADD_AT_LOGIN_FLAG
char const * localeNames[TOTAL_LOCALES]
DBCStorage< CharTitlesEntry > sCharTitlesStore(CharTitlesEntryfmt)
DBCStorage< FactionEntry > sFactionStore(FactionEntryfmt)
@ LANG_FACTION_PEACE_FORCED
@ LANG_CHARACTER_DELETED_SKIP_NAME
@ LANG_CHARACTER_DELETED_LIST_LINE_CHAT
@ LANG_CHARACTER_DELETED_ERR_RENAME
@ LANG_CHARACTER_DELETED_LIST_HEADER
@ LANG_CHARACTER_DELETED_LIST_LINE_CONSOLE
@ LANG_FACTION_INVISIBLE_FORCED
@ LANG_COMMAND_EXPORT_DELETED_CHAR
@ LANG_CHARACTER_GUID_IN_USE
@ LANG_CUSTOMIZE_PLAYER_GUID
@ LANG_ACCOUNT_CHARACTER_LIST_FULL
@ LANG_RENAME_PLAYER_WITH_NEW_NAME
@ LANG_CHARACTER_DELETED_RESTORE
@ LANG_COMMAND_EXPORT_SUCCESS
@ LANG_CHARACTER_DELETED_SKIP_FULL
@ LANG_CHARACTER_DELETED_LIST_EMPTY
@ LANG_CHARACTER_DELETED_LIST_BAR
@ LANG_TITLE_LIST_CONSOLE
@ LANG_COMMAND_IMPORT_FAILED
@ LANG_YOURS_LEVEL_PROGRESS_RESET
@ LANG_COMMAND_EXPORT_FAILED
@ LANG_RENAME_PLAYER_ALREADY_EXISTS
@ LANG_CHARACTER_DELETED_SKIP_ACCOUNT
@ LANG_INVALID_CHARACTER_GUID
@ LANG_RENAME_PLAYER_GUID
@ LANG_INVALID_CHARACTER_NAME
@ LANG_COMMAND_IMPORT_SUCCESS
@ LANG_CHARACTER_DELETED_DELETE
uint32 GUID_LOPART(uint64 x)
uint64 MAKE_NEW_GUID(uint32 l, uint32 e, uint32 h)
bool normalizePlayerName(std::string &name)
@ AT_LOGIN_CHANGE_FACTION
Skyfire::AutoPtr< PreparedResultSet, Skyfire::Mutex > PreparedQueryResult
static uint32 ReputationRankStrIndex[MAX_REPUTATION_RANK]
@ FACTION_FLAG_PEACE_FORCED
@ FACTION_FLAG_INVISIBLE_FORCED
std::map< RepListID, FactionState > FactionStateList
@ PLAYER_FIELD_PLAYER_TITLE
std::string TimeToTimestampStr(time_t t)
bool isNumeric(wchar_t wchar)
static uint32 GetCharactersCount(uint32 accountId)
static bool normalizeString(std::string &utf8String)
static uint32 GetId(std::string const &username)
static bool GetName(uint32 accountId, std::string &name)
virtual std::string GetNameLink() const
bool HasLowerSecurity(Player *target, uint64 guid, bool strong=false)
void extractOptFirstArg(char *args, char **arg1, char **arg2)
std::string playerLink(std::string const &name) const
WorldSession * GetSession()
virtual LocaleConstant GetSessionDbcLocale() const
void PSendSysMessage(const char *format,...) ATTR_PRINTF(2
void SetSentErrorMessage(bool val)
bool extractPlayerTarget(char *args, Player **player, uint64 *player_guid=NULL, std::string *player_name=NULL)
virtual bool needReportToTarget(Player *chr) const
virtual void SendSysMessage(const char *str)
virtual const char * GetSkyFireString(int32 entry) const
std::string extractPlayerNameFromLink(char *text)
CommandScript(const char *name)
std::string GetString() const
uint32 GetUInt32Value(uint16 index) const
uint32 GetGUIDLow() const
void SetUInt32Value(uint16 index, uint32 value)
static ResponseCodes CheckPlayerName(std::string const &name, bool create=false)
bool HasTitle(uint32 bitIndex)
void InitTalentForLevel()
static void DeleteOldCharacters()
void GiveLevel(uint8 level)
static uint32 GetLevelFromDB(uint64 guid)
void SetAtLoginFlag(AtLoginFlags f)
WorldSession * GetSession() const
static void DeleteFromDB(uint64 playerguid, uint32 accountId, bool updateRealmChars=true, bool deleteFinally=false)
ReputationMgr & GetReputationMgr()
void setString(const uint8 index, const std::string &value)
void setUInt16(const uint8 index, const uint16 value)
void setUInt32(const uint8 index, const uint32 value)
void setUInt8(const uint8 index, const uint8 value)
FactionStateList const & GetStateList() const
int32 GetReputation(uint32 faction_id) const
ReputationRank GetRank(FactionEntry const *factionEntry) const
static Player * GetPlayer(WorldObject &object, uint64 guid)
void SetName(std::string const &newname)
std::string const & GetName() const
Player session in the World.
void KickPlayer()
Kick a player out of the World.
Player * GetPlayer() const
uint32 GetAccountId() const
static bool HandleCharacterDeletedListCommand(ChatHandler *handler, char const *args)
static bool HandlePDumpWriteCommand(ChatHandler *handler, char const *args)
static void HandleCharacterLevel(Player *player, uint64 playerGuid, uint32 oldLevel, uint32 newLevel, ChatHandler *handler)
static bool HandleCharacterRenameCommand(ChatHandler *handler, char const *args)
static bool GetDeletedCharacterInfoList(DeletedInfoList &foundList, std::string searchString)
static bool HandleCharacterDeletedDeleteCommand(ChatHandler *handler, char const *args)
static void HandleCharacterDeletedRestoreHelper(DeletedInfo const &delInfo, ChatHandler *handler)
static bool HandleCharacterEraseCommand(ChatHandler *handler, char const *args)
static bool HandleLevelUpCommand(ChatHandler *handler, char const *args)
static bool HandleCharacterDeletedRestoreCommand(ChatHandler *handler, char const *args)
static bool HandleCharacterChangeRaceCommand(ChatHandler *handler, char const *args)
std::vector< ChatCommand > GetCommands() const OVERRIDE
static bool HandlePDumpLoadCommand(ChatHandler *handler, char const *args)
static bool HandleCharacterDeletedOldCommand(ChatHandler *, char const *args)
static bool HandleCharacterReputationCommand(ChatHandler *handler, char const *args)
character_commandscript()
static void HandleCharacterDeletedListHelper(DeletedInfoList const &foundList, ChatHandler *handler)
static bool HandleCharacterCustomizeCommand(ChatHandler *handler, char const *args)
static bool HandleCharacterLevelCommand(ChatHandler *handler, char const *args)
static bool HandleCharacterChangeFactionCommand(ChatHandler *handler, char const *args)
static bool HandleCharacterTitlesCommand(ChatHandler *handler, char const *args)
std::list< DeletedInfo > DeletedInfoList
void AddSC_character_commandscript()
CharacterDatabaseWorkerPool CharacterDatabase
Accessor to the character database.
@ CONFIG_CHARDELETE_KEEP_DAYS
@ RBAC_PERM_COMMAND_CHARACTER_CHANGERACE
@ RBAC_PERM_COMMAND_CHARACTER_DELETED_OLD
@ RBAC_PERM_COMMAND_CHARACTER
@ RBAC_PERM_COMMAND_LEVELUP
@ RBAC_PERM_COMMAND_CHARACTER_LEVEL
@ RBAC_PERM_COMMAND_CHARACTER_DELETED
@ RBAC_PERM_COMMAND_CHARACTER_DELETED_DELETE
@ RBAC_PERM_SKIP_CHECK_CHARACTER_CREATION_RESERVEDNAME
@ RBAC_PERM_COMMAND_CHARACTER_CHANGEFACTION
@ RBAC_PERM_COMMAND_CHARACTER_TITLES
@ RBAC_PERM_COMMAND_CHARACTER_CUSTOMIZE
@ RBAC_PERM_COMMAND_CHARACTER_RENAME
@ RBAC_PERM_COMMAND_CHARACTER_ERASE
@ RBAC_PERM_COMMAND_PDUMP
@ RBAC_PERM_COMMAND_PDUMP_LOAD
@ RBAC_PERM_COMMAND_CHARACTER_REPUTATION
@ RBAC_PERM_COMMAND_CHARACTER_DELETED_LIST
@ RBAC_PERM_COMMAND_CHARACTER_DELETED_RESTORE
@ RBAC_PERM_COMMAND_PDUMP_WRITE
std::string name
the character name
std::string accountName
the account name
time_t deleteDate
the date at which the character has been deleted
uint32 lowGuid
the low GUID from the character
uint32 accountId
the account id