aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2017-01-06 02:13:27 -0300
committerShauren <shauren.trinity@gmail.com>2018-12-09 14:18:42 +0100
commitea0cd9366289a3cecdc78ed4a69c08fecc55a2c0 (patch)
tree21dc4ca6b10a015452b39000761dae4c68b3d272 /src/server/game
parentb5174339aec22f1d2c1ec3f2615eeb13d0f06b34 (diff)
Core/Scripts: added command to move characters across accounts
(cherry-picked from f7f865f81803effa17b19ef79762a72fe726b1ac)
Diffstat (limited to 'src/server/game')
-rw-r--r--src/server/game/Accounts/RBAC.h2
-rw-r--r--src/server/game/Miscellaneous/Language.h3
-rw-r--r--src/server/game/World/World.cpp9
-rw-r--r--src/server/game/World/World.h1
4 files changed, 13 insertions, 2 deletions
diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h
index 0c1cb84d270..018f4e0c73f 100644
--- a/src/server/game/Accounts/RBAC.h
+++ b/src/server/game/Accounts/RBAC.h
@@ -603,7 +603,7 @@ enum RBACPermissions
RBAC_PERM_COMMAND_RELOAD_SPELL_LOOT_TEMPLATE = 695,
RBAC_PERM_COMMAND_RELOAD_SPELL_LINKED_SPELL = 696,
RBAC_PERM_COMMAND_RELOAD_SPELL_PET_AURAS = 697,
- // 698 - reuse
+ RBAC_PERM_COMMAND_CHARACTER_CHANGEACCOUNT = 698,
RBAC_PERM_COMMAND_RELOAD_SPELL_PROC = 699,
RBAC_PERM_COMMAND_RELOAD_SPELL_SCRIPTS = 700,
RBAC_PERM_COMMAND_RELOAD_SPELL_TARGET_POSITION = 701,
diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h
index 039c3b81604..820edc8adb9 100644
--- a/src/server/game/Miscellaneous/Language.h
+++ b/src/server/game/Miscellaneous/Language.h
@@ -927,7 +927,8 @@ enum TrinityStrings
LANG_ACCOUNT_BNET_NOT_LINKED = 1189,
LANG_DISALLOW_TICKETS_CONFIG = 1190,
LANG_BAN_EXISTS = 1191,
- // Room for more level 3 1192-1198 not used
+ LANG_CHANGEACCOUNT_SUCCESS = 1192,
+ // Room for more level 3 1193-1198 not used
// Debug commands
LANG_DEBUG_AREATRIGGER_LEFT = 1999,
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index 23a62783c83..bafc5207656 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -3616,6 +3616,15 @@ void World::UpdateCharacterInfoLevel(ObjectGuid const& guid, uint8 level)
itr->second.Level = level;
}
+void World::UpdateCharacterInfoAccount(ObjectGuid const& guid, uint32 accountId)
+{
+ auto itr = _characterInfoStore.find(guid);
+ if (itr == _characterInfoStore.end())
+ return;
+
+ itr->second.AccountId = accountId;
+}
+
void World::UpdateCharacterInfoDeleted(ObjectGuid const& guid, bool deleted, std::string const* name /*= nullptr*/)
{
CharacterInfoContainer::iterator itr = _characterInfoStore.find(guid);
diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h
index 16850da37ae..e7eb8c84d4c 100644
--- a/src/server/game/World/World.h
+++ b/src/server/game/World/World.h
@@ -794,6 +794,7 @@ class TC_GAME_API World
bool HasCharacterInfo(ObjectGuid const& guid) { return _characterInfoStore.find(guid) != _characterInfoStore.end(); }
void UpdateCharacterInfo(ObjectGuid const& guid, std::string const& name, uint8 gender = GENDER_NONE, uint8 race = RACE_NONE);
void UpdateCharacterInfoLevel(ObjectGuid const& guid, uint8 level);
+ void UpdateCharacterInfoAccount(ObjectGuid const& guid, uint32 accountId);
void UpdateCharacterInfoDeleted(ObjectGuid const& guid, bool deleted, std::string const* name = nullptr);
uint32 GetCleaningFlags() const { return m_CleaningFlags; }