mirror of
https://github.com/mangosfour/server.git
synced 2025-12-26 16:37:06 +00:00
Now console/RA uas same commads as used in chat if selected command marked as safe for console. Some commands accessable only at console and have security level 4. See sql update for new command names. Not all commands that safe (or can be modified to safe) for console allowed currently for use in console input, this will be fixed later.
646 lines
31 KiB
C++
646 lines
31 KiB
C++
/*
|
|
* Copyright (C) 2005-2008 MaNGOS <http://getmangos.com/>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
/// \addtogroup u2w
|
|
/// @{
|
|
/// \file
|
|
|
|
#ifndef __WORLDSESSION_H
|
|
#define __WORLDSESSION_H
|
|
|
|
#include "Common.h"
|
|
|
|
class MailItemsInfo;
|
|
struct ItemPrototype;
|
|
struct AuctionEntry;
|
|
struct DeclinedName;
|
|
|
|
class Creature;
|
|
class Item;
|
|
class Object;
|
|
class Player;
|
|
class Unit;
|
|
class WorldPacket;
|
|
class WorldSocket;
|
|
class WorldSession;
|
|
class QueryResult;
|
|
class LoginQueryHolder;
|
|
class CharacterHandler;
|
|
|
|
#define CHECK_PACKET_SIZE(P,S) if((P).size() < (S)) return SizeError((P),(S));
|
|
|
|
enum PartyOperation
|
|
{
|
|
PARTY_OP_INVITE = 0,
|
|
PARTY_OP_LEAVE = 2
|
|
};
|
|
|
|
enum PartyResult
|
|
{
|
|
PARTY_RESULT_OK = 0,
|
|
PARTY_RESULT_CANT_FIND_TARGET = 1,
|
|
PARTY_RESULT_NOT_IN_YOUR_PARTY = 2,
|
|
PARTY_RESULT_NOT_IN_YOUR_INSTANCE = 3,
|
|
PARTY_RESULT_PARTY_FULL = 4,
|
|
PARTY_RESULT_ALREADY_IN_GROUP = 5,
|
|
PARTY_RESULT_YOU_NOT_IN_GROUP = 6,
|
|
PARTY_RESULT_YOU_NOT_LEADER = 7,
|
|
PARTY_RESULT_TARGET_UNFRIENDLY = 8,
|
|
PARTY_RESULT_TARGET_IGNORE_YOU = 9,
|
|
PARTY_RESULT_INVITE_RESTRICTED = 13
|
|
};
|
|
|
|
/// Player session in the World
|
|
class MANGOS_DLL_SPEC WorldSession
|
|
{
|
|
friend class CharacterHandler;
|
|
public:
|
|
WorldSession(uint32 id, WorldSocket *sock, uint32 sec, uint8 expansion, time_t mute_time, LocaleConstant locale);
|
|
~WorldSession();
|
|
|
|
bool PlayerLoading() const { return m_playerLoading; }
|
|
bool PlayerLogout() const { return m_playerLogout; }
|
|
|
|
void SizeError(WorldPacket const& packet, uint32 size) const;
|
|
|
|
void SendPacket(WorldPacket const* packet);
|
|
void SendNotification(const char *format,...) ATTR_PRINTF(2,3);
|
|
void SendNotification(int32 string_id,...);
|
|
void SendPetNameInvalid(uint32 error, std::string name, DeclinedName *declinedName);
|
|
void SendLfgResult(uint32 type, uint32 entry, uint8 lfg_type);
|
|
void SendPartyResult(PartyOperation operation, std::string member, PartyResult res);
|
|
void SendAreaTriggerMessage(const char* Text, ...) ATTR_PRINTF(2,3);
|
|
|
|
uint32 GetSecurity() const { return _security; }
|
|
uint32 GetAccountId() const { return _accountId; }
|
|
Player* GetPlayer() const { return _player; }
|
|
char const* GetPlayerName() const;
|
|
void SetSecurity(uint32 security) { _security = security; }
|
|
std::string& GetRemoteAddress() { return m_Address; }
|
|
void SetPlayer(Player *plr) { _player = plr; }
|
|
uint8 Expansion() const { return m_expansion; }
|
|
|
|
/// Is the user engaged in a log out process?
|
|
bool isLogingOut() const { return _logoutTime || m_playerLogout; }
|
|
|
|
/// Engage the logout process for the user
|
|
void LogoutRequest(time_t requestTime)
|
|
{
|
|
_logoutTime = requestTime;
|
|
}
|
|
|
|
/// Is logout cooldown expired?
|
|
bool ShouldLogOut(time_t currTime) const
|
|
{
|
|
return (_logoutTime > 0 && currTime >= _logoutTime + 20);
|
|
}
|
|
|
|
void LogoutPlayer(bool Save);
|
|
void KickPlayer();
|
|
|
|
void QueuePacket(WorldPacket* new_packet);
|
|
bool Update(uint32 diff);
|
|
|
|
/// Handle the authentication waiting queue (to be completed)
|
|
void SendAuthWaitQue(uint32 position);
|
|
|
|
//void SendTestCreatureQueryOpcode( uint32 entry, uint64 guid, uint32 testvalue );
|
|
void SendNameQueryOpcode(Player* p);
|
|
void SendNameQueryOpcodeFromDB(uint64 guid);
|
|
static void SendNameQueryOpcodeFromDBCallBack(QueryResult *result, uint32 accountId);
|
|
|
|
void SendTrainerList( uint64 guid );
|
|
void SendTrainerList( uint64 guid,std::string strTitle );
|
|
void SendListInventory( uint64 guid );
|
|
void SendShowBank( uint64 guid );
|
|
void SendTabardVendorActivate( uint64 guid );
|
|
void SendSpiritResurrect();
|
|
void SendBindPoint(Creature* npc);
|
|
void SendGMTicketGetTicket(uint32 status, char const* text);
|
|
|
|
void SendAttackStop(Unit const* enemy);
|
|
|
|
void SendBattlegGroundList( uint64 guid, uint32 bgTypeId );
|
|
|
|
void SendTradeStatus(uint32 status);
|
|
void SendCancelTrade();
|
|
|
|
void SendStablePet(uint64 guid );
|
|
void SendPetitionQueryOpcode( uint64 petitionguid);
|
|
void SendUpdateTrade();
|
|
|
|
//pet
|
|
void SendPetNameQuery(uint64 guid, uint32 petnumber);
|
|
|
|
//mail
|
|
//used with item_page table
|
|
bool SendItemInfo( uint32 itemid, WorldPacket data );
|
|
static void SendReturnToSender(uint8 messageType, uint32 sender_acc, uint32 sender_guid, uint32 receiver_guid, std::string subject, uint32 itemTextId, MailItemsInfo *mi, uint32 money, uint32 COD, uint16 mailTemplateId = 0);
|
|
static void SendMailTo(Player* receiver, uint8 messageType, uint8 stationery, uint32 sender_guidlow_or_entry, uint32 received_guidlow, std::string subject, uint32 itemTextId, MailItemsInfo* mi, uint32 money, uint32 COD, uint32 checked, uint32 deliver_delay = 0, uint16 mailTemplateId = 0);
|
|
|
|
//auction
|
|
void SendAuctionHello( uint64 guid, Creature * unit );
|
|
void SendAuctionCommandResult( uint32 auctionId, uint32 Action, uint32 ErrorCode, uint32 bidError = 0);
|
|
void SendAuctionBidderNotification( uint32 location, uint32 auctionId, uint64 bidder, uint32 bidSum, uint32 diff, uint32 item_template);
|
|
void SendAuctionOwnerNotification( AuctionEntry * auction );
|
|
bool SendAuctionInfo(WorldPacket & data, AuctionEntry* auction);
|
|
void SendAuctionOutbiddedMail( AuctionEntry * auction, uint32 newPrice );
|
|
void SendAuctionCancelledToBidderMail( AuctionEntry* auction );
|
|
|
|
//Item Enchantment
|
|
void SendEnchantmentLog(uint64 Target, uint64 Caster,uint32 ItemID,uint32 SpellID);
|
|
void SendItemEnchantTimeUpdate(uint64 Playerguid, uint64 Itemguid,uint32 slot,uint32 Duration);
|
|
|
|
//Taxi
|
|
void SendTaxiStatus( uint64 guid );
|
|
void SendTaxiMenu( Creature* unit );
|
|
void SendDoFlight( uint16 MountId, uint32 path, uint32 pathNode = 0 );
|
|
bool SendLearnNewTaxiNode( Creature* unit );
|
|
|
|
// Guild/Arena Team
|
|
void SendGuildCommandResult(uint32 typecmd,std::string str,uint32 cmdresult);
|
|
void SendArenaTeamCommandResult(uint32 unk1, std::string str1, std::string str2, uint32 unk3);
|
|
void BuildArenaTeamEventPacket(WorldPacket *data, uint8 eventid, uint8 str_count, std::string str1, std::string str2, std::string str3);
|
|
void SendNotInArenaTeamPacket(uint8 type);
|
|
void SendPetitionShowList( uint64 guid );
|
|
void SendSaveGuildEmblem( uint32 msg );
|
|
|
|
// Looking For Group
|
|
// TRUE values set by client sending CMSG_LFG_SET_AUTOJOIN and CMSG_LFM_CLEAR_AUTOFILL before player login
|
|
bool LookingForGroup_auto_join;
|
|
bool LookingForGroup_auto_add;
|
|
|
|
void BuildPartyMemberStatsChangedPacket(Player *player, WorldPacket *data);
|
|
|
|
void DoLootRelease( uint64 lguid );
|
|
|
|
// Account mute time
|
|
time_t m_muteTime;
|
|
|
|
// Locales
|
|
LocaleConstant GetSessionDbcLocale() const { return m_sessionDbcLocale; }
|
|
int GetSessionDbLocaleIndex() const { return m_sessionDbLocaleIndex; }
|
|
const char *GetMangosString(int32 entry) const;
|
|
|
|
uint32 GetLatency() const { return m_latency; }
|
|
void SetLatency(uint32 latency) { m_latency = latency; }
|
|
uint32 getDialogStatus(Player *pPlayer, Object* questgiver, uint32 defstatus);
|
|
|
|
public: // opcodes handlers
|
|
|
|
void Handle_NULL(WorldPacket& recvPacket); // not used
|
|
void Handle_EarlyProccess( WorldPacket& recvPacket);// just mark packets processed in WorldSocket::OnRead
|
|
void Handle_ServerSide(WorldPacket& recvPacket); // sever side only, can't be accepted from client
|
|
void Handle_Depricated(WorldPacket& recvPacket); // never used anymore by client
|
|
|
|
void HandleCharEnumOpcode(WorldPacket& recvPacket);
|
|
void HandleCharDeleteOpcode(WorldPacket& recvPacket);
|
|
void HandleCharCreateOpcode(WorldPacket& recvPacket);
|
|
void HandlePlayerLoginOpcode(WorldPacket& recvPacket);
|
|
void HandleCharEnum(QueryResult * result);
|
|
void HandlePlayerLogin(LoginQueryHolder * holder);
|
|
|
|
// played time
|
|
void HandlePlayedTime(WorldPacket& recvPacket);
|
|
|
|
// new
|
|
void HandleMoveUnRootAck(WorldPacket& recvPacket);
|
|
void HandleMoveRootAck(WorldPacket& recvPacket);
|
|
void HandleLookingForGroup(WorldPacket& recvPacket);
|
|
|
|
// new inspect
|
|
void HandleInspectOpcode(WorldPacket& recvPacket);
|
|
|
|
// new party stats
|
|
void HandleInspectHonorStatsOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleMoveWaterWalkAck(WorldPacket& recvPacket);
|
|
void HandleFeatherFallAck(WorldPacket &recv_data);
|
|
|
|
void HandleMoveHoverAck( WorldPacket & recv_data );
|
|
|
|
void HandleMountSpecialAnimOpcode(WorldPacket &recvdata);
|
|
|
|
// character view
|
|
void HandleToggleHelmOpcode(WorldPacket& recv_data);
|
|
void HandleToggleCloakOpcode(WorldPacket& recv_data);
|
|
|
|
// repair
|
|
void HandleRepairItemOpcode(WorldPacket& recvPacket);
|
|
|
|
// Knockback
|
|
void HandleMoveKnockBackAck(WorldPacket& recvPacket);
|
|
|
|
void HandleMoveTeleportAck(WorldPacket& recvPacket);
|
|
void HandleForceSpeedChangeAck( WorldPacket & recv_data );
|
|
|
|
void HandlePingOpcode(WorldPacket& recvPacket);
|
|
void HandleAuthSessionOpcode(WorldPacket& recvPacket);
|
|
void HandleRepopRequestOpcode(WorldPacket& recvPacket);
|
|
void HandleAutostoreLootItemOpcode(WorldPacket& recvPacket);
|
|
void HandleLootMoneyOpcode(WorldPacket& recvPacket);
|
|
void HandleLootOpcode(WorldPacket& recvPacket);
|
|
void HandleLootReleaseOpcode(WorldPacket& recvPacket);
|
|
void HandleLootMasterGiveOpcode(WorldPacket& recvPacket);
|
|
void HandleWhoOpcode(WorldPacket& recvPacket);
|
|
void HandleLogoutRequestOpcode(WorldPacket& recvPacket);
|
|
void HandlePlayerLogoutOpcode(WorldPacket& recvPacket);
|
|
void HandleLogoutCancelOpcode(WorldPacket& recvPacket);
|
|
void HandleGMTicketGetTicketOpcode(WorldPacket& recvPacket);
|
|
void HandleGMTicketCreateOpcode(WorldPacket& recvPacket);
|
|
void HandleGMTicketSystemStatusOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleGMTicketDeleteOpcode(WorldPacket& recvPacket);
|
|
void HandleGMTicketUpdateTextOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleGMSurveySubmit(WorldPacket& recvPacket);
|
|
|
|
void HandleTogglePvP(WorldPacket& recvPacket);
|
|
|
|
void HandleZoneUpdateOpcode(WorldPacket& recvPacket);
|
|
void HandleSetTargetOpcode(WorldPacket& recvPacket);
|
|
void HandleSetSelectionOpcode(WorldPacket& recvPacket);
|
|
void HandleStandStateChangeOpcode(WorldPacket& recvPacket);
|
|
void HandleEmoteOpcode(WorldPacket& recvPacket);
|
|
void HandleFriendListOpcode(WorldPacket& recvPacket);
|
|
void HandleAddFriendOpcode(WorldPacket& recvPacket);
|
|
void HandleDelFriendOpcode(WorldPacket& recvPacket);
|
|
void HandleAddIgnoreOpcode(WorldPacket& recvPacket);
|
|
void HandleDelIgnoreOpcode(WorldPacket& recvPacket);
|
|
void HandleSetFriendNoteOpcode(WorldPacket& recvPacket);
|
|
void HandleBugOpcode(WorldPacket& recvPacket);
|
|
void HandleSetAmmoOpcode(WorldPacket& recvPacket);
|
|
void HandleItemNameQueryOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleAreaTriggerOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleSetFactionAtWar( WorldPacket & recv_data );
|
|
void HandleSetFactionCheat( WorldPacket & recv_data );
|
|
void HandleSetWatchedFactionIndexOpcode(WorldPacket & recv_data);
|
|
void HandleSetWatchedFactionInactiveOpcode(WorldPacket & recv_data);
|
|
|
|
void HandleUpdateAccountData(WorldPacket& recvPacket);
|
|
void HandleRequestAccountData(WorldPacket& recvPacket);
|
|
void HandleSetActionButtonOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleGameObjectUseOpcode(WorldPacket& recPacket);
|
|
void HandleMeetingStoneInfo(WorldPacket& recPacket);
|
|
|
|
void HandleNameQueryOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleQueryTimeOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleCreatureQueryOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleGameObjectQueryOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleMoveWorldportAckOpcode(WorldPacket& recvPacket);
|
|
void HandleMoveWorldportAckOpcode(); // for server-side calls
|
|
|
|
void HandleMovementOpcodes(WorldPacket& recvPacket);
|
|
void HandleSetActiveMoverOpcode(WorldPacket &recv_data);
|
|
void HandleMoveTimeSkippedOpcode(WorldPacket &recv_data);
|
|
|
|
void HandleRequestRaidInfoOpcode( WorldPacket & recv_data );
|
|
|
|
void HandleBattlefieldStatusOpcode(WorldPacket &recv_data);
|
|
void HandleBattleMasterHelloOpcode(WorldPacket &recv_data);
|
|
|
|
void HandleGroupInviteOpcode(WorldPacket& recvPacket);
|
|
//void HandleGroupCancelOpcode(WorldPacket& recvPacket);
|
|
void HandleGroupAcceptOpcode(WorldPacket& recvPacket);
|
|
void HandleGroupDeclineOpcode(WorldPacket& recvPacket);
|
|
void HandleGroupUninviteNameOpcode(WorldPacket& recvPacket);
|
|
void HandleGroupUninviteGuidOpcode(WorldPacket& recvPacket);
|
|
void HandleGroupUninvite(uint64 guid, std::string name);
|
|
void HandleGroupSetLeaderOpcode(WorldPacket& recvPacket);
|
|
void HandleGroupLeaveOpcode(WorldPacket& recvPacket);
|
|
void HandleGroupPassOnLootOpcode( WorldPacket &recv_data );
|
|
void HandleLootMethodOpcode(WorldPacket& recvPacket);
|
|
void HandleLootRoll( WorldPacket &recv_data );
|
|
void HandleRequestPartyMemberStatsOpcode( WorldPacket &recv_data );
|
|
void HandleRaidIconTargetOpcode( WorldPacket & recv_data );
|
|
void HandleRaidReadyCheckOpcode( WorldPacket & recv_data );
|
|
void HandleRaidReadyCheckFinishOpcode( WorldPacket & recv_data );
|
|
void HandleRaidConvertOpcode( WorldPacket & recv_data );
|
|
void HandleGroupChangeSubGroupOpcode( WorldPacket & recv_data );
|
|
void HandleGroupAssistantOpcode( WorldPacket & recv_data );
|
|
void HandleGroupPromoteOpcode( WorldPacket & recv_data );
|
|
|
|
void HandlePetitionBuyOpcode(WorldPacket& recv_data);
|
|
void HandlePetitionShowSignOpcode(WorldPacket& recv_data);
|
|
void HandlePetitionQueryOpcode(WorldPacket& recv_data);
|
|
void HandlePetitionRenameOpcode(WorldPacket& recv_data);
|
|
void HandlePetitionSignOpcode(WorldPacket& recv_data);
|
|
void HandlePetitionDeclineOpcode(WorldPacket& recv_data);
|
|
void HandleOfferPetitionOpcode(WorldPacket& recv_data);
|
|
void HandleTurnInPetitionOpcode(WorldPacket& recv_data);
|
|
|
|
void HandleGuildQueryOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildCreateOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildInviteOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildRemoveOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildAcceptOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildDeclineOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildInfoOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildEventLogOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildRosterOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildPromoteOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildDemoteOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildLeaveOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildDisbandOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildLeaderOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildMOTDOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildSetPublicNoteOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildSetOfficerNoteOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildRankOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildAddRankOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildDelRankOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildChangeInfoOpcode(WorldPacket& recvPacket);
|
|
void HandleGuildSaveEmblemOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleTaxiNodeStatusQueryOpcode(WorldPacket& recvPacket);
|
|
void HandleTaxiQueryAvailableNodesOpcode(WorldPacket& recvPacket);
|
|
void HandleActivateTaxiOpcode(WorldPacket& recvPacket);
|
|
void HandleActivateTaxiFarOpcode(WorldPacket& recvPacket);
|
|
void HandleTaxiNextDestinationOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleTabardVendorActivateOpcode(WorldPacket& recvPacket);
|
|
void HandleBankerActivateOpcode(WorldPacket& recvPacket);
|
|
void HandleBuyBankSlotOpcode(WorldPacket& recvPacket);
|
|
void HandleTrainerListOpcode(WorldPacket& recvPacket);
|
|
void HandleTrainerBuySpellOpcode(WorldPacket& recvPacket);
|
|
void HandlePetitionShowListOpcode(WorldPacket& recvPacket);
|
|
void HandleGossipHelloOpcode(WorldPacket& recvPacket);
|
|
void HandleGossipSelectOptionOpcode(WorldPacket& recvPacket);
|
|
void HandleSpiritHealerActivateOpcode(WorldPacket& recvPacket);
|
|
void HandleNpcTextQueryOpcode(WorldPacket& recvPacket);
|
|
void HandleBinderActivateOpcode(WorldPacket& recvPacket);
|
|
void HandleListStabledPetsOpcode(WorldPacket& recvPacket);
|
|
void HandleStablePet(WorldPacket& recvPacket);
|
|
void HandleUnstablePet(WorldPacket& recvPacket);
|
|
void HandleBuyStableSlot(WorldPacket& recvPacket);
|
|
void HandleStableRevivePet(WorldPacket& recvPacket);
|
|
void HandleStableSwapPet(WorldPacket& recvPacket);
|
|
|
|
void HandleDuelAcceptedOpcode(WorldPacket& recvPacket);
|
|
void HandleDuelCancelledOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleAcceptTradeOpcode(WorldPacket& recvPacket);
|
|
void HandleBeginTradeOpcode(WorldPacket& recvPacket);
|
|
void HandleBusyTradeOpcode(WorldPacket& recvPacket);
|
|
void HandleCancelTradeOpcode(WorldPacket& recvPacket);
|
|
void HandleClearTradeItemOpcode(WorldPacket& recvPacket);
|
|
void HandleIgnoreTradeOpcode(WorldPacket& recvPacket);
|
|
void HandleInitiateTradeOpcode(WorldPacket& recvPacket);
|
|
void HandleSetTradeGoldOpcode(WorldPacket& recvPacket);
|
|
void HandleSetTradeItemOpcode(WorldPacket& recvPacket);
|
|
void HandleUnacceptTradeOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleAuctionHelloOpcode(WorldPacket& recvPacket);
|
|
void HandleAuctionListItems( WorldPacket & recv_data );
|
|
void HandleAuctionListBidderItems( WorldPacket & recv_data );
|
|
void HandleAuctionSellItem( WorldPacket & recv_data );
|
|
void HandleAuctionRemoveItem( WorldPacket & recv_data );
|
|
void HandleAuctionListOwnerItems( WorldPacket & recv_data );
|
|
void HandleAuctionPlaceBid( WorldPacket & recv_data );
|
|
|
|
void HandleGetMail( WorldPacket & recv_data );
|
|
void HandleSendMail( WorldPacket & recv_data );
|
|
void HandleTakeMoney( WorldPacket & recv_data );
|
|
void HandleTakeItem( WorldPacket & recv_data );
|
|
void HandleMarkAsRead( WorldPacket & recv_data );
|
|
void HandleReturnToSender( WorldPacket & recv_data );
|
|
void HandleMailDelete( WorldPacket & recv_data );
|
|
void HandleItemTextQuery( WorldPacket & recv_data);
|
|
void HandleMailCreateTextItem(WorldPacket & recv_data );
|
|
void HandleMsgQueryNextMailtime(WorldPacket & recv_data );
|
|
void HandleCancelChanneling(WorldPacket & recv_data );
|
|
|
|
void SendItemPageInfo( ItemPrototype *itemProto );
|
|
void HandleSplitItemOpcode(WorldPacket& recvPacket);
|
|
void HandleSwapInvItemOpcode(WorldPacket& recvPacket);
|
|
void HandleDestroyItemOpcode(WorldPacket& recvPacket);
|
|
void HandleAutoEquipItemOpcode(WorldPacket& recvPacket);
|
|
void HandleItemQuerySingleOpcode(WorldPacket& recvPacket);
|
|
void HandleSellItemOpcode(WorldPacket& recvPacket);
|
|
void HandleBuyItemInSlotOpcode(WorldPacket& recvPacket);
|
|
void HandleBuyItemOpcode(WorldPacket& recvPacket);
|
|
void HandleListInventoryOpcode(WorldPacket& recvPacket);
|
|
void HandleAutoStoreBagItemOpcode(WorldPacket& recvPacket);
|
|
void HandleReadItem(WorldPacket& recvPacket);
|
|
void HandleAutoEquipItemSlotOpcode(WorldPacket & recvPacket);
|
|
void HandleSwapItem( WorldPacket & recvPacket);
|
|
void HandleBuybackItem(WorldPacket & recvPacket);
|
|
void HandleAutoBankItemOpcode(WorldPacket& recvPacket);
|
|
void HandleAutoStoreBankItemOpcode(WorldPacket& recvPacket);
|
|
void HandleWrapItemOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleAttackSwingOpcode(WorldPacket& recvPacket);
|
|
void HandleAttackStopOpcode(WorldPacket& recvPacket);
|
|
void HandleSetSheathedOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleUseItemOpcode(WorldPacket& recvPacket);
|
|
void HandleOpenItemOpcode(WorldPacket& recvPacket);
|
|
void HandleCastSpellOpcode(WorldPacket& recvPacket);
|
|
void HandleCancelCastOpcode(WorldPacket& recvPacket);
|
|
void HandleCancelAuraOpcode(WorldPacket& recvPacket);
|
|
void HandleCancelGrowthAuraOpcode(WorldPacket& recvPacket);
|
|
void HandleCancelAutoRepeatSpellOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleLearnTalentOpcode(WorldPacket& recvPacket);
|
|
void HandleTalentWipeOpcode(WorldPacket& recvPacket);
|
|
void HandleUnlearnSkillOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleQuestgiverStatusQueryOpcode(WorldPacket& recvPacket);
|
|
void HandleQuestgiverStatusQueryMultipleOpcode(WorldPacket& recvPacket);
|
|
void HandleQuestgiverHelloOpcode(WorldPacket& recvPacket);
|
|
void HandleQuestgiverAcceptQuestOpcode(WorldPacket& recvPacket);
|
|
void HandleQuestgiverQuestQueryOpcode(WorldPacket& recvPacket);
|
|
void HandleQuestgiverChooseRewardOpcode(WorldPacket& recvPacket);
|
|
void HandleQuestgiverRequestRewardOpcode(WorldPacket& recvPacket);
|
|
void HandleQuestQueryOpcode(WorldPacket& recvPacket);
|
|
void HandleQuestgiverCancel(WorldPacket& recv_data );
|
|
void HandleQuestLogSwapQuest(WorldPacket& recv_data );
|
|
void HandleQuestLogRemoveQuest(WorldPacket& recv_data);
|
|
void HandleQuestConfirmAccept(WorldPacket& recv_data);
|
|
void HandleQuestComplete(WorldPacket& recv_data);
|
|
void HandleQuestAutoLaunch(WorldPacket& recvPacket);
|
|
void HandleQuestPushToParty(WorldPacket& recvPacket);
|
|
void HandleQuestPushResult(WorldPacket& recvPacket);
|
|
|
|
void HandleMessagechatOpcode(WorldPacket& recvPacket);
|
|
void HandleTextEmoteOpcode(WorldPacket& recvPacket);
|
|
void HandleChatIgnoredOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleCorpseReclaimOpcode( WorldPacket& recvPacket );
|
|
void HandleCorpseQueryOpcode( WorldPacket& recvPacket );
|
|
void HandleResurrectResponseOpcode(WorldPacket& recvPacket);
|
|
void HandleSummonResponseOpcode(WorldPacket& recv_data);
|
|
|
|
void HandleChannelJoin(WorldPacket& recvPacket);
|
|
void HandleChannelLeave(WorldPacket& recvPacket);
|
|
void HandleChannelList(WorldPacket& recvPacket);
|
|
void HandleChannelPassword(WorldPacket& recvPacket);
|
|
void HandleChannelSetOwner(WorldPacket& recvPacket);
|
|
void HandleChannelOwner(WorldPacket& recvPacket);
|
|
void HandleChannelModerator(WorldPacket& recvPacket);
|
|
void HandleChannelUnmoderator(WorldPacket& recvPacket);
|
|
void HandleChannelMute(WorldPacket& recvPacket);
|
|
void HandleChannelUnmute(WorldPacket& recvPacket);
|
|
void HandleChannelInvite(WorldPacket& recvPacket);
|
|
void HandleChannelKick(WorldPacket& recvPacket);
|
|
void HandleChannelBan(WorldPacket& recvPacket);
|
|
void HandleChannelUnban(WorldPacket& recvPacket);
|
|
void HandleChannelAnnounce(WorldPacket& recvPacket);
|
|
void HandleChannelModerate(WorldPacket& recvPacket);
|
|
void HandleChannelRosterQuery(WorldPacket& recvPacket);
|
|
void HandleChannelInfoQuery(WorldPacket& recvPacket);
|
|
void HandleChannelJoinNotify(WorldPacket& recvPacket);
|
|
|
|
void HandleCompleteCinema(WorldPacket& recvPacket);
|
|
void HandleNextCinematicCamera(WorldPacket& recvPacket);
|
|
|
|
void HandlePageQuerySkippedOpcode(WorldPacket& recvPacket);
|
|
void HandlePageQueryOpcode(WorldPacket& recvPacket);
|
|
|
|
void HandleTutorialFlag ( WorldPacket & recv_data );
|
|
void HandleTutorialClear( WorldPacket & recv_data );
|
|
void HandleTutorialReset( WorldPacket & recv_data );
|
|
|
|
//Pet
|
|
void HandlePetAction( WorldPacket & recv_data );
|
|
void HandlePetNameQuery( WorldPacket & recv_data );
|
|
void HandlePetSetAction( WorldPacket & recv_data );
|
|
void HandlePetAbandon( WorldPacket & recv_data );
|
|
void HandlePetRename( WorldPacket & recv_data );
|
|
void HandlePetCancelAuraOpcode( WorldPacket& recvPacket );
|
|
void HandlePetUnlearnOpcode( WorldPacket& recvPacket );
|
|
void HandlePetSpellAutocastOpcode( WorldPacket& recvPacket );
|
|
void HandlePetCastSpellOpcode( WorldPacket& recvPacket );
|
|
|
|
void HandleSetActionBar(WorldPacket& recv_data);
|
|
|
|
void HandleChangePlayerNameOpcode(WorldPacket& recv_data);
|
|
void HandleDeclinedPlayerNameOpcode(WorldPacket& recv_data);
|
|
|
|
void HandleTotemDestroy(WorldPacket& recv_data);
|
|
|
|
//BattleGround
|
|
void HandleBattleGroundHelloOpcode(WorldPacket &recv_data);
|
|
void HandleBattleGroundJoinOpcode(WorldPacket &recv_data);
|
|
void HandleBattleGroundPlayerPositionsOpcode(WorldPacket& recv_data);
|
|
void HandleBattleGroundPVPlogdataOpcode( WorldPacket &recv_data );
|
|
void HandleBattleGroundPlayerPortOpcode( WorldPacket &recv_data );
|
|
void HandleBattleGroundListOpcode( WorldPacket &recv_data );
|
|
void HandleBattleGroundLeaveOpcode( WorldPacket &recv_data );
|
|
void HandleBattleGroundArenaJoin( WorldPacket &recv_data );
|
|
void HandleBattleGroundReportAFK( WorldPacket &recv_data );
|
|
|
|
void HandleWardenDataOpcode(WorldPacket& recv_data);
|
|
void HandleWorldTeleportOpcode(WorldPacket& recv_data);
|
|
void HandleMinimapPingOpcode(WorldPacket& recv_data);
|
|
void HandleRandomRollOpcode(WorldPacket& recv_data);
|
|
void HandleFarSightOpcode(WorldPacket& recv_data);
|
|
void HandleSetLfgOpcode(WorldPacket& recv_data);
|
|
void HandleDungeonDifficultyOpcode(WorldPacket& recv_data);
|
|
void HandleMoveFlyModeChangeAckOpcode(WorldPacket& recv_data);
|
|
void HandleLfgAutoJoinOpcode(WorldPacket& recv_data);
|
|
void HandleLfgCancelAutoJoinOpcode(WorldPacket& recv_data);
|
|
void HandleLfmAutoAddMembersOpcode(WorldPacket& recv_data);
|
|
void HandleLfmCancelAutoAddmembersOpcode(WorldPacket& recv_data);
|
|
void HandleLfgClearOpcode(WorldPacket& recv_data);
|
|
void HandleLfmSetNoneOpcode(WorldPacket& recv_data);
|
|
void HandleLfmSetOpcode(WorldPacket& recv_data);
|
|
void HandleLfgSetCommentOpcode(WorldPacket& recv_data);
|
|
void HandleNewUnknownOpcode(WorldPacket& recv_data);
|
|
void HandleChooseTitleOpcode(WorldPacket& recv_data);
|
|
void HandleRealmStateRequestOpcode(WorldPacket& recv_data);
|
|
void HandleAllowMoveAckOpcode(WorldPacket& recv_data);
|
|
void HandleWhoisOpcode(WorldPacket& recv_data);
|
|
void HandleResetInstancesOpcode(WorldPacket& recv_data);
|
|
|
|
// Arena Team
|
|
void HandleInspectArenaStatsOpcode(WorldPacket& recv_data);
|
|
void HandleArenaTeamQueryOpcode(WorldPacket& recv_data);
|
|
void HandleArenaTeamRosterOpcode(WorldPacket& recv_data);
|
|
void HandleArenaTeamAddMemberOpcode(WorldPacket& recv_data);
|
|
void HandleArenaTeamInviteAcceptOpcode(WorldPacket& recv_data);
|
|
void HandleArenaTeamInviteDeclineOpcode(WorldPacket& recv_data);
|
|
void HandleArenaTeamLeaveOpcode(WorldPacket& recv_data);
|
|
void HandleArenaTeamRemoveFromTeamOpcode(WorldPacket& recv_data);
|
|
void HandleArenaTeamDisbandOpcode(WorldPacket& recv_data);
|
|
void HandleArenaTeamPromoteToCaptainOpcode(WorldPacket& recv_data);
|
|
|
|
void HandleAreaSpiritHealerQueryOpcode(WorldPacket& recv_data);
|
|
void HandleAreaSpiritHealerQueueOpcode(WorldPacket& recv_data);
|
|
void HandleDismountOpcode(WorldPacket& recv_data);
|
|
void HandleSelfResOpcode(WorldPacket& recv_data);
|
|
void HandleReportSpamOpcode(WorldPacket& recv_data);
|
|
void HandleRequestPetInfoOpcode(WorldPacket& recv_data);
|
|
|
|
// Socket gem
|
|
void HandleSocketOpcode(WorldPacket& recv_data);
|
|
|
|
void HandleCancelTempItemEnchantmentOpcode(WorldPacket& recv_data);
|
|
|
|
void HandleChannelEnableVoiceOpcode(WorldPacket & recv_data);
|
|
void HandleVoiceSettingsOpcode(WorldPacket& recv_data);
|
|
void HandleChannelVoiceChatQuery(WorldPacket& recv_data);
|
|
void HandleSetTaxiBenchmarkOpcode(WorldPacket& recv_data);
|
|
|
|
// Guild Bank
|
|
void HandleGuildBankGetRights(WorldPacket& recv_data);
|
|
void HandleGuildBankGetMoneyAmount(WorldPacket& recv_data);
|
|
void HandleGuildBankQuery(WorldPacket& recv_data);
|
|
void HandleGuildBankTabColon(WorldPacket& recv_data);
|
|
void HandleGuildBankLog(WorldPacket& recv_data);
|
|
void HandleGuildBankDeposit(WorldPacket& recv_data);
|
|
void HandleGuildBankWithdraw(WorldPacket& recv_data);
|
|
void HandleGuildBankDepositItem(WorldPacket& recv_data);
|
|
void HandleGuildBankModifyTab(WorldPacket& recv_data);
|
|
void HandleGuildBankBuyTab(WorldPacket& recv_data);
|
|
void HandleGuildBankTabText(WorldPacket& recv_data);
|
|
void HandleGuildBankSetTabText(WorldPacket& recv_data);
|
|
private:
|
|
// private trade methods
|
|
void moveItems(Item* myItems[], Item* hisItems[]);
|
|
|
|
// logging helper
|
|
void logUnexpectedOpcode(WorldPacket *packet, const char * reason);
|
|
|
|
Player *_player;
|
|
WorldSocket *m_Socket;
|
|
std::string m_Address;
|
|
|
|
uint32 _security;
|
|
uint32 _accountId;
|
|
uint8 m_expansion;
|
|
|
|
time_t _logoutTime;
|
|
bool m_playerLoading; // code processed in LoginPlayer
|
|
bool m_playerLogout; // code processed in LogoutPlayer
|
|
bool m_playerRecentlyLogout;
|
|
LocaleConstant m_sessionDbcLocale;
|
|
int m_sessionDbLocaleIndex;
|
|
uint32 m_latency;
|
|
|
|
ZThread::LockedQueue<WorldPacket*,ZThread::FastMutex> _recvQueue;
|
|
};
|
|
#endif
|
|
/// @}
|