56 TC_LOG_ERROR(
"network",
"WorldSession::HandleUseItemOpcode: attempted to cast a non-existing spell (Id: {})", packet.
Cast.
SpellID);
100 TC_LOG_ERROR(
"entities.player.cheat",
"Possible hacking attempt: Player {} {} tried to open item [{}, entry: {}] which is not openable!",
133 HandleOpenWrappedItemCallback(pos, itemGuid, std::move(result));
174 TC_LOG_ERROR(
"network",
"Wrapped item {} does't have record in character_gifts table and will deleted", item->
GetGUID().
ToString());
181 Field* fields = result->Fetch();
221 if (go->AI()->OnReportUse(
_player))
234 TC_LOG_ERROR(
"network",
"WorldSession::HandleCastSpellOpcode: attempted to cast a non-existing spell (Id: {})", cast.
Cast.
SpellID);
243 Unit* castingUnit = mover;
286 if (curSpell->GetSpellInfo()->Id ==
uint32(cancelAura.
SpellID))
467 mirrorImageComponentedData.
UnitGUID = guid;
474 mirrorImageComponentedData.
Customizations.push_back(customization);
476 Guild* guild = player->GetGuild();
501 itemDisplayId = item->GetDisplayId(player);
505 mirrorImageComponentedData.
ItemDisplayID.push_back(itemDisplayId);
512 mirrorImageCreatureData.
UnitGUID = guid;
565 if (!spellKeyboundOverride)
@ CHAR_SEL_CHARACTER_GIFT_BY_ITEM
DB2Storage< LockEntry > sLockStore("Lock.db2", &LockLoadInfo::Instance)
DB2Storage< SpellKeyboundOverrideEntry > sSpellKeyboundOverrideStore("SpellKeyboundOverride.db2", &SpellKeyboundOverrideLoadInfo::Instance)
SQLTransaction< CharacterDatabaseConnection > CharacterDatabaseTransaction
std::shared_ptr< PreparedResultSet > PreparedQueryResult
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
@ EQUIP_ERR_CLIENT_LOCKED_OUT
@ EQUIP_ERR_ITEM_NOT_FOUND
#define TC_LOG_ERROR(filterType__,...)
#define TC_LOG_INFO(filterType__,...)
LootStore LootTemplates_Item("item_loot_template", "item entry", true)
@ EQUIPMENT_SLOT_SHOULDERS
#define INVENTORY_SLOT_BAG_0
@ SPELL_ATTR7_BYPASS_NO_RESURRECT_AURA
@ SPELL_ATTR0_NO_AURA_CANCEL
@ SPELL_FAILED_SPELL_IN_PROGRESS
@ SPELL_AURA_PREVENT_RESURRECTION
@ SPELL_AURA_CLONE_CASTER
@ SPELL_AURA_KEYBOUND_OVERRIDE
@ SPELL_AURA_MOD_SPEED_NO_CONTROL
@ CURRENT_CHANNELED_SPELL
@ CURRENT_AUTOREPEAT_SPELL
T & AddCallback(T &&query)
bool HasSpell(uint32 spellID) const override
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
Class used to access individual fields of database query result.
ObjectGuid GetGUID() const
void SetState(ItemUpdateState state, Player *forplayer=nullptr)
void ReplaceAllItemFlags(ItemFieldFlags flags)
ItemTemplate const * GetTemplate() const
void SetMaxDurability(uint32 maxDurability)
std::unique_ptr< Loot > m_loot
void SetGiftCreator(ObjectGuid guid)
Difficulty GetDifficultyID() const
LowType GetCounter() const
static ObjectGuid const Empty
std::string ToString() const
static Creature * ToCreature(Object *o)
static ObjectGuid GetGUID(Object const *o)
void SetEntry(uint32 entry)
static Player * ToPlayer(Object *o)
void SendLootError(ObjectGuid const &lootObj, ObjectGuid const &owner, LootError error) const
void SendEquipError(InventoryResult msg, Item const *item1=nullptr, Item const *item2=nullptr, uint32 itemId=0) const
void SaveInventoryAndGoldToDB(CharacterDatabaseTransaction trans)
Item * GetItemByPos(uint16 pos) const
void DestroyItem(uint8 bag, uint8 slot, bool update)
void SendLoot(Loot &loot, bool aeLooting=false)
void UpdateCriteria(CriteriaType type, uint64 miscValue1=0, uint64 miscValue2=0, uint64 miscValue3=0, WorldObject *ref=nullptr)
bool CanRequestSpellCast(SpellInfo const *spell, Unit const *castingUnit) const
void RequestSpellCast(std::unique_ptr< SpellCastRequest > castRequest)
UF::UpdateField< UF::ActivePlayerData, 0, TYPEID_ACTIVE_PLAYER > m_activePlayerData
void CancelPendingCastRequest()
void RemoveSelfResSpell(int32 spellId)
void setUInt64(const uint8 index, const uint64 value)
void SetPitch(float pitch)
void ModDst(Position const &pos)
void SetSpeed(float speed)
void ModSrc(Position const &pos)
WorldLocation const * GetDstPos() const
bool HasAttribute(SpellAttr0 attribute) const
SpellCastResult CheckVehicle(Unit const *caster) const
SpellInfo const * GetSpellInfo() const
SpellCastTargets m_targets
static void SendCastResult(Player *caster, SpellInfo const *spellInfo, SpellCastVisual spellVisual, ObjectGuid cast_count, SpellCastResult result, SpellCustomErrors customError=SPELL_CUSTOM_ERROR_NONE, int32 *param1=nullptr, int32 *param2=nullptr)
void RecalculateDelayMomentForDst()
SpellInfo const *const m_spellInfo
void RemoveOwnedAura(AuraMap::iterator &i, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void RemoveAurasByType(AuraType auraType, std::function< bool(AuraApplication const *)> const &check, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
AuraEffectList const & GetAuraEffectsByType(AuraType type) const
bool HasAuraTypeWithMiscvalue(AuraType auraType, int32 miscValue) const
std::array< ObjectGuid, MAX_SUMMON_SLOT > m_SummonSlot
void HandleSpellClick(Unit *clicker, int8 seatId=-1)
Spell * FindCurrentSpellBySpellId(uint32 spell_id) const
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
bool IsNonMeleeSpellCast(bool withDelayed, bool skipChanneled=false, bool skipAutorepeat=false, bool isAutoshoot=false, bool skipInstant=true) const
bool IsOnVehicle(Unit const *vehicle) const
uint32 GetDisplayId() const
Unit * GetUnitBeingMoved() const
bool HasAuraType(AuraType auraType) const
void SendPetActionFeedback(PetActionFeedback msg, uint32 spellId)
-------—Pet responses methods--------------—
void InterruptSpell(CurrentSpellTypes spellType, bool withDelayed=true, bool withInstant=true)
Spell * GetCurrentSpell(CurrentSpellTypes spellType) const
virtual void SendMessageToSet(WorldPacket const *data, bool self) const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
std::string const & GetName() const
std::vector< int32 > ItemDisplayID
WorldPacket const * Write() override
std::vector< UF::ChrCustomizationChoice > Customizations
WorldPacket const * Write() override
TaggedPosition< Position::XYZ > CollisionPos
WorldPacket const * Write() override
TaggedPosition< Position::XYZ > CollisionPos
ObjectGuid SpellClickUnitGuid
Optional< MovementInfo > Status
TaggedPosition< Position::XYZ > ImpactPos
TaggedPosition< Position::XYZ > FirePos
void HandleMovementOpcode(OpcodeClient opcode, MovementInfo &movementInfo)
void HandleUpdateMissileTrajectory(WorldPackets::Spells::UpdateMissileTrajectory &packet)
void HandleKeyboundOverride(WorldPackets::Spells::KeyboundOverride &keyboundOverride)
void HandleCancelChanneling(WorldPackets::Spells::CancelChannelling &cancelChanneling)
QueryCallbackProcessor _queryProcessor
void HandleGameObjectUseOpcode(WorldPackets::GameObject::GameObjUse &packet)
void HandleCancelModSpeedNoControlAuras(WorldPackets::Spells::CancelModSpeedNoControlAuras &cancelModSpeedNoControlAuras)
void HandleUseItemOpcode(WorldPackets::Spells::UseItem &packet)
void HandleMissileTrajectoryCollision(WorldPackets::Spells::MissileTrajectoryCollision &packet)
Player * GetPlayer() const
void HandleOpenItemOpcode(WorldPackets::Spells::OpenItem &packet)
void SendPacket(WorldPacket const *packet, bool forced=false)
Send a packet to the client.
void HandleCastSpellOpcode(WorldPackets::Spells::CastSpell &castRequest)
void HandleSelfResOpcode(WorldPackets::Spells::SelfRes &selfRes)
void HandleSpellClick(WorldPackets::Spells::SpellClick &spellClick)
void HandleCancelAutoRepeatSpellOpcode(WorldPackets::Spells::CancelAutoRepeatSpell &cancelAutoRepeatSpell)
void HandleCancelQueuedSpellOpcode(WorldPackets::Spells::CancelQueuedSpell &cancelQueuedSpell)
void HandleCancelAuraOpcode(WorldPackets::Spells::CancelAura &cancelAura)
void HandleGameobjectReportUse(WorldPackets::GameObject::GameObjReportUse &packet)
void HandleMirrorImageDataRequest(WorldPackets::Spells::GetMirrorImageData &getMirrorImageData)
void HandleOpenWrappedItemCallback(uint16 pos, ObjectGuid itemGuid, PreparedQueryResult result)
void HandleCancelMountAuraOpcode(WorldPackets::Spells::CancelMountAura &cancelMountAura)
void HandleTotemDestroyed(WorldPackets::Totem::TotemDestroyed &totemDestroyed)
void HandleCancelGrowthAuraOpcode(WorldPackets::Spells::CancelGrowthAura &cancelGrowthAura)
void HandleCancelCastOpcode(WorldPackets::Spells::CancelCast &packet)
void HandlePetCancelAuraOpcode(WorldPackets::Spells::PetCancelAura &packet)
TC_GAME_API bool GetName(uint32 accountId, std::string &name)
TC_GAME_API Unit * GetUnit(WorldObject const &, ObjectGuid const &guid)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
TC_GAME_API Creature * GetCreatureOrPetOrVehicle(WorldObject const &, ObjectGuid const &)
bool HasFlag(ItemFlags flag) const
void generateMoneyLoot(uint32 minAmount, uint32 maxAmount)
bool FillLoot(uint32 lootId, LootStore const &store, Player *lootOwner, bool personal, bool noEmptyError=false, uint16 lootMode=LOOT_MODE_DEFAULT, ItemContext context=ItemContext::NONE)
constexpr void Relocate(float x, float y)
Optional< MovementInfo > MoveUpdate