diff options
60 files changed, 347 insertions, 112 deletions
diff --git a/src/common/Configuration/Config.h b/src/common/Configuration/Config.h index 740116b3ffc..d0b874ebb45 100644 --- a/src/common/Configuration/Config.h +++ b/src/common/Configuration/Config.h @@ -26,11 +26,14 @@ class TC_COMMON_API ConfigMgr { ConfigMgr() = default; - ConfigMgr(ConfigMgr const&) = delete; - ConfigMgr& operator=(ConfigMgr const&) = delete; ~ConfigMgr() = default; public: + ConfigMgr(ConfigMgr const&) = delete; + ConfigMgr(ConfigMgr&&) = delete; + ConfigMgr& operator=(ConfigMgr const&) = delete; + ConfigMgr& operator=(ConfigMgr&&) = delete; + /// Method used only for loading main configuration files (bnetserver.conf and worldserver.conf) bool LoadInitial(std::string file, std::vector<std::string> args, std::string& error); bool LoadAdditionalFile(std::string file, bool keepOnReload, std::string& error); diff --git a/src/common/Logging/Log.h b/src/common/Logging/Log.h index 99ad69b5d26..53a40d62c61 100644 --- a/src/common/Logging/Log.h +++ b/src/common/Logging/Log.h @@ -53,12 +53,13 @@ class TC_COMMON_API Log private: Log(); ~Log(); + + public: Log(Log const&) = delete; Log(Log&&) = delete; Log& operator=(Log const&) = delete; Log& operator=(Log&&) = delete; - public: static Log* instance(); void Initialize(Trinity::Asio::IoContext* ioContext); diff --git a/src/common/Metric/Metric.h b/src/common/Metric/Metric.h index 951ebc2937f..7aaa03ec4ac 100644 --- a/src/common/Metric/Metric.h +++ b/src/common/Metric/Metric.h @@ -105,6 +105,10 @@ private: public: Metric(); ~Metric(); + Metric(Metric const&) = delete; + Metric(Metric&&) = delete; + Metric& operator=(Metric const&) = delete; + Metric& operator=(Metric&&) = delete; static Metric* instance(); void Initialize(std::string const& realmName, Trinity::Asio::IoContext& ioContext, std::function<void()> overallStatusLogger); diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp index cd357dd33ac..4e2750ee62f 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp @@ -49,6 +49,9 @@ } \ } +SmartAIMgr::SmartAIMgr() = default; +SmartAIMgr::~SmartAIMgr() = default; + SmartAIMgr* SmartAIMgr::instance() { static SmartAIMgr instance; diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h index 0c3da4870a7..ac69660cae5 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h @@ -1711,10 +1711,15 @@ typedef std::pair<CacheSpellContainer::const_iterator, CacheSpellContainer::cons class TC_GAME_API SmartAIMgr { private: - SmartAIMgr() { } - ~SmartAIMgr() { } + SmartAIMgr(); + ~SmartAIMgr(); public: + SmartAIMgr(SmartAIMgr const&) = delete; + SmartAIMgr(SmartAIMgr&&) = delete; + SmartAIMgr& operator=(SmartAIMgr const&) = delete; + SmartAIMgr& operator=(SmartAIMgr&&) = delete; + static SmartAIMgr* instance(); void LoadSmartAIFromDB(); diff --git a/src/server/game/Accounts/AccountMgr.h b/src/server/game/Accounts/AccountMgr.h index 24c3379469f..244bb2ef244 100644 --- a/src/server/game/Accounts/AccountMgr.h +++ b/src/server/game/Accounts/AccountMgr.h @@ -57,6 +57,11 @@ class TC_GAME_API AccountMgr ~AccountMgr(); public: + AccountMgr(AccountMgr const&) = delete; + AccountMgr(AccountMgr&&) = delete; + AccountMgr& operator=(AccountMgr const&) = delete; + AccountMgr& operator=(AccountMgr&&) = delete; + static AccountMgr* instance(); AccountOpResult CreateAccount(std::string username, std::string password, std::string email = "", uint32 bnetAccountId = 0, uint8 bnetIndex = 0); diff --git a/src/server/game/Accounts/RBAC.cpp b/src/server/game/Accounts/RBAC.cpp index d269fe0946c..044c72d5b73 100644 --- a/src/server/game/Accounts/RBAC.cpp +++ b/src/server/game/Accounts/RBAC.cpp @@ -17,29 +17,42 @@ #include "RBAC.h" #include "AccountMgr.h" +#include "Common.h" #include "DatabaseEnv.h" #include "Log.h" -#include <sstream> +#include <fmt/ranges.h> namespace rbac { std::string GetDebugPermissionString(RBACPermissionContainer const& perms) { - std::string str = ""; - if (!perms.empty()) - { - std::ostringstream o; - RBACPermissionContainer::const_iterator itr = perms.begin(); - o << (*itr); - for (++itr; itr != perms.end(); ++itr) - o << ", " << uint32(*itr); - str = o.str(); - } + return Trinity::StringFormat("{}", fmt::join(perms, ", "sv)); +} - return str; +RBACPermission::RBACPermission(uint32 id, std::string const& name): + _id(id), _name(name), _perms() +{ } +RBACPermission::RBACPermission(RBACPermission const& other) = default; +RBACPermission::RBACPermission(RBACPermission&& other) noexcept = default; +RBACPermission& RBACPermission::operator=(RBACPermission const& right) = default; +RBACPermission& RBACPermission::operator=(RBACPermission&& right) noexcept = default; +RBACPermission::~RBACPermission() = default; + +RBACData::RBACData(uint32 id, std::string const& name, int32 realmId, uint8 secLevel): + _id(id), _name(name), _realmId(realmId), _secLevel(secLevel), + _grantedPerms(), _deniedPerms(), _globalPerms() +{ +} + +RBACData::RBACData(RBACData const& other) = default; +RBACData::RBACData(RBACData&& other) noexcept = default; +RBACData& RBACData::operator=(RBACData const& right) = default; +RBACData& RBACData::operator=(RBACData&& right) noexcept = default; +RBACData::~RBACData() = default; + RBACCommandResult RBACData::GrantPermission(uint32 permissionId, int32 realmId /* = 0*/) { // Check if permission Id exists diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h index 1cd7fec640d..0d3b6dea345 100644 --- a/src/server/game/Accounts/RBAC.h +++ b/src/server/game/Accounts/RBAC.h @@ -771,8 +771,12 @@ typedef std::set<uint32> RBACPermissionContainer; class TC_GAME_API RBACPermission { public: - RBACPermission(uint32 id = 0, std::string const& name = ""): - _id(id), _name(name), _perms() { } + RBACPermission(uint32 id = 0, std::string const& name = ""); + RBACPermission(RBACPermission const& other); + RBACPermission(RBACPermission&& other) noexcept; + RBACPermission& operator=(RBACPermission const& right); + RBACPermission& operator=(RBACPermission&& right) noexcept; + ~RBACPermission(); /// Gets the Name of the Object std::string const& GetName() const { return _name; } @@ -806,9 +810,12 @@ class TC_GAME_API RBACPermission class TC_GAME_API RBACData { public: - RBACData(uint32 id, std::string const& name, int32 realmId, uint8 secLevel = 255): - _id(id), _name(name), _realmId(realmId), _secLevel(secLevel), - _grantedPerms(), _deniedPerms(), _globalPerms() { } + RBACData(uint32 id, std::string const& name, int32 realmId, uint8 secLevel = 255); + RBACData(RBACData const& other); + RBACData(RBACData&& other) noexcept; + RBACData& operator=(RBACData const& right); + RBACData& operator=(RBACData&& right) noexcept; + ~RBACData(); /// Gets the Name of the Object std::string const& GetName() const { return _name; } @@ -833,7 +840,7 @@ class TC_GAME_API RBACData */ bool HasPermission(uint32 permission) const { - return _globalPerms.find(permission) != _globalPerms.end(); + return _globalPerms.contains(permission); } // Functions enabled to be used by command system @@ -956,13 +963,13 @@ class TC_GAME_API RBACData /// Checks if a permission is granted bool HasGrantedPermission(uint32 permissionId) const { - return _grantedPerms.find(permissionId) != _grantedPerms.end(); + return _grantedPerms.contains(permissionId); } /// Checks if a permission is denied bool HasDeniedPermission(uint32 permissionId) const { - return _deniedPerms.find(permissionId) != _deniedPerms.end(); + return _deniedPerms.contains(permissionId); } /// Adds a new granted permission diff --git a/src/server/game/AuctionHouseBot/AuctionHouseBot.cpp b/src/server/game/AuctionHouseBot/AuctionHouseBot.cpp index 36297849dcb..86f57472645 100644 --- a/src/server/game/AuctionHouseBot/AuctionHouseBot.cpp +++ b/src/server/game/AuctionHouseBot/AuctionHouseBot.cpp @@ -29,6 +29,12 @@ constexpr uint32 AuctionHouseIds[MAX_AUCTION_HOUSE_TYPE] = { 1, 2, 6 }; +AuctionBotConfig::AuctionBotConfig() : _itemsPerCycleBoost(1000), _itemsPerCycleNormal(20), _configUint32Values(), _configBoolValues(), _configFloatValues() +{ +} + +AuctionBotConfig::~AuctionBotConfig() = default; + AuctionBotConfig* AuctionBotConfig::instance() { static AuctionBotConfig instance; diff --git a/src/server/game/AuctionHouseBot/AuctionHouseBot.h b/src/server/game/AuctionHouseBot/AuctionHouseBot.h index 64fbe85d907..11381b38a14 100644 --- a/src/server/game/AuctionHouseBot/AuctionHouseBot.h +++ b/src/server/game/AuctionHouseBot/AuctionHouseBot.h @@ -209,12 +209,15 @@ enum AuctionBotConfigFloatValues class TC_GAME_API AuctionBotConfig { private: - AuctionBotConfig(): _itemsPerCycleBoost(1000), _itemsPerCycleNormal(20), _configUint32Values(), _configBoolValues(), _configFloatValues() { } - ~AuctionBotConfig() {} + AuctionBotConfig(); + ~AuctionBotConfig(); + +public: AuctionBotConfig(AuctionBotConfig const&) = delete; + AuctionBotConfig(AuctionBotConfig&&) = delete; AuctionBotConfig& operator=(AuctionBotConfig const&) = delete; + AuctionBotConfig& operator=(AuctionBotConfig&&) = delete; -public: static AuctionBotConfig* instance(); bool Initialize(); @@ -270,8 +273,12 @@ private: class AuctionBotAgent { public: - AuctionBotAgent() {} - virtual ~AuctionBotAgent() {} + AuctionBotAgent() = default; + AuctionBotAgent(AuctionBotAgent const&) = delete; + AuctionBotAgent(AuctionBotAgent&&) = delete; + AuctionBotAgent& operator=(AuctionBotAgent const&) = delete; + AuctionBotAgent& operator=(AuctionBotAgent&&) = delete; + virtual ~AuctionBotAgent() = default; virtual bool Initialize() = 0; virtual bool Update(AuctionHouseType houseType) = 0; }; @@ -289,10 +296,13 @@ class TC_GAME_API AuctionHouseBot private: AuctionHouseBot(); ~AuctionHouseBot(); + +public: AuctionHouseBot(AuctionHouseBot const&) = delete; + AuctionHouseBot(AuctionHouseBot&&) = delete; AuctionHouseBot& operator=(AuctionHouseBot const&) = delete; + AuctionHouseBot& operator=(AuctionHouseBot&&) = delete; -public: static AuctionHouseBot* instance(); void Update(); diff --git a/src/server/game/Battlegrounds/ArenaTeam.h b/src/server/game/Battlegrounds/ArenaTeam.h index 63ac86b2ecc..ec97c23e1dc 100644 --- a/src/server/game/Battlegrounds/ArenaTeam.h +++ b/src/server/game/Battlegrounds/ArenaTeam.h @@ -112,6 +112,10 @@ class TC_GAME_API ArenaTeam { public: ArenaTeam(); + ArenaTeam(ArenaTeam const&) = delete; + ArenaTeam(ArenaTeam&&) = delete; + ArenaTeam& operator=(ArenaTeam const&) = delete; + ArenaTeam& operator=(ArenaTeam&&) = delete; ~ArenaTeam(); bool Create(ObjectGuid captainGuid, uint8 type, std::string const& teamName, uint32 backgroundColor, uint8 emblemStyle, uint32 emblemColor, uint8 borderStyle, uint32 borderColor); diff --git a/src/server/game/Battlegrounds/ArenaTeamMgr.h b/src/server/game/Battlegrounds/ArenaTeamMgr.h index 4dc01e845dd..348b852e0ad 100644 --- a/src/server/game/Battlegrounds/ArenaTeamMgr.h +++ b/src/server/game/Battlegrounds/ArenaTeamMgr.h @@ -28,6 +28,11 @@ private: ~ArenaTeamMgr(); public: + ArenaTeamMgr(ArenaTeamMgr const&) = delete; + ArenaTeamMgr(ArenaTeamMgr&&) = delete; + ArenaTeamMgr& operator=(ArenaTeamMgr const&) = delete; + ArenaTeamMgr& operator=(ArenaTeamMgr&&) = delete; + static ArenaTeamMgr* instance(); typedef std::unordered_map<uint32, ArenaTeam*> ArenaTeamContainer; diff --git a/src/server/game/Battlegrounds/BattlegroundQueue.h b/src/server/game/Battlegrounds/BattlegroundQueue.h index 6b442366b73..834ab3187c8 100644 --- a/src/server/game/Battlegrounds/BattlegroundQueue.h +++ b/src/server/game/Battlegrounds/BattlegroundQueue.h @@ -140,13 +140,12 @@ class TC_GAME_API BattlegroundQueue This class is used to invite player to BG again, when minute lasts from his first invitation it is capable to solve all possibilities */ -class TC_GAME_API BGQueueInviteEvent : public BasicEvent +class BGQueueInviteEvent : public BasicEvent { public: - BGQueueInviteEvent(ObjectGuid pl_guid, uint32 BgInstanceGUID, BattlegroundTypeId BgTypeId, uint32 removeTime, BattlegroundQueueTypeId queueId) : - m_PlayerGuid(pl_guid), m_BgInstanceGUID(BgInstanceGUID), m_BgTypeId(BgTypeId), m_RemoveTime(removeTime), m_QueueId(queueId) - { } - virtual ~BGQueueInviteEvent() { } + BGQueueInviteEvent(ObjectGuid pl_guid, uint32 BgInstanceGUID, BattlegroundTypeId BgTypeId, uint32 removeTime, BattlegroundQueueTypeId queueId) + : m_PlayerGuid(pl_guid), m_BgInstanceGUID(BgInstanceGUID), m_BgTypeId(BgTypeId), m_RemoveTime(removeTime), m_QueueId(queueId) + { } virtual bool Execute(uint64 e_time, uint32 p_time) override; virtual void Abort(uint64 e_time) override; @@ -163,15 +162,13 @@ class TC_GAME_API BGQueueInviteEvent : public BasicEvent We must store removeInvite time in case player left queue and joined and is invited again We must store bgQueueTypeId, because battleground can be deleted already, when player entered it */ -class TC_GAME_API BGQueueRemoveEvent : public BasicEvent +class BGQueueRemoveEvent : public BasicEvent { public: BGQueueRemoveEvent(ObjectGuid pl_guid, uint32 bgInstanceGUID, BattlegroundQueueTypeId bgQueueTypeId, uint32 removeTime) : m_PlayerGuid(pl_guid), m_BgInstanceGUID(bgInstanceGUID), m_RemoveTime(removeTime), m_BgQueueTypeId(bgQueueTypeId) { } - virtual ~BGQueueRemoveEvent() { } - virtual bool Execute(uint64 e_time, uint32 p_time) override; virtual void Abort(uint64 e_time) override; private: diff --git a/src/server/game/BlackMarket/BlackMarketMgr.h b/src/server/game/BlackMarket/BlackMarketMgr.h index 888222513c0..b23d3c21cac 100644 --- a/src/server/game/BlackMarket/BlackMarketMgr.h +++ b/src/server/game/BlackMarket/BlackMarketMgr.h @@ -124,6 +124,11 @@ class TC_GAME_API BlackMarketMgr ~BlackMarketMgr(); public: + BlackMarketMgr(BlackMarketMgr const&) = delete; + BlackMarketMgr(BlackMarketMgr&&) = delete; + BlackMarketMgr& operator=(BlackMarketMgr const&) = delete; + BlackMarketMgr& operator=(BlackMarketMgr&&) = delete; + static BlackMarketMgr* Instance(); typedef std::unordered_map<int32, BlackMarketEntry*> BlackMarketEntryMap; diff --git a/src/server/game/Cache/CharacterCache.h b/src/server/game/Cache/CharacterCache.h index cd4b18bffb8..79b330d20d4 100644 --- a/src/server/game/Cache/CharacterCache.h +++ b/src/server/game/Cache/CharacterCache.h @@ -42,6 +42,10 @@ class TC_GAME_API CharacterCache { public: CharacterCache(); + CharacterCache(CharacterCache const&) = delete; + CharacterCache(CharacterCache&&) = delete; + CharacterCache& operator=(CharacterCache const&) = delete; + CharacterCache& operator=(CharacterCache&&) = delete; ~CharacterCache(); static CharacterCache* instance(); diff --git a/src/server/game/Calendar/CalendarMgr.h b/src/server/game/Calendar/CalendarMgr.h index 7f0a33be1bc..08e06b25926 100644 --- a/src/server/game/Calendar/CalendarMgr.h +++ b/src/server/game/Calendar/CalendarMgr.h @@ -143,16 +143,10 @@ enum CalendarLimits struct TC_GAME_API CalendarInvite { public: - CalendarInvite(CalendarInvite const& calendarInvite, uint64 inviteId, uint64 eventId) + CalendarInvite(CalendarInvite const& calendarInvite, uint64 inviteId, uint64 eventId) : _inviteId(inviteId), _eventId(eventId), + _invitee(calendarInvite.GetInviteeGUID()), _senderGUID(calendarInvite.GetSenderGUID()), _responseTime(calendarInvite.GetResponseTime()), + _status(calendarInvite.GetStatus()), _rank(calendarInvite.GetRank()), _note(calendarInvite.GetNote()) { - _inviteId = inviteId; - _eventId = eventId; - _invitee = calendarInvite.GetInviteeGUID(); - _senderGUID = calendarInvite.GetSenderGUID(); - _responseTime = calendarInvite.GetResponseTime(); - _status = calendarInvite.GetStatus(); - _rank = calendarInvite.GetRank(); - _note = calendarInvite.GetNote(); } CalendarInvite(); @@ -208,19 +202,10 @@ struct TC_GAME_API CalendarInvite struct TC_GAME_API CalendarEvent { public: - CalendarEvent(CalendarEvent const& calendarEvent, uint64 eventId) - { - _eventId = eventId; - _ownerGUID = calendarEvent.GetOwnerGUID(); - _eventGuildId = calendarEvent.GetGuildId(); - _eventType = calendarEvent.GetType(); - _textureId = calendarEvent.GetTextureId(); - _date = calendarEvent.GetDate(); - _flags = calendarEvent.GetFlags(); - _title = calendarEvent.GetTitle(); - _description = calendarEvent.GetDescription(); - _lockDate = calendarEvent.GetLockDate(); - } + CalendarEvent(CalendarEvent const& calendarEvent, uint64 eventId) : _eventId(eventId), _ownerGUID(calendarEvent.GetOwnerGUID()), + _eventGuildId(calendarEvent.GetGuildId()), _eventType(calendarEvent.GetType()), _textureId(calendarEvent.GetTextureId()), + _date(calendarEvent.GetDate()), _flags(calendarEvent.GetFlags()), _title(calendarEvent.GetTitle()), _description(calendarEvent.GetDescription()), + _lockDate(calendarEvent.GetLockDate()) { } CalendarEvent(uint64 eventId, ObjectGuid ownerGUID, ObjectGuid::LowType guildId, CalendarEventType type, int32 textureId, time_t date, uint32 flags, std::string title, std::string description, time_t lockDate) : diff --git a/src/server/game/Chat/Channels/ChannelMgr.cpp b/src/server/game/Chat/Channels/ChannelMgr.cpp index ea06221f36d..bbf61353aa0 100644 --- a/src/server/game/Chat/Channels/ChannelMgr.cpp +++ b/src/server/game/Chat/Channels/ChannelMgr.cpp @@ -28,6 +28,10 @@ AreaTableEntry const* ChannelMgr::SpecialLinkedArea; +ChannelMgr::ChannelMgr(Team team) : _team(team), _guidGenerator(HighGuid::ChatChannel) +{ +} + ChannelMgr::~ChannelMgr() { for (auto itr = _channels.begin(); itr != _channels.end(); ++itr) diff --git a/src/server/game/Chat/Channels/ChannelMgr.h b/src/server/game/Chat/Channels/ChannelMgr.h index 9cee57d35a5..1abc25ef58e 100644 --- a/src/server/game/Chat/Channels/ChannelMgr.h +++ b/src/server/game/Chat/Channels/ChannelMgr.h @@ -34,7 +34,7 @@ class TC_GAME_API ChannelMgr typedef std::unordered_map<ObjectGuid, Channel*> BuiltinChannelContainer; protected: - explicit ChannelMgr(Team team) : _team(team), _guidGenerator(HighGuid::ChatChannel) { } + explicit ChannelMgr(Team team); ~ChannelMgr(); public: diff --git a/src/server/game/Chat/Chat.h b/src/server/game/Chat/Chat.h index 296a2af197b..28da9630678 100644 --- a/src/server/game/Chat/Chat.h +++ b/src/server/game/Chat/Chat.h @@ -43,7 +43,11 @@ class TC_GAME_API ChatHandler WorldSession const* GetSession() const { return m_session; } Player* GetPlayer() const; explicit ChatHandler(WorldSession* session) : m_session(session), sentErrorMessage(false) { } - virtual ~ChatHandler() { } + ChatHandler(ChatHandler const&) = delete; + ChatHandler(ChatHandler&&) = delete; + ChatHandler& operator=(ChatHandler const&) = delete; + ChatHandler& operator=(ChatHandler&&) = delete; + virtual ~ChatHandler() = default; static char* LineFromMessage(char*& pos); diff --git a/src/server/game/Conditions/ConditionMgr.h b/src/server/game/Conditions/ConditionMgr.h index 4c81e058f75..9980742420b 100644 --- a/src/server/game/Conditions/ConditionMgr.h +++ b/src/server/game/Conditions/ConditionMgr.h @@ -301,6 +301,11 @@ class TC_GAME_API ConditionMgr ~ConditionMgr(); public: + ConditionMgr(ConditionMgr const&) = delete; + ConditionMgr(ConditionMgr&&) = delete; + ConditionMgr& operator=(ConditionMgr const&) = delete; + ConditionMgr& operator=(ConditionMgr&&) = delete; + static ConditionMgr* instance(); void LoadConditions(bool isReload = false); diff --git a/src/server/game/DungeonFinding/LFGGroupData.cpp b/src/server/game/DungeonFinding/LFGGroupData.cpp index 181ce3e081a..26f7185e956 100644 --- a/src/server/game/DungeonFinding/LFGGroupData.cpp +++ b/src/server/game/DungeonFinding/LFGGroupData.cpp @@ -25,8 +25,9 @@ LfgGroupData::LfgGroupData(): m_State(LFG_STATE_NONE), m_OldState(LFG_STATE_NONE m_Leader(), m_Dungeon(0), m_KicksLeft(LFG_GROUP_MAX_KICKS), m_VoteKickActive(false) { } -LfgGroupData::~LfgGroupData() -{ } +LfgGroupData::LfgGroupData(LfgGroupData&& other) noexcept = default; +LfgGroupData& LfgGroupData::operator=(LfgGroupData&& right) noexcept = default; +LfgGroupData::~LfgGroupData() = default; bool LfgGroupData::IsLfgGroup() { diff --git a/src/server/game/DungeonFinding/LFGGroupData.h b/src/server/game/DungeonFinding/LFGGroupData.h index 092c8b0a445..f8e891d8700 100644 --- a/src/server/game/DungeonFinding/LFGGroupData.h +++ b/src/server/game/DungeonFinding/LFGGroupData.h @@ -35,6 +35,10 @@ class TC_GAME_API LfgGroupData { public: LfgGroupData(); + LfgGroupData(LfgGroupData const&) = delete; + LfgGroupData(LfgGroupData&& other) noexcept; + LfgGroupData& operator=(LfgGroupData const&) = delete; + LfgGroupData& operator=(LfgGroupData&& right) noexcept; ~LfgGroupData(); bool IsLfgGroup(); diff --git a/src/server/game/DungeonFinding/LFGPlayerData.cpp b/src/server/game/DungeonFinding/LFGPlayerData.cpp index 62e5456676d..5133f29b517 100644 --- a/src/server/game/DungeonFinding/LFGPlayerData.cpp +++ b/src/server/game/DungeonFinding/LFGPlayerData.cpp @@ -24,7 +24,9 @@ LfgPlayerData::LfgPlayerData(): m_State(LFG_STATE_NONE), m_OldState(LFG_STATE_NO m_Team(0), m_Group(), m_Roles(0), m_NumberOfPartyMembersAtJoin(0) { } -LfgPlayerData::~LfgPlayerData() { } +LfgPlayerData::LfgPlayerData(LfgPlayerData&& other) noexcept = default; +LfgPlayerData& LfgPlayerData::operator=(LfgPlayerData&& right) noexcept = default; +LfgPlayerData::~LfgPlayerData() = default; void LfgPlayerData::SetTicket(WorldPackets::LFG::RideTicket const& ticket) { diff --git a/src/server/game/DungeonFinding/LFGPlayerData.h b/src/server/game/DungeonFinding/LFGPlayerData.h index 95603b16180..7e835343ba3 100644 --- a/src/server/game/DungeonFinding/LFGPlayerData.h +++ b/src/server/game/DungeonFinding/LFGPlayerData.h @@ -31,6 +31,10 @@ class TC_GAME_API LfgPlayerData { public: LfgPlayerData(); + LfgPlayerData(LfgPlayerData const&) = delete; + LfgPlayerData(LfgPlayerData&& other) noexcept; + LfgPlayerData& operator=(LfgPlayerData const&) = delete; + LfgPlayerData& operator=(LfgPlayerData&& right) noexcept; ~LfgPlayerData(); // General diff --git a/src/server/game/DungeonFinding/LFGQueue.cpp b/src/server/game/DungeonFinding/LFGQueue.cpp index eb688347527..65e6324ea50 100644 --- a/src/server/game/DungeonFinding/LFGQueue.cpp +++ b/src/server/game/DungeonFinding/LFGQueue.cpp @@ -83,6 +83,11 @@ LfgQueueData::LfgQueueData() : joinTime(GameTime::GetGameTime()), tanks(LFG_TANK healers(LFG_HEALERS_NEEDED), dps(LFG_DPS_NEEDED) { } +LFGQueue::LFGQueue() = default; +LFGQueue::LFGQueue(LFGQueue&& other) noexcept = default; +LFGQueue& LFGQueue::operator=(LFGQueue&& right) noexcept = default; +LFGQueue::~LFGQueue() = default; + std::string LFGQueue::GetDetailedMatchRoles(GuidList const& check) const { if (check.empty()) diff --git a/src/server/game/DungeonFinding/LFGQueue.h b/src/server/game/DungeonFinding/LFGQueue.h index da970ea6fcb..b153b035021 100644 --- a/src/server/game/DungeonFinding/LFGQueue.h +++ b/src/server/game/DungeonFinding/LFGQueue.h @@ -85,6 +85,12 @@ typedef std::map<ObjectGuid, LfgQueueData> LfgQueueDataContainer; class TC_GAME_API LFGQueue { public: + LFGQueue(); + LFGQueue(LFGQueue const&) = delete; + LFGQueue(LFGQueue&& other) noexcept; + LFGQueue& operator=(LFGQueue const&) = delete; + LFGQueue& operator=(LFGQueue&& right) noexcept; + ~LFGQueue(); // Add/Remove from queue std::string GetDetailedMatchRoles(GuidList const& check) const; @@ -111,8 +117,6 @@ class TC_GAME_API LFGQueue std::string DumpCompatibleInfo(bool full = false) const; private: - void SetQueueUpdateData(std::string const& strGuids, LfgRolesMap const& proposalRoles); - void AddToNewQueue(ObjectGuid guid); void AddToCurrentQueue(ObjectGuid guid); void AddToFrontCurrentQueue(ObjectGuid guid); diff --git a/src/server/game/Entities/Player/SocialMgr.cpp b/src/server/game/Entities/Player/SocialMgr.cpp index f2356970327..871efaefef1 100644 --- a/src/server/game/Entities/Player/SocialMgr.cpp +++ b/src/server/game/Entities/Player/SocialMgr.cpp @@ -201,6 +201,9 @@ bool PlayerSocial::HasIgnore(ObjectGuid const& ignoreGuid, ObjectGuid const& ign return _HasContact(ignoreGuid, SOCIAL_FLAG_IGNORED) || _ignoredAccounts.find(ignoreAccountGuid) != _ignoredAccounts.end(); } +SocialMgr::SocialMgr() = default; +SocialMgr::~SocialMgr() = default; + SocialMgr* SocialMgr::instance() { static SocialMgr instance; diff --git a/src/server/game/Entities/Player/SocialMgr.h b/src/server/game/Entities/Player/SocialMgr.h index f2db116aae7..c639dcef7c5 100644 --- a/src/server/game/Entities/Player/SocialMgr.h +++ b/src/server/game/Entities/Player/SocialMgr.h @@ -135,10 +135,15 @@ class TC_GAME_API PlayerSocial class SocialMgr { private: - SocialMgr() { } - ~SocialMgr() { } + SocialMgr(); + ~SocialMgr(); public: + SocialMgr(SocialMgr const&) = delete; + SocialMgr(SocialMgr&&) = delete; + SocialMgr& operator=(SocialMgr const&) = delete; + SocialMgr& operator=(SocialMgr&&) = delete; + static SocialMgr* instance(); // Misc diff --git a/src/server/game/Events/GameEventMgr.h b/src/server/game/Events/GameEventMgr.h index 0bc93ddcd42..086f2a594b5 100644 --- a/src/server/game/Events/GameEventMgr.h +++ b/src/server/game/Events/GameEventMgr.h @@ -97,6 +97,11 @@ class TC_GAME_API GameEventMgr ~GameEventMgr(); public: + GameEventMgr(GameEventMgr const&) = delete; + GameEventMgr(GameEventMgr&&) = delete; + GameEventMgr& operator=(GameEventMgr const&) = delete; + GameEventMgr& operator=(GameEventMgr&&) = delete; + static GameEventMgr* instance(); typedef std::set<uint16> ActiveEvents; diff --git a/src/server/game/Garrison/GarrisonMgr.cpp b/src/server/game/Garrison/GarrisonMgr.cpp index 79f29ae0aa2..3c110bf1b54 100644 --- a/src/server/game/Garrison/GarrisonMgr.cpp +++ b/src/server/game/Garrison/GarrisonMgr.cpp @@ -26,6 +26,9 @@ #include "Timer.h" #include "World.h" +GarrisonMgr::GarrisonMgr() = default; +GarrisonMgr::~GarrisonMgr() = default; + GarrisonMgr& GarrisonMgr::Instance() { static GarrisonMgr instance; diff --git a/src/server/game/Garrison/GarrisonMgr.h b/src/server/game/Garrison/GarrisonMgr.h index 52ec5042a1c..22cef01fa32 100644 --- a/src/server/game/Garrison/GarrisonMgr.h +++ b/src/server/game/Garrison/GarrisonMgr.h @@ -52,6 +52,13 @@ struct GarrAbilities class TC_GAME_API GarrisonMgr { public: + GarrisonMgr(); + GarrisonMgr(GarrisonMgr const&) = delete; + GarrisonMgr(GarrisonMgr&&) = delete; + GarrisonMgr& operator=(GarrisonMgr const&) = delete; + GarrisonMgr& operator=(GarrisonMgr&&) = delete; + ~GarrisonMgr(); + static GarrisonMgr& Instance(); void Initialize(); diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.cpp b/src/server/game/Grids/Notifiers/GridNotifiers.cpp index d37613a66cb..06cce453d2d 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiers.cpp +++ b/src/server/game/Grids/Notifiers/GridNotifiers.cpp @@ -26,6 +26,12 @@ using namespace Trinity; +VisibleNotifier::VisibleNotifier(Player& player): i_player(player), i_data(player.GetMapId()), vis_guids(player.m_clientGUIDs) +{ +} + +VisibleNotifier::~VisibleNotifier() = default; + void VisibleNotifier::SendToSelf() { // at this moment i_clientGUIDs have guids that not iterate at grid level checks diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h index 39ee9374f6c..d4de23dd20c 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiers.h +++ b/src/server/game/Grids/Notifiers/GridNotifiers.h @@ -52,9 +52,15 @@ namespace Trinity std::set<WorldObject*> i_visibleNow; GuidUnorderedSet vis_guids; - VisibleNotifier(Player &player) : i_player(player), i_data(player.GetMapId()), vis_guids(player.m_clientGUIDs) { } + VisibleNotifier(Player &player); + ~VisibleNotifier(); template<class T> void Visit(GridRefManager<T> &m); void SendToSelf(void); + + VisibleNotifier(VisibleNotifier const&) = delete; + VisibleNotifier(VisibleNotifier&&) = delete; + VisibleNotifier& operator=(VisibleNotifier const&) = delete; + VisibleNotifier& operator=(VisibleNotifier&&) = delete; }; struct VisibleChangesNotifier diff --git a/src/server/game/Groups/GroupMgr.h b/src/server/game/Groups/GroupMgr.h index 6e86142d62b..6b26688867e 100644 --- a/src/server/game/Groups/GroupMgr.h +++ b/src/server/game/Groups/GroupMgr.h @@ -30,6 +30,11 @@ private: ~GroupMgr(); public: + GroupMgr(GroupMgr const&) = delete; + GroupMgr(GroupMgr&&) = delete; + GroupMgr& operator=(GroupMgr const&) = delete; + GroupMgr& operator=(GroupMgr&&) = delete; + static GroupMgr* instance(); typedef std::map<ObjectGuid::LowType, Group*> GroupContainer; diff --git a/src/server/game/Guilds/GuildMgr.h b/src/server/game/Guilds/GuildMgr.h index 5c021648a28..787d8da8c16 100644 --- a/src/server/game/Guilds/GuildMgr.h +++ b/src/server/game/Guilds/GuildMgr.h @@ -32,10 +32,13 @@ class TC_GAME_API GuildMgr private: GuildMgr(); ~GuildMgr(); + +public: GuildMgr(GuildMgr const&) = delete; + GuildMgr(GuildMgr&&) = delete; GuildMgr& operator=(GuildMgr const&) = delete; + GuildMgr& operator=(GuildMgr&&) = delete; -public: static GuildMgr* instance(); Guild* GetGuildByLeader(ObjectGuid guid) const; diff --git a/src/server/game/Loot/LootItemStorage.h b/src/server/game/Loot/LootItemStorage.h index 8df0a0c6a34..dea2dca4a03 100644 --- a/src/server/game/Loot/LootItemStorage.h +++ b/src/server/game/Loot/LootItemStorage.h @@ -77,6 +77,11 @@ class StoredLootContainer class LootItemStorage { public: + LootItemStorage(LootItemStorage const&) = delete; + LootItemStorage(LootItemStorage&&) = delete; + LootItemStorage& operator=(LootItemStorage const&) = delete; + LootItemStorage& operator=(LootItemStorage&&) = delete; + static LootItemStorage* instance(); static std::shared_mutex* GetLock(); @@ -88,8 +93,8 @@ class LootItemStorage void AddNewStoredLoot(uint64 containerId, Loot* loot, Player* player); private: - LootItemStorage() { } - ~LootItemStorage() { } + LootItemStorage() = default; + ~LootItemStorage() = default; }; #define sLootItemStorage LootItemStorage::instance() diff --git a/src/server/game/Loot/LootMgr.cpp b/src/server/game/Loot/LootMgr.cpp index d0b4a386cb0..5c8999b99e7 100644 --- a/src/server/game/Loot/LootMgr.cpp +++ b/src/server/game/Loot/LootMgr.cpp @@ -110,6 +110,11 @@ class LootTemplate::LootGroup // A set of loot def LootStoreItem const* Roll(uint16 lootMode, Player const* personalLooter = nullptr) const; }; +LootStore::LootStore(char const* name, char const* entryName, bool ratesAllowed) + : m_name(name), m_entryName(entryName), m_ratesAllowed(ratesAllowed) +{ +} + LootStore::LootStore(LootStore&&) noexcept = default; LootStore& LootStore::operator=(LootStore&&) noexcept = default; LootStore::~LootStore() = default; diff --git a/src/server/game/Loot/LootMgr.h b/src/server/game/Loot/LootMgr.h index fea1155ac63..808cf529201 100644 --- a/src/server/game/Loot/LootMgr.h +++ b/src/server/game/Loot/LootMgr.h @@ -73,8 +73,7 @@ typedef std::set<uint32> LootIdSet; class TC_GAME_API LootStore { public: - explicit LootStore(char const* name, char const* entryName, bool ratesAllowed) - : m_name(name), m_entryName(entryName), m_ratesAllowed(ratesAllowed) { } + explicit LootStore(char const* name, char const* entryName, bool ratesAllowed); LootStore(LootStore const&) = delete; LootStore(LootStore&&) noexcept; diff --git a/src/server/game/Maps/TransportMgr.cpp b/src/server/game/Maps/TransportMgr.cpp index 199dc03de2c..b43f9f374dc 100644 --- a/src/server/game/Maps/TransportMgr.cpp +++ b/src/server/game/Maps/TransportMgr.cpp @@ -174,8 +174,12 @@ double TransportTemplate::CalculateDistanceMoved(double timePassedInSegment, dou } } -TransportMgr::TransportMgr() = default; +TransportAnimation::TransportAnimation() = default; +TransportAnimation::~TransportAnimation() = default; +TransportAnimation::TransportAnimation(TransportAnimation&&) noexcept = default; +TransportAnimation& TransportAnimation::operator=(TransportAnimation&&) noexcept = default; +TransportMgr::TransportMgr() = default; TransportMgr::~TransportMgr() = default; TransportMgr* TransportMgr::instance() diff --git a/src/server/game/Maps/TransportMgr.h b/src/server/game/Maps/TransportMgr.h index 0c576cf9a02..a2b0accfb81 100644 --- a/src/server/game/Maps/TransportMgr.h +++ b/src/server/game/Maps/TransportMgr.h @@ -105,13 +105,19 @@ struct TransportTemplate std::set<uint32> MapIds; }; -struct TC_GAME_API TransportAnimation +struct TransportAnimation { - TransportAnimation() : TotalTime(0) { } + TransportAnimation(); + ~TransportAnimation(); + + TransportAnimation(TransportAnimation const&) = delete; + TransportAnimation(TransportAnimation&&) noexcept; + TransportAnimation& operator=(TransportAnimation const&) = delete; + TransportAnimation& operator=(TransportAnimation&&) noexcept; std::map<uint32, TransportAnimationEntry const*> Path; std::map<uint32, TransportRotationEntry const*> Rotations; - uint32 TotalTime; + uint32 TotalTime = 0; TransportAnimationEntry const* GetPrevAnimNode(uint32 time) const; TransportRotationEntry const* GetPrevAnimRotation(uint32 time) const; @@ -132,6 +138,11 @@ struct TransportSpawn class TC_GAME_API TransportMgr { public: + TransportMgr(TransportMgr const&) = delete; + TransportMgr(TransportMgr&&) = delete; + TransportMgr& operator=(TransportMgr const&) = delete; + TransportMgr& operator=(TransportMgr&&) = delete; + static TransportMgr* instance(); void Unload(); @@ -157,10 +168,6 @@ class TC_GAME_API TransportMgr private: TransportMgr(); ~TransportMgr(); - TransportMgr(TransportMgr const&) = delete; - TransportMgr(TransportMgr&&) = delete; - TransportMgr& operator=(TransportMgr const&) = delete; - TransportMgr& operator=(TransportMgr&&) = delete; // Generates and precaches a path for transport to avoid generation each time transport instance is created void GeneratePath(GameObjectTemplate const* goInfo, TransportTemplate* transport); diff --git a/src/server/game/Movement/Waypoints/WaypointManager.cpp b/src/server/game/Movement/Waypoints/WaypointManager.cpp index ffb984fb4af..0785ea7869c 100644 --- a/src/server/game/Movement/Waypoints/WaypointManager.cpp +++ b/src/server/game/Movement/Waypoints/WaypointManager.cpp @@ -25,6 +25,9 @@ #include "TemporarySummon.h" #include "Unit.h" +WaypointMgr::WaypointMgr() = default; +WaypointMgr::~WaypointMgr() = default; + void WaypointMgr::LoadPaths() { _LoadPaths(); diff --git a/src/server/game/Movement/Waypoints/WaypointManager.h b/src/server/game/Movement/Waypoints/WaypointManager.h index 721f79d76a6..31169de46a1 100644 --- a/src/server/game/Movement/Waypoints/WaypointManager.h +++ b/src/server/game/Movement/Waypoints/WaypointManager.h @@ -19,7 +19,7 @@ #define TRINITY_WAYPOINTMANAGER_H #include "Define.h" -#include "Field.h" +#include "DatabaseEnvFwd.h" #include "Hash.h" #include "ObjectGuid.h" #include "Position.h" @@ -31,6 +31,11 @@ class Unit; class TC_GAME_API WaypointMgr { public: + WaypointMgr(WaypointMgr const&) = delete; + WaypointMgr(WaypointMgr&&) = delete; + WaypointMgr& operator=(WaypointMgr const&) = delete; + WaypointMgr& operator=(WaypointMgr&&) = delete; + static WaypointMgr* instance(); // Attempts to reload a single path from database @@ -57,7 +62,8 @@ class TC_GAME_API WaypointMgr ObjectGuid const& GetVisualGUIDByNode(uint32 pathId, uint32 nodeId) const; private: - WaypointMgr() { } + WaypointMgr(); + ~WaypointMgr(); void _LoadPaths(); void _LoadPathNodes(); diff --git a/src/server/game/Petitions/PetitionMgr.h b/src/server/game/Petitions/PetitionMgr.h index d706ada35a5..1de39cc159d 100644 --- a/src/server/game/Petitions/PetitionMgr.h +++ b/src/server/game/Petitions/PetitionMgr.h @@ -66,8 +66,12 @@ struct Petition class TC_GAME_API PetitionMgr { public: - PetitionMgr() { } - ~PetitionMgr() { } + PetitionMgr() = default; + PetitionMgr(PetitionMgr const&) = delete; + PetitionMgr(PetitionMgr&&) = delete; + PetitionMgr& operator=(PetitionMgr const&) = delete; + PetitionMgr& operator=(PetitionMgr&&) = delete; + ~PetitionMgr() = default; static PetitionMgr* instance(); diff --git a/src/server/game/Pools/QuestPools.cpp b/src/server/game/Pools/QuestPools.cpp index 22778193afa..f6575556d74 100644 --- a/src/server/game/Pools/QuestPools.cpp +++ b/src/server/game/Pools/QuestPools.cpp @@ -25,6 +25,9 @@ #include <unordered_map> #include <unordered_set> +QuestPoolMgr::QuestPoolMgr() = default; +QuestPoolMgr::~QuestPoolMgr() = default; + /*static*/ QuestPoolMgr* QuestPoolMgr::instance() { static QuestPoolMgr instance; diff --git a/src/server/game/Pools/QuestPools.h b/src/server/game/Pools/QuestPools.h index d889e933a7d..6b5cef07ae3 100644 --- a/src/server/game/Pools/QuestPools.h +++ b/src/server/game/Pools/QuestPools.h @@ -37,10 +37,15 @@ struct QuestPool class TC_GAME_API QuestPoolMgr { private: - QuestPoolMgr() {} - ~QuestPoolMgr() {} + QuestPoolMgr(); + ~QuestPoolMgr(); public: + QuestPoolMgr(QuestPoolMgr const&) = delete; + QuestPoolMgr(QuestPoolMgr&&) = delete; + QuestPoolMgr& operator=(QuestPoolMgr const&) = delete; + QuestPoolMgr& operator=(QuestPoolMgr&&) = delete; + static QuestPoolMgr* instance(); void LoadFromDB(); diff --git a/src/server/game/Scenarios/ScenarioMgr.cpp b/src/server/game/Scenarios/ScenarioMgr.cpp index b18d32d3584..15bee12f12d 100644 --- a/src/server/game/Scenarios/ScenarioMgr.cpp +++ b/src/server/game/Scenarios/ScenarioMgr.cpp @@ -24,6 +24,9 @@ #include "MapUtils.h" #include "ScenarioPackets.h" +ScenarioMgr::ScenarioMgr() = default; +ScenarioMgr::~ScenarioMgr() = default; + ScenarioMgr* ScenarioMgr::Instance() { static ScenarioMgr instance; diff --git a/src/server/game/Scenarios/ScenarioMgr.h b/src/server/game/Scenarios/ScenarioMgr.h index 3f37ac6ccad..96711a998e2 100644 --- a/src/server/game/Scenarios/ScenarioMgr.h +++ b/src/server/game/Scenarios/ScenarioMgr.h @@ -99,10 +99,15 @@ typedef std::unordered_map<uint32, ScenarioPOIVector> ScenarioPOIContainer; class TC_GAME_API ScenarioMgr { private: - ScenarioMgr() { } - ~ScenarioMgr() { } + ScenarioMgr(); + ~ScenarioMgr(); public: + ScenarioMgr(ScenarioMgr const&) = delete; + ScenarioMgr(ScenarioMgr&&) = delete; + ScenarioMgr& operator=(ScenarioMgr const&) = delete; + ScenarioMgr& operator=(ScenarioMgr&&) = delete; + static ScenarioMgr* Instance(); InstanceScenario* CreateInstanceScenario(InstanceMap* map, TeamId team) const; @@ -117,9 +122,6 @@ private: ScenarioDataContainer _scenarioData; ScenarioPOIContainer _scenarioPOIStore; ScenarioDBDataContainer _scenarioDBData; - - ScenarioMgr(ScenarioMgr const&) = delete; - ScenarioMgr& operator=(ScenarioMgr const&) = delete; }; #define sScenarioMgr ScenarioMgr::Instance() diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 39924cc3b57..56c6c7d5ca7 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -321,6 +321,11 @@ class TC_GAME_API MapScript public: + MapScript(MapScript const& right) = delete; + MapScript(MapScript&& right) = delete; + MapScript& operator=(MapScript const& right) = delete; + MapScript& operator=(MapScript&& right) = delete; + // Gets the MapEntry structure associated with this script. Can return NULL. MapEntry const* GetEntry() const; diff --git a/src/server/game/Scripting/ScriptReloadMgr.h b/src/server/game/Scripting/ScriptReloadMgr.h index 3a0b9f3928e..c00535c9c59 100644 --- a/src/server/game/Scripting/ScriptReloadMgr.h +++ b/src/server/game/Scripting/ScriptReloadMgr.h @@ -38,7 +38,7 @@ class path; class ModuleReference { public: - virtual ~ModuleReference() { } + virtual ~ModuleReference() = default; /// Returns the git revision hash of the referenced script module virtual char const* GetScriptModuleRevisionHash() const = 0; @@ -56,10 +56,14 @@ public: class TC_GAME_API ScriptReloadMgr { protected: - ScriptReloadMgr() { } + ScriptReloadMgr() = default; public: - virtual ~ScriptReloadMgr() { } + ScriptReloadMgr(ScriptReloadMgr const&) = delete; + ScriptReloadMgr(ScriptReloadMgr&&) = delete; + ScriptReloadMgr& operator=(ScriptReloadMgr const&) = delete; + ScriptReloadMgr& operator=(ScriptReloadMgr&&) = delete; + virtual ~ScriptReloadMgr() = default; /// Initializes the ScriptReloadMgr virtual void Initialize() { } diff --git a/src/server/game/Scripting/ScriptSystem.h b/src/server/game/Scripting/ScriptSystem.h index 18bcd91e158..8c509b2d4d1 100644 --- a/src/server/game/Scripting/ScriptSystem.h +++ b/src/server/game/Scripting/ScriptSystem.h @@ -30,6 +30,11 @@ struct SplineChainLink; class TC_GAME_API SystemMgr { public: + SystemMgr(SystemMgr const&) = delete; + SystemMgr(SystemMgr&&) = delete; + SystemMgr& operator=(SystemMgr const&) = delete; + SystemMgr& operator=(SystemMgr&&) = delete; + static SystemMgr* instance(); // database @@ -44,9 +49,6 @@ class TC_GAME_API SystemMgr SystemMgr(); ~SystemMgr(); - SystemMgr(SystemMgr const&) = delete; - SystemMgr& operator=(SystemMgr const&) = delete; - std::unordered_map<ChainKeyType, std::vector<SplineChainLink>> m_mSplineChainsMap; // spline chains }; diff --git a/src/server/game/Server/Protocol/PacketLog.h b/src/server/game/Server/Protocol/PacketLog.h index 0a8a23bbfdd..585609a46ac 100644 --- a/src/server/game/Server/Protocol/PacketLog.h +++ b/src/server/game/Server/Protocol/PacketLog.h @@ -50,6 +50,11 @@ class TC_GAME_API PacketLog std::once_flag _initializeFlag; public: + PacketLog(PacketLog const&) = delete; + PacketLog(PacketLog&&) = delete; + PacketLog& operator=(PacketLog const&) = delete; + PacketLog& operator=(PacketLog&&) = delete; + static PacketLog* instance(); void Initialize(); diff --git a/src/server/game/Storages/WhoListStorage.cpp b/src/server/game/Storages/WhoListStorage.cpp index 8d9dd031323..ecc78600096 100644 --- a/src/server/game/Storages/WhoListStorage.cpp +++ b/src/server/game/Storages/WhoListStorage.cpp @@ -23,6 +23,9 @@ #include "WorldSession.h" #include "Guild.h" +WhoListStorageMgr::WhoListStorageMgr() = default; +WhoListStorageMgr::~WhoListStorageMgr() = default; + WhoListStorageMgr* WhoListStorageMgr::instance() { static WhoListStorageMgr instance; diff --git a/src/server/game/Storages/WhoListStorage.h b/src/server/game/Storages/WhoListStorage.h index de650c9027a..5259c1b6ee4 100644 --- a/src/server/game/Storages/WhoListStorage.h +++ b/src/server/game/Storages/WhoListStorage.h @@ -68,10 +68,15 @@ typedef std::vector<WhoListPlayerInfo> WhoListInfoVector; class TC_GAME_API WhoListStorageMgr { private: - WhoListStorageMgr() { }; - ~WhoListStorageMgr() { }; + WhoListStorageMgr(); + ~WhoListStorageMgr(); public: + WhoListStorageMgr(WhoListStorageMgr const&) = delete; + WhoListStorageMgr(WhoListStorageMgr&&) = delete; + WhoListStorageMgr& operator=(WhoListStorageMgr const&) = delete; + WhoListStorageMgr& operator=(WhoListStorageMgr&&) = delete; + static WhoListStorageMgr* instance(); void Update(); diff --git a/src/server/game/Support/SupportMgr.h b/src/server/game/Support/SupportMgr.h index c9d41cef272..fc748d0a840 100644 --- a/src/server/game/Support/SupportMgr.h +++ b/src/server/game/Support/SupportMgr.h @@ -95,6 +95,10 @@ class TC_GAME_API Ticket public: Ticket(); Ticket(Player* player); + Ticket(Ticket const&) = delete; + Ticket(Ticket&&) = delete; + Ticket& operator=(Ticket const&) = delete; + Ticket& operator=(Ticket&&) = delete; virtual ~Ticket(); bool IsClosed() const { return !_closedBy.IsEmpty(); } @@ -237,6 +241,11 @@ private: ~SupportMgr(); public: + SupportMgr(SupportMgr const&) = delete; + SupportMgr(SupportMgr&&) = delete; + SupportMgr& operator=(SupportMgr const&) = delete; + SupportMgr& operator=(SupportMgr&&) = delete; + static SupportMgr* instance(); template<typename T> diff --git a/src/server/game/Tools/PlayerDump.cpp b/src/server/game/Tools/PlayerDump.cpp index 078ba4a321b..1bfa3d50fe9 100644 --- a/src/server/game/Tools/PlayerDump.cpp +++ b/src/server/game/Tools/PlayerDump.cpp @@ -793,6 +793,8 @@ bool PlayerDumpWriter::AppendTable(StringTransaction& trans, ObjectGuid::LowType return true; } +PlayerDumpWriter::PlayerDumpWriter() = default; + bool PlayerDumpWriter::GetDump(ObjectGuid::LowType guid, std::string& dump) { dump = "IMPORTANT NOTE: THIS DUMPFILE IS MADE FOR USE WITH THE 'PDUMP' COMMAND ONLY - EITHER THROUGH INGAME CHAT OR ON CONSOLE!\n"; diff --git a/src/server/game/Tools/PlayerDump.h b/src/server/game/Tools/PlayerDump.h index 7858acff731..63f4f9205b0 100644 --- a/src/server/game/Tools/PlayerDump.h +++ b/src/server/game/Tools/PlayerDump.h @@ -77,18 +77,22 @@ class StringTransaction; class TC_GAME_API PlayerDump { public: - static void InitializeTables(); + PlayerDump(PlayerDump const&) = delete; + PlayerDump(PlayerDump&&) = delete; + PlayerDump& operator=(PlayerDump const&) = delete; + PlayerDump& operator=(PlayerDump&&) = delete; - static void InitializeColumnDefinition(); + static void InitializeTables(); protected: - PlayerDump() { } + PlayerDump() = default; + ~PlayerDump() = default; }; -class TC_GAME_API PlayerDumpWriter : public PlayerDump +class TC_GAME_API PlayerDumpWriter final : public PlayerDump { public: - PlayerDumpWriter() { } + PlayerDumpWriter(); bool GetDump(ObjectGuid::LowType guid, std::string& dump); DumpReturn WriteDumpToFile(std::string const& file, ObjectGuid::LowType guid); @@ -105,10 +109,10 @@ class TC_GAME_API PlayerDumpWriter : public PlayerDump std::set<uint64> _itemSets; }; -class TC_GAME_API PlayerDumpReader : public PlayerDump +class TC_GAME_API PlayerDumpReader final : public PlayerDump { public: - PlayerDumpReader() { } + PlayerDumpReader() = default; DumpReturn LoadDumpFromFile(std::string const& file, uint32 account, std::string name, ObjectGuid::LowType guid); DumpReturn LoadDumpFromString(std::string const& dump, uint32 account, std::string name, ObjectGuid::LowType guid); diff --git a/src/server/game/Warden/WardenCheckMgr.h b/src/server/game/Warden/WardenCheckMgr.h index eea0e2839d7..bcaa2d26050 100644 --- a/src/server/game/Warden/WardenCheckMgr.h +++ b/src/server/game/Warden/WardenCheckMgr.h @@ -118,6 +118,11 @@ class TC_GAME_API WardenCheckMgr WardenCheckMgr(); public: + WardenCheckMgr(WardenCheckMgr const&) = delete; + WardenCheckMgr(WardenCheckMgr&&) = delete; + WardenCheckMgr& operator=(WardenCheckMgr const&) = delete; + WardenCheckMgr& operator=(WardenCheckMgr&&) = delete; + static WardenCheckMgr* instance(); uint16 GetMaxValidCheckId() const { return static_cast<uint16>(_checks.size()); } diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index 081b59499aa..0c43ae0f273 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -560,6 +560,11 @@ typedef std::unordered_map<uint32, WorldSession*> SessionMap; class TC_GAME_API World { public: + World(World const&) = delete; + World(World&&) = delete; + World& operator=(World const&) = delete; + World& operator=(World&&) = delete; + static World* instance(); static std::atomic<uint32> m_worldLoopCounter; diff --git a/src/server/shared/Secrets/SecretMgr.cpp b/src/server/shared/Secrets/SecretMgr.cpp index f084bd10bfb..b0ade7be0fe 100644 --- a/src/server/shared/Secrets/SecretMgr.cpp +++ b/src/server/shared/Secrets/SecretMgr.cpp @@ -50,6 +50,9 @@ static constexpr SecretInfo secret_info[NUM_SECRETS] = SecretOwner SecretMgr::OWNER; +SecretMgr::SecretMgr() = default; +SecretMgr::~SecretMgr() = default; + /*static*/ SecretMgr* SecretMgr::instance() { static SecretMgr instance; diff --git a/src/server/shared/Secrets/SecretMgr.h b/src/server/shared/Secrets/SecretMgr.h index fdf6f32cca9..ba9a870f83f 100644 --- a/src/server/shared/Secrets/SecretMgr.h +++ b/src/server/shared/Secrets/SecretMgr.h @@ -45,13 +45,17 @@ enum SecretOwner class TC_SHARED_API SecretMgr { private: - SecretMgr() {} - ~SecretMgr() {} + SecretMgr(); + ~SecretMgr(); public: static SecretOwner OWNER; SecretMgr(SecretMgr const&) = delete; + SecretMgr(SecretMgr&&) = delete; + SecretMgr& operator=(SecretMgr const&) = delete; + SecretMgr& operator=(SecretMgr&&) = delete; + static SecretMgr* instance(); struct Secret |