Core/Misc: Moved CharacterInfo out of world to separate class

Port From (https://github.com/TrinityCore/TrinityCore/commit/ad4e63bae145ae49b584ab2fc621660430cec0d3)
This commit is contained in:
hondacrx
2019-08-16 13:43:17 -04:00
parent ea35c2ca62
commit 3634bc7133
56 changed files with 598 additions and 527 deletions
@@ -19,6 +19,7 @@ using Framework.Constants;
using Game.Entities;
using Game.Network;
using Game.Network.Packets;
using Game.Cache;
namespace Game.Chat
{
@@ -399,9 +400,9 @@ namespace Game.Chat
_ownerGuid = ownerGuid;
_ownerName = "";
CharacterInfo characterInfo = Global.WorldMgr.GetCharacterInfo(_ownerGuid);
if (characterInfo != null)
_ownerName = characterInfo.Name;
CharacterCacheEntry characterCacheEntry = Global.CharacterCacheStorage.GetCharacterCacheByGuid(_ownerGuid);
if (characterCacheEntry != null)
_ownerName = characterCacheEntry.Name;
}
public ChatNotify GetNotificationType() => ChatNotify.ChannelOwnerNotice;
+4 -4
View File
@@ -405,7 +405,7 @@ namespace Game.Chat
}
player = Global.ObjAccessor.FindPlayerByName(name);
ObjectGuid guid = player == null ? ObjectManager.GetPlayerGUIDByName(name) : ObjectGuid.Empty;
ObjectGuid guid = player == null ? Global.CharacterCacheStorage.GetCharacterGuidByName(name) : ObjectGuid.Empty;
playerGuid = player != null ? player.GetGUID() : guid;
playerName = player != null || !guid.IsEmpty() ? name : "";
@@ -455,7 +455,7 @@ namespace Game.Chat
if (player)
return player.GetGUID().GetCounter();
ObjectGuid guid = ObjectManager.GetPlayerGUIDByName(idS);
ObjectGuid guid = Global.CharacterCacheStorage.GetCharacterGuidByName(idS);
if (guid.IsEmpty())
return 0;
@@ -664,7 +664,7 @@ namespace Game.Chat
if (target != null)
target_session = target.GetSession();
else if (!guid.IsEmpty())
target_account = ObjectManager.GetPlayerAccountIdByGUID(guid);
target_account = Global.CharacterCacheStorage.GetCharacterAccountIdByGuid(guid);
if (target_session == null && target_account == 0)
{
@@ -811,7 +811,7 @@ namespace Game.Chat
player = Global.ObjAccessor.FindPlayerByName(name);
if (offline)
guid = ObjectManager.GetPlayerGUIDByName(name);
guid = Global.CharacterCacheStorage.GetCharacterGuidByName(name);
}
if (player)
+4 -4
View File
@@ -51,7 +51,7 @@ namespace Game.Chat
if (type == 2 || type == 3 || type == 5)
{
if (Player.GetArenaTeamIdFromDB(target.GetGUID(), type) != 0)
if (Global.CharacterCacheStorage.GetCharacterArenaTeamIdByGuid(target.GetGUID(), type) != 0)
{
handler.SendSysMessage(CypherStrings.ArenaErrorSize, target.GetName());
return false;
@@ -222,11 +222,11 @@ namespace Game.Chat
arena.SetCaptain(targetGuid);
CharacterInfo oldCaptainNameData = Global.WorldMgr.GetCharacterInfo(arena.GetCaptain());
if (oldCaptainNameData == null)
string oldCaptainName;
if (!Global.CharacterCacheStorage.GetCharacterNameByGuid(arena.GetCaptain(), out oldCaptainName))
return false;
handler.SendSysMessage(CypherStrings.ArenaCaptain, arena.GetName(), arena.GetId(), oldCaptainNameData.Name, target.GetName());
handler.SendSysMessage(CypherStrings.ArenaCaptain, arena.GetName(), arena.GetId(), oldCaptainName, target.GetName());
if (handler.GetSession() != null)
Log.outDebug(LogFilter.Arena, "GameMaster: {0} [GUID: {1}] promoted player: {2} [GUID: {3}] to leader of arena team \"{4}\"[Id: {5}]",
handler.GetSession().GetPlayer().GetName(), handler.GetSession().GetPlayer().GetGUID().ToString(), target.GetName(), target.GetGUID().ToString(), arena.GetName(), arena.GetId());
+1 -1
View File
@@ -224,7 +224,7 @@ namespace Game.Chat.Commands
if (!target)
{
targetGuid = ObjectManager.GetPlayerGUIDByName(name);
targetGuid = Global.CharacterCacheStorage.GetCharacterGuidByName(name);
if (targetGuid.IsEmpty())
{
handler.SendSysMessage(CypherStrings.BaninfoNocharacter);
+12 -11
View File
@@ -18,6 +18,7 @@
using Framework.Constants;
using Framework.Database;
using Framework.IO;
using Game.Cache;
using Game.DataStorage;
using Game.Entities;
using System;
@@ -99,7 +100,7 @@ namespace Game.Chat
if (handler.HasLowerSecurity(null, targetGuid))
return false;
ObjectManager.GetPlayerNameByGUID(targetGuid, out playerOldName);
Global.CharacterCacheStorage.GetCharacterNameByGuid(targetGuid, out playerOldName);
}
if (!ObjectManager.NormalizePlayerName(ref newName))
@@ -153,13 +154,13 @@ namespace Game.Chat
DB.Characters.Execute(stmt);
}
Global.WorldMgr.UpdateCharacterInfo(targetGuid, newName);
Global.CharacterCacheStorage.UpdateCharacterData(targetGuid, newName);
handler.SendSysMessage(CypherStrings.RenamePlayerWithNewName, playerOldName, newName);
Player player = handler.GetPlayer();
if (player)
Log.outCommand(session.GetAccountId(), "GM {0} (Account: {1}) forced rename {2} to player {3} (Account: {4})", player.GetName(), session.GetAccountId(), newName, playerOldName, ObjectManager.GetPlayerAccountIdByGUID(targetGuid));
Log.outCommand(session.GetAccountId(), "GM {0} (Account: {1}) forced rename {2} to player {3} (Account: {4})", player.GetName(), session.GetAccountId(), newName, playerOldName, Global.CharacterCacheStorage.GetCharacterAccountIdByGuid(targetGuid));
else
Log.outCommand(0, "CONSOLE forced rename '{0}' to '{1}' ({2})", playerOldName, newName, targetGuid.ToString());
}
@@ -215,7 +216,7 @@ namespace Game.Chat
if (!handler.extractPlayerTarget(new StringArguments(nameStr), out target, out targetGuid, out targetName))
return false;
int oldlevel = (int)(target ? target.getLevel() : Player.GetLevelFromDB(targetGuid));
int oldlevel = (int)(target ? target.getLevel() : Global.CharacterCacheStorage.GetCharacterLevelByGuid(targetGuid));
if (!int.TryParse(levelStr, out int newlevel))
newlevel = oldlevel;
@@ -280,7 +281,7 @@ namespace Game.Chat
if (!handler.extractPlayerTarget(new StringArguments(playerNameStr), out playerNotUsed, out targetGuid, out targetName))
return false;
CharacterInfo characterInfo = Global.WorldMgr.GetCharacterInfo(targetGuid);
CharacterCacheEntry characterInfo = Global.CharacterCacheStorage.GetCharacterCacheByGuid(targetGuid);
if (characterInfo == null)
{
handler.SendSysMessage(CypherStrings.PlayerNotFound);
@@ -323,7 +324,7 @@ namespace Game.Chat
Global.WorldMgr.UpdateRealmCharCount(oldAccountId);
Global.WorldMgr.UpdateRealmCharCount(newAccountId);
Global.WorldMgr.UpdateCharacterInfoAccount(targetGuid, newAccountId);
Global.CharacterCacheStorage.UpdateCharacterAccountId(targetGuid, newAccountId);
handler.SendSysMessage(CypherStrings.ChangeAccountSuccess, targetName, accountName);
@@ -467,13 +468,13 @@ namespace Game.Chat
}
else
{
characterGuid = ObjectManager.GetPlayerGUIDByName(characterName);
characterGuid = Global.CharacterCacheStorage.GetCharacterGuidByName(characterName);
if (characterGuid.IsEmpty())
{
handler.SendSysMessage(CypherStrings.NoPlayer, characterName);
return false;
}
accountId = ObjectManager.GetPlayerAccountIdByGUID(characterGuid);
accountId = Global.CharacterCacheStorage.GetCharacterAccountIdByGuid(characterGuid);
}
string accountName;
@@ -704,7 +705,7 @@ namespace Game.Chat
return;
}
if (!ObjectManager.GetPlayerGUIDByName(delInfo.name).IsEmpty())
if (!Global.CharacterCacheStorage.GetCharacterGuidByName(delInfo.name).IsEmpty())
{
handler.SendSysMessage(CypherStrings.CharacterDeletedSkipName, delInfo.name, delInfo.guid.ToString(), delInfo.accountId);
return;
@@ -716,7 +717,7 @@ namespace Game.Chat
stmt.AddValue(2, delInfo.guid.GetCounter());
DB.Characters.Execute(stmt);
Global.WorldMgr.UpdateCharacterInfoDeleted(delInfo.guid, false, delInfo.name);
Global.CharacterCacheStorage.UpdateCharacterInfoDeleted(delInfo.guid, false, delInfo.name);
}
struct DeletedInfo
@@ -749,7 +750,7 @@ namespace Game.Chat
if (!handler.extractPlayerTarget(new StringArguments(nameStr), out target, out targetGuid, out targetName))
return false;
int oldlevel = (int)(target ? target.getLevel() : Player.GetLevelFromDB(targetGuid));
int oldlevel = (int)(target ? target.getLevel() : Global.CharacterCacheStorage.GetCharacterLevelByGuid(targetGuid));
if (!int.TryParse(levelStr, out int addlevel))
addlevel = 1;
+1 -1
View File
@@ -249,7 +249,7 @@ namespace Game.Chat
ObjectGuid parseGUID = ObjectGuid.Create(HighGuid.Player, args.NextUInt64());
// ... and try to extract a player out of it.
if (ObjectManager.GetPlayerNameByGUID(parseGUID, out nameTarget))
if (Global.CharacterCacheStorage.GetCharacterNameByGuid(parseGUID, out nameTarget))
{
playerTarget = Global.ObjAccessor.FindPlayer(parseGUID);
guidTarget = parseGUID;
+3 -3
View File
@@ -103,7 +103,7 @@ namespace Game.Chat
if (!handler.extractPlayerTarget(args, out target, out targetGuid))
return false;
ulong guildId = target != null ? target.GetGuildId() : Player.GetGuildIdFromDB(targetGuid);
ulong guildId = target != null ? target.GetGuildId() : Global.CharacterCacheStorage.GetCharacterGuildIdByGuid(targetGuid);
if (guildId == 0)
return false;
@@ -130,7 +130,7 @@ namespace Game.Chat
if (!handler.extractPlayerTarget(new StringArguments(nameStr), out target, out targetGuid, out target_name))
return false;
ulong guildId = target ? target.GetGuildId() : Player.GetGuildIdFromDB(targetGuid);
ulong guildId = target ? target.GetGuildId() : Global.CharacterCacheStorage.GetCharacterGuildIdByGuid(targetGuid);
if (guildId == 0)
return false;
@@ -210,7 +210,7 @@ namespace Game.Chat
handler.SendSysMessage(CypherStrings.GuildInfoName, guild.GetName(), guild.GetId()); // Guild Id + Name
string guildMasterName;
if (ObjectManager.GetPlayerNameByGUID(guild.GetLeaderGUID(), out guildMasterName))
if (Global.CharacterCacheStorage.GetCharacterNameByGuid(guild.GetLeaderGUID(), out guildMasterName))
handler.SendSysMessage(CypherStrings.GuildInfoGuildMaster, guildMasterName, guild.GetLeaderGUID().ToString()); // Guild Master
// Format creation date
+1 -1
View File
@@ -51,7 +51,7 @@ namespace Game.Chat
string nameTarget;
ObjectGuid parseGUID = ObjectGuid.Create(HighGuid.Player, args.NextUInt64());
if (ObjectManager.GetPlayerNameByGUID(parseGUID, out nameTarget))
if (Global.CharacterCacheStorage.GetCharacterNameByGuid(parseGUID, out nameTarget))
{
playerTarget = Global.ObjAccessor.FindPlayer(parseGUID);
guidTarget = parseGUID;
+1 -1
View File
@@ -345,7 +345,7 @@ namespace Game.Chat.Commands
PreparedStatement stmt = null;
ObjectGuid parseGUID = ObjectGuid.Create(HighGuid.Player, args.NextUInt64());
if (ObjectManager.GetPlayerNameByGUID(parseGUID, out targetName))
if (Global.CharacterCacheStorage.GetCharacterNameByGuid(parseGUID, out targetName))
{
target = Global.ObjAccessor.FindPlayer(parseGUID);
targetGuid = parseGUID;
+4 -4
View File
@@ -1291,7 +1291,7 @@ namespace Game.Chat
ObjectGuid parseGUID = ObjectGuid.Create(HighGuid.Player, args.NextUInt64());
// ... and make sure we get a target, somehow.
if (ObjectManager.GetPlayerNameByGUID(parseGUID, out targetName))
if (Global.CharacterCacheStorage.GetCharacterNameByGuid(parseGUID, out targetName))
{
target = Global.ObjAccessor.FindPlayer(parseGUID);
targetGuid = parseGUID;
@@ -1673,7 +1673,7 @@ namespace Game.Chat
if (!handler.extractPlayerTarget(new StringArguments(nameStr), out target, out targetGuid, out targetName))
return false;
uint accountId = target ? target.GetSession().GetAccountId() : ObjectManager.GetPlayerAccountIdByGUID(targetGuid);
uint accountId = target ? target.GetSession().GetAccountId() : Global.CharacterCacheStorage.GetCharacterAccountIdByGuid(targetGuid);
// find only player from same account if any
if (!target)
@@ -1745,7 +1745,7 @@ namespace Game.Chat
if (!handler.extractPlayerTarget(args, out target, out targetGuid, out targetName))
return false;
uint accountId = target ? target.GetSession().GetAccountId() : ObjectManager.GetPlayerAccountIdByGUID(targetGuid);
uint accountId = target ? target.GetSession().GetAccountId() : Global.CharacterCacheStorage.GetCharacterAccountIdByGuid(targetGuid);
// find only player from same account if any
if (!target)
@@ -2259,7 +2259,7 @@ namespace Game.Chat
if (!string.IsNullOrEmpty(targetName))
{
// Check for offline players
ObjectGuid guid = ObjectManager.GetPlayerGUIDByName(name);
ObjectGuid guid = Global.CharacterCacheStorage.GetCharacterGuidByName(name);
if (guid.IsEmpty())
{
handler.SendSysMessage(CypherStrings.CommandFreezeWrong);
+3 -3
View File
@@ -257,8 +257,8 @@ namespace Game.Chat.Commands
return true;
}
ObjectGuid targetGuid = ObjectManager.GetPlayerGUIDByName(target);
uint accountId = ObjectManager.GetPlayerAccountIdByGUID(targetGuid);
ObjectGuid targetGuid = Global.CharacterCacheStorage.GetCharacterGuidByName(target);
uint accountId = Global.CharacterCacheStorage.GetCharacterAccountIdByGuid(targetGuid);
// Target must exist and have administrative rights
if (!Global.AccountMgr.HasPermission(accountId, RBACPermissions.CommandsBeAssignedTicket, Global.WorldMgr.GetRealm().Id.Realm))
{
@@ -447,7 +447,7 @@ namespace Game.Chat.Commands
else
{
ObjectGuid guid = ticket.GetAssignedToGUID();
uint accountId = ObjectManager.GetPlayerAccountIdByGUID(guid);
uint accountId = Global.CharacterCacheStorage.GetCharacterAccountIdByGuid(guid);
security = Global.AccountMgr.GetSecurity(accountId, (int)Global.WorldMgr.GetRealm().Id.Realm);
}