980 std::shared_ptr<WorldSocket>&& sock,
AccountTypes sec,
uint8 expansion, time_t mute_time, std::string&& os,
Minutes timezoneOffset,
988 bool PlayerDisconnected()
const;
990 bool IsAddonRegistered(std::string_view prefix)
const;
992 void SendPacket(
WorldPacket const* packet,
bool forced =
false);
994 void SendNotification(
char const* format, ...)
ATTR_PRINTF(2, 3);
995 void SendNotification(
uint32 stringId, ...);
998 void SendQueryTimeResponse();
1000 void SendAuthResponse(
uint32 code,
bool queued,
uint32 queuePos = 0);
1001 void SendClientCacheVersion(
uint32 version);
1002 void SendAvailableHotfixes();
1004 void InitializeSession();
1007 rbac::RBACData* GetRBACData();
1008 bool HasPermission(
uint32 permissionId);
1009 void LoadPermissions();
1011 void InvalidateRBACData();
1017 uint32 GetBattlenetAccountId()
const;
1021 std::string
const& GetPlayerName()
const;
1022 std::string GetPlayerInfo()
const;
1026 void SetPlayer(
Player* player);
1029 std::string
const&
GetOS()
const {
return _os; }
1033 bool CanAccessAlliedRaces()
const;
1044 _logoutTime = requestTime;
1050 return (_logoutTime > 0 && currTime >= _logoutTime + 20);
1053 void LogoutPlayer(
bool save);
1054 void KickPlayer(std::string_view reason);
1057 bool ValidateHyperlinksAndMaybeKick(std::string
const& str);
1060 bool DisallowHyperlinksAndMaybeKick(std::string
const& str);
1066 void SendAuthWaitQueue(
uint32 position);
1068 void SendSetTimeZoneInformation();
1069 void SendFeatureSystemStatus();
1070 void SendFeatureSystemStatusGlueScreen();
1080 void SendSpiritResurrect();
1082 void SendOpenTransmogrifier(
ObjectGuid const& guid);
1084 void SendAttackStop(
Unit const* enemy);
1087 void SendUpdateTrade(
bool trader_data =
true);
1088 void SendCancelTrade();
1090 void SendPetitionQueryOpcode(
ObjectGuid petitionguid);
1093 void SendQueryPetNameResponse(
ObjectGuid guid);
1099 void SetAccountData(
AccountDataType type, time_t time, std::string
const& data);
1104 void SendTutorialsData();
1109 if (_tutorials[index] != value)
1111 _tutorials[index] = value;
1142 void SetPlayerDataElementAccount(
uint32 dataElementId,
float value);
1143 void SetPlayerDataElementAccount(
uint32 dataElementId,
int64 value);
1144 void SetPlayerDataFlagAccount(
uint32 dataFlagId,
bool on);
1162 void SendAuctionClosedNotification(
AuctionPosting const* auction,
float mailDelay,
bool sold);
1163 void SendAuctionOwnerBidNotification(
AuctionPosting const* auction);
1178 bool SendLearnNewTaxiNode(
Creature* unit);
1179 void SendDiscoverNewTaxiNode(
uint32 nodeid);
1184 void DoLootRelease(
Loot* loot);
1185 void DoLootReleaseAll();
1188 bool CanSpeak()
const;
1197 char const* GetTrinityString(
uint32 entry)
const;
1204 void ResetTimeOutTime(
bool onlyActive);
1206 bool IsConnectionIdle()
const;
1213 void ResetTimeSync();
1214 void SendTimeSync();
1215 void RegisterTimeSync(
uint32 counter);
1218 static constexpr uint32 SPECIAL_INIT_ACTIVE_MOVER_TIME_SYNC_COUNTER = 0xFFFFFFFF;
1219 static constexpr uint32 SPECIAL_RESUME_COMMS_TIME_SYNC_COUNTER = 0xFFFFFFFE;
1234 void LogUnprocessedTail(
WorldPacket const* packet);
1244 void HandleContinuePlayerLogin();
1250 void HandleCharRenameCallBack(std::shared_ptr<WorldPackets::Character::CharacterRenameInfo> renameInfo,
PreparedQueryResult result);
1254 void HandleCharCustomizeCallback(std::shared_ptr<WorldPackets::Character::CharCustomizeInfo> customizeInfo,
PreparedQueryResult result);
1256 void HandleCharRaceOrFactionChangeCallback(std::shared_ptr<WorldPackets::Character::CharRaceOrFactionChangeInfo> factionChangeInfo,
PreparedQueryResult result);
1275 void SendUndeleteCooldownStatusResponse(
uint32 currentCooldown,
uint32 maxCooldown);
1369 void HandleMoveWorldportAck();
1421 void SendPetitionSigns(
Petition const* petition,
Player* sendTo);
1486 void HandleDuelAccepted(
ObjectGuid arbiterGuid);
1487 void HandleDuelCancelled();
1514 void SendAuctionFavoriteList();
1624 void HandleChatAddonMessage(
ChatMsg type, std::string prefix, std::string text,
bool isLogged, std::string target =
"",
Optional<ObjectGuid> targetGuid = {});
1628 void SendChatPlayerNotfoundNotice(std::string
const& name);
1629 void SendPlayerAmbiguousNotice(std::string
const& name);
1708 void SendLfgPlayerLockInfo();
1709 void SendLfgPartyLockInfo();
1727 void SendLfgDisabled();
1728 void SendLfgOfferContinue(
uint32 dungeonEntry);
1791 void SendCalendarRaidLockoutAdded(
InstanceLock const* lock);
1792 void SendCalendarRaidLockoutRemoved(
InstanceLock const* lock);
1850 void SendLoadCUFProfiles();
1876 void SendBattlenetResponse(
uint32 serviceHash,
uint32 methodId,
uint32 token, pb::Message
const* response);
1878 void SendBattlenetRequest(
uint32 serviceHash,
uint32 methodId, pb::Message
const* request, std::function<
void(
MessageBuffer)> callback);
1879 void SendBattlenetRequest(
uint32 serviceHash,
uint32 methodId, pb::Message
const* request);
1920 static void AddInstanceConnection(
WorldSession* session, std::weak_ptr<WorldSocket> sockRef, ConnectToKey key);
1928 void ProcessQueryCallbacks();
1941 bool EvaluateOpcode(
WorldPacket& p, time_t time)
const;
1950 uint32 GetMaxPacketCounterAllowed(
uint32 opcode)
const;
1966 void moveItems(
Item* myItems[],
Item* hisItems[]);
1971 void LogUnexpectedOpcode(
WorldPacket* packet,
char const* status,
const char *reason);
1976 return _legitCharacters.find(lowGUID) != _legitCharacters.end();
2029 void ComputeNewClockDelta();