58#if TRINITY_COMPILER == TRINITY_COMPILER_GNU
59#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
137 Field* fields = result->Fetch();
140 if (!(result->NextRow()))
143 fields = result->Fetch();
241 Cell cell(cellCoord);
244 object->GetZoneAndAreaId(zoneId, areaId);
245 uint32 mapId =
object->GetMapId();
251 float zoneX =
object->GetPositionX();
252 float zoneY =
object->GetPositionY();
254 sDB2Manager.Map2ZoneCoordinates(zoneId, zoneX, zoneY);
256 Map* map =
object->GetMap();
285 object->
GetPositionX(),
object->GetPositionY(),
object->GetPositionZ(),
object->GetOrientation());
288 transport->GetGOInfo()->moTransport.SpawnMap,
object->GetTransOffsetX(),
object->GetTransOffsetY(),
object->GetTransOffsetZ(),
object->GetTransOffsetO(),
289 transport->GetEntry(), transport->GetName().c_str());
292 zoneX, zoneY, groundZ, floorZ, map->
GetMinHeight(object->
GetPhaseShift(),
object->GetPositionX(),
object->GetPositionY()), haveMap, haveVMap, haveMMap);
356 std::string targetName;
361 if (target == _player || targetGuid == _player->
GetGUID())
374 std::string chrNameLink = handler->
playerLink(targetName);
454 std::string nameLink = handler->
playerLink(targetName);
482 std::string targetName;
487 if (target == _player || targetGuid == _player->
GetGUID())
496 std::string nameLink = handler->
playerLink(targetName);
533 Player* targetGroupLeader =
nullptr;
578 std::string nameLink = handler->
playerLink(targetName);
589 targetGuid,
nullptr);
699 if (srcSlot == dstSlot)
733 std::string nameLink = handler->
GetNameLink(owner);
878 std::string playerName;
896 char const* kickReason = strtok(
nullptr,
"\r");
897 if (kickReason !=
nullptr)
898 kickReasonStr = kickReason;
913#define SPELL_UNSTUCK_ID 7355
914#define SPELL_UNSTUCK_VISUAL 2683
928 char* player_str = strtok((
char*)args,
" ");
932 std::string location_str =
"inn";
933 if (
char const* loc = strtok(
nullptr,
" "))
948 Field* fields = result->Fetch();
973 if (location_str ==
"inn")
979 if (location_str ==
"graveyard")
1024 if (
sObjectMgr->AddGraveyardLink(graveyardId, zoneId, team,
true))
1051 uint32 graveyardId = graveyard->
ID;
1065 else if (team ==
HORDE)
1074 std::string team_name;
1165 char const* itemNameStr = strtok((
char*)args,
"]");
1167 if (itemNameStr && itemNameStr[0])
1169 std::string itemName = itemNameStr+1;
1172 for (LocaleConstant i = LOCALE_enUS; i < TOTAL_LOCALES; i = LocaleConstant(i + 1))
1173 if (itemName == sparse->Display[i])
1196 itemId = Trinity::StringTo<uint32>(
id).value_or(0);
1199 char const* ccount = strtok(
nullptr,
" ");
1204 count = strtol(ccount,
nullptr, 10);
1209 std::vector<int32> bonusListIDs;
1210 char const* bonuses = strtok(
nullptr,
" ");
1212 char const* context = strtok(
nullptr,
" ");
1217 if (
Optional<int32> bonusListId = Trinity::StringTo<int32>(token); bonusListId && *bonusListId)
1218 bonusListIDs.push_back(*bonusListId);
1223 itemContext =
ItemContext(Trinity::StringTo<uint8>(context).value_or(0));
1227 bonusListIDs.insert(bonusListIDs.begin(), contextBonuses.begin(), contextBonuses.end());
1234 playerTarget = player;
1249 if (destroyedItemCount > 0)
1255 uint32 unableToDestroyItemCount = -count - destroyedItemCount;
1256 if (unableToDestroyItemCount > 0)
1272 uint32 noSpaceForCount = 0;
1278 count -= noSpaceForCount;
1280 if (count == 0 || dest.empty())
1288 bonusListIDs.empty() ?
nullptr : &bonusListIDs);
1291 if (player == playerTarget)
1292 for (ItemPosCountVec::const_iterator itr = dest.begin(); itr != dest.end(); ++itr)
1296 if (count > 0 && item)
1300 if (player != playerTarget)
1301 playerTarget->
SendNewItem(item, count,
true,
false);
1304 if (noSpaceForCount > 0)
1316 Player* playerTarget =
nullptr;
1323 char* tailArgs = strtok(
nullptr,
"");
1329 if (tailArgs[0] ==
'[')
1331 char const* itemNameStr = strtok(tailArgs,
"]");
1333 if (itemNameStr && itemNameStr[0])
1335 std::string itemName = itemNameStr+1;
1338 for (LocaleConstant i = LOCALE_enUS; i < TOTAL_LOCALES; i = LocaleConstant(i + 1))
1339 if (itemName == sparse->Display[i])
1362 itemId = Trinity::StringTo<uint32>(
id).value_or(0);
1365 char const* ccount = strtok(
nullptr,
" ");
1370 count = strtol(ccount,
nullptr, 10);
1375 std::vector<int32> bonusListIDs;
1376 char const* bonuses = strtok(
nullptr,
" ");
1378 char const* context = strtok(
nullptr,
" ");
1383 if (
Optional<int32> bonusListId = Trinity::StringTo<int32>(token); bonusListId && *bonusListId)
1384 bonusListIDs.push_back(*bonusListId);
1389 itemContext =
ItemContext(Trinity::StringTo<uint8>(context).value_or(0));
1393 bonusListIDs.insert(bonusListIDs.begin(), contextBonuses.begin(), contextBonuses.end());
1410 if (destroyedItemCount > 0)
1416 uint32 unableToDestroyItemCount = -count - destroyedItemCount;
1417 if (unableToDestroyItemCount > 0)
1433 uint32 noSpaceForCount = 0;
1439 count -= noSpaceForCount;
1441 if (count == 0 || dest.empty())
1449 bonusListIDs.empty() ?
nullptr : &bonusListIDs);
1452 if (player == playerTarget)
1453 for (ItemPosCountVec::const_iterator itr = dest.begin(); itr != dest.end(); ++itr)
1457 if (count > 0 && item)
1460 if (player != playerTarget)
1461 playerTarget->
SendNewItem(item, count,
true,
false);
1464 if (noSpaceForCount > 0)
1473 if (*itemSetId == 0)
1480 std::vector<int32> bonusListIDs;
1485 if (
Optional<int32> bonusListId = Trinity::StringTo<int32>(token); bonusListId && *bonusListId)
1486 bonusListIDs.push_back(*bonusListId);
1495 playerTarget = player;
1499 for (
auto const& itemTemplatePair : its)
1501 if (itemTemplatePair.second.GetItemSet() != *itemSetId)
1509 std::vector<int32> bonusListIDsForItem = bonusListIDs;
1513 bonusListIDsForItem.insert(bonusListIDsForItem.begin(), contextBonuses.begin(), contextBonuses.end());
1517 bonusListIDsForItem.empty() ?
nullptr : &bonusListIDsForItem);
1522 if (player == playerTarget)
1526 if (player != playerTarget)
1531 player->
SendEquipError(msg,
nullptr,
nullptr, itemTemplatePair.first);
1602 if (level == 0 || level > max)
1633 arg = PlayerIdentifier::FromTargetOrSelf(handler);
1639 Player* target = arg->GetConnectedPlayer();
1641 std::string targetName = arg->GetName();
1691 int64 muteTime = -1;
1702 uint8 raceid, classid = 0;
1706 uint32 totalPlayerTime = 0;
1716 char const* areaName =
nullptr;
1717 char const* zoneName =
nullptr;
1721 uint8 guildRankId = 0;
1722 std::string guildName;
1723 std::string guildRank;
1725 std::string officeNote;
1763 Field* fields = result->Fetch();
1764 totalPlayerTime = fields[0].
GetUInt32();
1790 Field* fields = result->Fetch();
1805 lastIp.append(
" (");
1806 lastIp.append(location->CountryName);
1826 std::string nameLink = handler->
playerLink(targetName);
1844 Field* fields = result2->Fetch();
1845 bool permanent = fields[1].
GetUInt64() != 0;
1846 banTime = !permanent ?
int64(fields[0].GetUInt32()) : 0;
1858 Field* fields = result4->Fetch();
1871 Field* fields5 = result5->Fetch();
1875 guildRankId = fields5[3].
GetUInt8();
1949 areaName = zoneName;
1964 if (!guildName.empty())
1970 if (!officeNote.empty())
1984 Field* fields = result6->Fetch();
2004 if (target->
IsPet())
2022 std::vector<RespawnInfo const*> data;
2028 if (info->gridId == gridId)
2038 std::string muteReasonStr{ muteReason };
2039 if (muteReason.empty())
2043 player = PlayerIdentifier::FromTarget(handler);
2051 Player* target = player->GetConnectedPlayer();
2057 target = session->GetPlayer();
2064 std::string muteBy =
"";
2066 muteBy = gmPlayer->GetName();
2094 std::string nameLink = handler->
playerLink(*player);
2115 std::string targetName;
2124 target = session->GetPlayer();
2152 std::string nameLink = handler->
playerLink(targetName);
2195 Field* fields = result->Fetch();
2203 localtime_r(&sqlTime, &timeinfo);
2204 strftime(buffer,
sizeof(buffer),
"%Y-%m-%d %I:%M%p", &timeinfo);
2207 }
while (result->NextRow());
2250 if (info.TargetGUID.IsEmpty())
2252 else if (info.TargetGUID.IsPlayer())
2258 if (info.TargetGUID.IsEmpty())
2260 else if (info.TargetGUID.IsPlayer())
2366 damageInfo.
damage = damage;
2367 Unit::DealDamageMods(damageInfo.attacker, damageInfo.target, damageInfo.damage, &damageInfo.absorb);
2397 Player* target =
nullptr;
2399 if (args && args[0] !=
'\0')
2447 uint32 freezeDuration = 0;
2448 bool canApplyFreeze =
false;
2449 bool getDurationFromConfig =
false;
2464 getDurationFromConfig =
true;
2469 char const* arg1 = strtok((
char*)args,
" ");
2470 char const* arg2 = strtok(
nullptr,
" ");
2479 freezeDuration =
uint32(atoi(arg1));
2480 canApplyFreeze =
true;
2486 std::string name = arg1;
2492 freezeDuration =
uint32(atoi(arg2));
2493 canApplyFreeze =
true;
2496 getDurationFromConfig =
true;
2502 if (getDurationFromConfig)
2505 canApplyFreeze =
true;
2549 name = *targetNameArg;
2616 Field* fields = result->Fetch();
2617 std::string player = fields[0].
GetString();
2624 if (remaintime == -1)
2630 while (result->NextRow());
@ CHAR_SEL_PVPSTATS_FACTIONS_OVERALL
@ CHAR_DEL_CHAR_AURA_FROZEN
@ CHAR_SEL_CHARACTER_AURA_FROZEN
@ CHAR_SEL_GUILD_MEMBER_EXTENDED
DB2Storage< SkillLineEntry > sSkillLineStore("SkillLine.db2", &SkillLineLoadInfo::Instance)
DB2Storage< MapEntry > sMapStore("Map.db2", &MapLoadInfo::Instance)
DB2Storage< ItemSparseEntry > sItemSparseStore("ItemSparse.db2", &ItemSparseLoadInfo::Instance)
DB2Storage< SoundKitEntry > sSoundKitStore("SoundKit.db2", &SoundKitLoadInfo::Instance)
DB2Storage< AreaTableEntry > sAreaTableStore("AreaTable.db2", &AreaTableLoadInfo::Instance)
SQLTransaction< CharacterDatabaseConnection > CharacterDatabaseTransaction
std::shared_ptr< PreparedResultSet > PreparedQueryResult
DatabaseWorkerPool< LoginDatabaseConnection > LoginDatabase
Accessor to the realm/login database.
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
#define MAX_NUMBER_OF_GRIDS
ItemRandomBonusListId GenerateItemRandomBonusListId(uint32 item_id)
@ LANG_COMMAND_KICKMESSAGE_WORLD
@ LANG_MOVEGENS_FOLLOW_PLAYER
@ LANG_CHARACTER_GENDER_FEMALE
@ LANG_COMMAND_GRAVEYARDALRLINKED
@ LANG_PINFO_CHR_GUILD_NOTE
@ LANG_PINFO_ACC_LASTLOGIN
@ LANG_COMMAND_GRAVEYARD_ALLIANCE
@ LANG_COMMAND_OBJNOTFOUND
@ LANG_COMMAND_ZONENOGRAFACTION
@ LANG_PINFO_CHR_LEVEL_LOW
@ LANG_CANNOT_GO_TO_INST_PARTY
@ LANG_PINFO_CHR_PLAYEDTIME
@ LANG_COMMAND_PLAYED_TO_ALL
@ LANG_GPS_POSITION_INDOORS
@ LANG_COMMAND_DISABLE_CHAT_DELAYED
@ LANG_COMMAND_COULDNOTFIND
@ LANG_COMMAND_FREEZE_ERROR
@ LANG_COMMAND_NOCREATUREFOUND
@ LANG_PINFO_CHR_MAP_WITH_AREA
@ LANG_ITEM_CANNOT_CREATE
@ LANG_MOVEGENS_CHASE_PLAYER
@ LANG_COMMAND_GRAVEYARDNOEXIST
@ LANG_CANT_TELEPORT_SELF
@ LANG_COMMAND_LIST_FREEZE
@ LANG_MOVEGENS_FOLLOW_CREATURE
@ LANG_MOVEGENS_FOLLOW_NULL
@ LANG_CHARACTER_GENDER_MALE
@ LANG_YOUR_CHAT_DISABLED
@ LANG_COMMAND_GRAVEYARDWRONGZONE
@ LANG_COMMAND_NO_FROZEN_PLAYERS
@ LANG_CHAT_ALREADY_ENABLED
@ LANG_COMMAND_GRAVEYARDNEAREST
@ LANG_GAMEOBJECT_DAMAGED
@ LANG_NO_ITEMS_FROM_ITEMSET_FOUND
@ LANG_COMMAND_TEMP_FROZEN_PLAYER
@ LANG_CANNOT_SUMMON_INST_INST
@ LANG_PINFO_CHR_LEVEL_HIGH
@ LANG_COMMAND_MUTEMESSAGE_WORLD
@ LANG_CANNOT_SUMMON_TO_INST
@ LANG_YOUR_ITEMS_REPAIRED
@ LANG_COMMAND_GRAVEYARDLINKED
@ LANG_TRANSPORT_POSITION
@ LANG_MOVEGENS_CHASE_CREATURE
@ LANG_COMMAND_ZONENOGRAVEYARDS
@ LANG_INVALID_GAMEOBJECT_TYPE
@ LANG_SELECT_CHAR_OR_CREATURE
@ LANG_COMMAND_NOGAMEOBJECTFOUND
@ LANG_REMOVEITEM_FAILURE
@ LANG_COMMAND_MUTEHISTORY_OUTPUT
@ LANG_COMMAND_MUTEHISTORY_EMPTY
@ LANG_PINFO_CHR_GUILD_RANK
@ LANG_CANNOT_GO_TO_INST_GM
@ LANG_COMMAND_GRAVEYARD_NOTEAM
@ LANG_PINFO_ACC_REGMAILS
@ LANG_COMMAND_MUTEHISTORY
@ LANG_CANNOT_GO_TO_BG_GM
@ LANG_COMMAND_PERMA_FROZEN_PLAYER
@ LANG_MOVEGENS_CHASE_NULL
@ LANG_GPS_POSITION_OUTDOORS
@ LANG_COMMAND_KICKMESSAGE
@ LANG_COMMAND_GRAVEYARDERROR
@ LANG_COMMAND_FREEZE_WRONG
@ LANG_PINFO_CHR_GUILD_ONOTE
@ LANG_MOVEGENS_HOME_CREATURE
@ LANG_MOVEGENS_HOME_PLAYER
@ LANG_COMMAND_GRAVEYARD_HORDE
@ LANG_COMMAND_GRAVEYARD_ANY
@ LANG_REMOVEALL_COOLDOWN
@ LANG_COMMAND_ITEMIDINVALID
@ LOGIN_SEL_ACCOUNT_MUTE_INFO
std::set< ObjectGuid > GuidSet
bool normalizePlayerName(std::string &name)
std::unordered_map< uint32, ItemTemplate > ItemTemplateContainer
std::optional< T > Optional
Optional helper class to wrap optional values within.
std::vector< ItemPosCount > ItemPosCountVec
@ PLAYER_EXPLORED_ZONES_BITS
#define INVENTORY_SLOT_BAG_0
@ SPELL_SCHOOL_MASK_NORMAL
constexpr BattlegroundQueueTypeId BATTLEGROUND_QUEUE_NONE
@ SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW
@ SPELL_CAST_SOURCE_NORMAL
bool StringEqualI(std::string_view a, std::string_view b)
bool Utf8ToUpperOnlyLatin(std::string &utf8String)
std::string secsToTimeString(uint64 timeInSecs, TimeFormat timeFormat, bool hoursOnly)
bool isNumeric(wchar_t wchar)
static uint32 GetId(std::string_view username)
static Aura * TryRefreshStackOrCreate(AuraCreateInfo &createInfo, bool updateEffectMask=true)
void SetDuration(int32 duration, bool withMods=false)
char * extractKeyFromLink(char *text, char const *linkType, char **something1=nullptr)
Player * getSelectedPlayerOrSelf()
virtual bool HasPermission(uint32 permission) const
std::string playerLink(std::string const &name) const
Player * getSelectedPlayer()
WorldSession * GetSession()
virtual LocaleConstant GetSessionDbcLocale() const
virtual std::string GetNameLink() const
Creature * GetCreatureFromPlayerMapByDbGuid(ObjectGuid::LowType lowguid)
void PSendSysMessage(const char *fmt, Args &&... args)
bool HasLowerSecurity(Player *target, ObjectGuid guid, bool strong=false)
Creature * getSelectedCreature()
GameObject * GetObjectFromPlayerMapByDbGuid(ObjectGuid::LowType lowguid)
void SetSentErrorMessage(bool val)
Player * GetPlayer() const
virtual void SendSysMessage(std::string_view str, bool escapeCharacters=false)
virtual bool needReportToTarget(Player *chr) const
bool extractPlayerTarget(char *args, Player **player, ObjectGuid *player_guid=nullptr, std::string *player_name=nullptr)
ObjectGuid::LowType extractLowGuidFromLink(char *text, HighGuid &guidHigh)
virtual char const * GetTrinityString(uint32 entry) const
void Respawn(bool force=false)
static char const * GetChrRaceName(uint8 race, LocaleConstant locale=DEFAULT_LOCALE)
static char const * GetClassName(uint8 class_, LocaleConstant locale=DEFAULT_LOCALE)
constexpr std::underlying_type_t< T > AsUnderlyingType() const
Class used to access individual fields of database query result.
std::string GetString() const
GameObjectValue const * GetGOValue() const
void ModifyHealth(int32 change, WorldObject *attackerOrHealer=nullptr, uint32 spellId=0)
bool IsDestructibleBuilding() const
void SetBinding(bool val)
static MMapManager * createOrGetMMapManager()
dtNavMesh const * GetNavMesh(uint32 mapId)
ZLiquidStatus GetLiquidStatus(PhaseShift const &phaseShift, float x, float y, float z, Optional< map_liquidHeaderTypeFlags > ReqLiquidType={}, LiquidData *data=nullptr, float collisionHeight=2.03128f)
bool IsBattlegroundOrArena() const
Weather * GetOrGenerateZoneDefaultWeather(uint32 zoneId)
ObjectGuid::LowType GenerateLowGuid()
float GetMinHeight(PhaseShift const &phaseShift, float x, float y)
Difficulty GetDifficultyID() const
RespawnInfo * GetRespawnInfo(SpawnObjectType type, ObjectGuid::LowType spawnId) const
uint32 GetInstanceId() const
void Respawn(RespawnInfo *info, CharacterDatabaseTransaction dbTrans=nullptr)
std::vector< MovementGeneratorInformation > GetMovementGeneratorsInformation() const
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< float > closeEnoughDistance={})
bool GetDestination(float &x, float &y, float &z)
LowType GetCounter() const
static ObjectGuid const Empty
std::string ToString() const
static ObjectGuid GetGUID(Object const *o)
static Player * ToPlayer(Object *o)
static void PrintToChat(ChatHandler *chat, WorldObject const *target)
static void InheritPhaseShift(WorldObject *target, WorldObject const *source)
void StopCastingBindSight() const
bool IsValidPos(uint16 pos, bool explicit_pos) const
void SendEquipError(InventoryResult msg, Item const *item1=nullptr, Item const *item2=nullptr, uint32 itemId=0) const
Item * StoreNewItem(ItemPosCountVec const &pos, uint32 itemId, bool update, ItemRandomBonusListId randomBonusListId=0, GuidSet const &allowedLooters=GuidSet(), ItemContext context=ItemContext::NONE, std::vector< int32 > const *bonusListIDs=nullptr, bool addToCollection=true)
uint32 GetSaveTimer() const
BattlegroundTypeId GetBattlegroundTypeId() const
uint32 GetTotalPlayedTime() const
void SetBattlegroundId(uint32 val, BattlegroundTypeId bgTypeId, BattlegroundQueueTypeId queueId)
Gender GetNativeGender() const override
uint16 GetSkillValue(uint32 skill) const
bool TeleportTo(uint32 mapid, float x, float y, float z, float orientation, TeleportToOptions options=TELE_TO_NONE, Optional< uint32 > instanceId={})
static void OfflineResurrect(ObjectGuid const &guid, CharacterDatabaseTransaction trans)
void SetBattlegroundEntryPoint()
void SetDeveloper(bool on)
void SpawnCorpseBones(bool triggerSave=true)
void SetRaidDifficultyID(Difficulty raid_difficulty)
void LeaveBattleground(bool teleportToEntryPoint=true)
void DurabilityRepairAll(bool takeCost, float discountMod, bool guildBank)
static void SavePositionInDB(WorldLocation const &loc, uint16 zoneId, ObjectGuid guid, CharacterDatabaseTransaction trans)
void SetSkill(uint32 id, uint16 step, uint16 newVal, uint16 maxVal)
void SwapItem(uint16 src, uint16 dst)
WorldSession * GetSession() const
Item * GetItemByPos(uint16 pos) const
void SaveRecallPosition()
Difficulty GetDungeonDifficultyID() const
void SetLegacyRaidDifficultyID(Difficulty raid_difficulty)
uint16 GetPureMaxSkillValue(uint32 skill) const
uint32 DestroyItemCount(uint32 item, uint32 count, bool update, bool unequip_check=false)
void AddExploredZones(uint32 pos, uint64 mask)
uint16 GetSkillStep(uint32 skill) const
bool IsGameMaster() const
static bool LoadPositionFromDB(uint32 &mapid, float &x, float &y, float &z, float &o, bool &in_flight, ObjectGuid guid)
void SetDungeonDifficultyID(Difficulty dungeon_difficulty)
void RemoveExploredZones(uint32 pos, uint64 mask)
Difficulty GetRaidDifficultyID() const
void SaveToDB(bool create=false)
uint32 GetBattlegroundId() const
Group * GetGroup(Optional< uint8 > partyIndex)
void UpdateObjectVisibility(bool forced=true) override
Difficulty GetLegacyRaidDifficultyID() const
InventoryResult CanStoreNewItem(uint8 bag, uint8 slot, ItemPosCountVec &dest, uint32 item, uint32 count, uint32 *no_space_count=nullptr) const
bool IsBeingTeleported() const
void SendNewItem(Item *item, uint32 quantity, bool received, bool created, bool broadcast=false, uint32 dungeonEncounterId=0)
void ResurrectPlayer(float restore_percent, bool applySickness=false)
void setInt32(const uint8 index, const int32 value)
void setInt64(const uint8 index, const int64 value)
void setUInt32(const uint8 index, const uint32 value)
void setString(const uint8 index, const std::string &value)
void setUInt64(const uint8 index, const uint64 value)
void ResetCooldown(uint32 spellId, bool update=false)
void ResetCharges(uint32 chargeCategoryId)
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)
static bool ExistVMap(uint32 mapid, int32 gx, int32 gy)
static bool ExistMap(uint32 mapid, int32 gx, int32 gy, bool log=true)
static uint32 DealDamage(Unit *attacker, Unit *victim, uint32 damage, CleanDamage const *cleanDamage=nullptr, DamageEffectType damagetype=DIRECT_DAMAGE, SpellSchoolMask damageSchoolMask=SPELL_SCHOOL_MASK_NORMAL, SpellInfo const *spellProto=nullptr, bool durabilityLoss=true)
void RemoveAurasByType(AuraType auraType, std::function< bool(AuraApplication const *)> const &check, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void CombatStop(bool includingCast=false, bool mutualPvP=true, bool(*unitFilter)(Unit const *otherUnit)=nullptr)
static void DealDamageMods(Unit const *attacker, Unit const *victim, uint32 &damage, uint32 *absorb)
void SendAttackStateUpdate(CalcDamageInfo *damageInfo)
void DealSpellDamage(SpellNonMeleeDamage const *damageInfo, bool durabilityLoss)
static void CalcAbsorbResist(DamageInfo &damageInfo, Spell *spell=nullptr)
MotionMaster * GetMotionMaster()
static uint32 CalcArmorReducedDamage(Unit const *attacker, Unit *victim, uint32 damage, SpellInfo const *spellInfo, WeaponAttackType attackType=MAX_ATTACK, uint8 attackerLevel=0)
Aura * AddAura(uint32 spellId, Unit *target)
float GetCombatReach() const override
void SendSpellNonMeleeDamageLog(SpellNonMeleeDamage const *log)
bool isPossessing() const
SpellHistory * GetSpellHistory()
static bool IsDamageReducedByArmor(SpellSchoolMask damageSchoolMask, SpellInfo const *spellInfo=nullptr)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
static void Kill(Unit *attacker, Unit *victim, bool durabilityLoss=true, bool skipSettingDeathState=false)
ObjectGuid GetTarget() const
constexpr uint32 GetMapId() const
float GetGridActivationRange() const
void GetClosePoint(float &x, float &y, float &z, float size, float distance2d=0, float relAngle=0) const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
PhaseShift & GetPhaseShift()
TransportBase * GetTransport() const
uint32 GetInstanceId() const
float GetDistance2d(WorldObject const *obj) const
std::string const & GetName() const
Player * GetCharmerOrOwnerPlayerOrPlayerItself() const
float GetDistance(WorldObject const *obj) const
WorldPacket const * Write() override
Player session in the World.
void SendNotification(char const *format,...) ATTR_PRINTF(2
AccountTypes GetSecurity() const
void KickPlayer(std::string const &reason)
Kick a player out of the World.
Player * GetPlayer() const
bool HasPermission(uint32 permissionId)
uint32 GetAccountId() const
void SendShowMailBox(ObjectGuid guid)
void SendShowBank(ObjectGuid guid)
uint32 GetLatency() const
std::string const & GetPlayerName() const
static bool HandleDevCommand(ChatHandler *handler, Optional< bool > enableArg)
static bool HandleGetDistanceCommand(ChatHandler *handler, char const *args)
static bool HandleAddItemSetCommand(ChatHandler *handler, Variant< Hyperlink< itemset >, uint32 > itemSetId, Optional< std::string_view > bonuses, Optional< uint8 > context)
static bool HandleMuteHistoryHelper(uint32 accountId, char const *accountName, ChatHandler *handler)
static bool HandleDamageCommand(ChatHandler *handler, uint32 damage, Optional< SpellSchools > school, Optional< SpellInfo const * > spellInfo)
static bool HandleSaveCommand(ChatHandler *handler)
static bool HandleAuraCommand(ChatHandler *handler, SpellInfo const *spell)
static bool HandleUnbindSightCommand(ChatHandler *handler)
static bool HandleCooldownCommand(ChatHandler *handler, Optional< SpellInfo const * > spellArg)
static bool HandleSummonCommand(ChatHandler *handler, char const *args)
static bool HandleMuteCommand(ChatHandler *handler, Optional< PlayerIdentifier > player, uint32 muteTime, Tail muteReason)
static bool HandleBankCommand(ChatHandler *handler)
static bool HandleListFreezeCommand(ChatHandler *handler)
static bool HandleReviveCommand(ChatHandler *handler, char const *args)
static bool HandleUnAuraCommand(ChatHandler *handler, Variant< SpellInfo const *, EXACT_SEQUENCE("all")> spellArg)
static bool HandleShowAreaCommand(ChatHandler *handler, uint32 areaId)
ChatCommandTable GetCommands() const override
static bool HandleCommandsCommand(ChatHandler *handler)
static bool HandleMailBoxCommand(ChatHandler *handler)
static bool HandleDieCommand(ChatHandler *handler)
static bool HandlePInfoCommand(ChatHandler *handler, Optional< PlayerIdentifier > arg)
static bool HandleKickPlayerCommand(ChatHandler *handler, char const *args)
static bool HandleChangeWeather(ChatHandler *handler, WeatherType type, float intensity)
static bool HandleHelpCommand(ChatHandler *handler, Tail cmd)
static bool HandleRespawnCommand(ChatHandler *handler)
static bool HandleAddItemToCommand(ChatHandler *handler, char const *args)
static bool HandleMovegensCommand(ChatHandler *handler)
static bool HandleGUIDCommand(ChatHandler *handler)
static bool HandlePlayAllCommand(ChatHandler *handler, uint32 soundId, Optional< int32 > broadcastTextId)
static bool HandleGPSCommand(ChatHandler *handler, char const *args)
static bool HandleSaveAllCommand(ChatHandler *handler)
static bool HandleUnFreezeCommand(ChatHandler *handler, Optional< std::string > targetNameArg)
static bool HandleDamageGoCommand(ChatHandler *handler, Variant< Hyperlink< gameobject >, ObjectGuid::LowType > spawnId, int32 damage)
static bool HandleBindSightCommand(ChatHandler *handler)
static bool HandleComeToMeCommand(ChatHandler *handler)
static bool HandleAddItemCommand(ChatHandler *handler, char const *args)
static bool HandleUnPossessCommand(ChatHandler *handler)
static bool HandleNearGraveCommand(ChatHandler *handler, Optional< std::string > teamArg)
static bool HandleUnmuteCommand(ChatHandler *handler, char const *args)
static bool HandleDismountCommand(ChatHandler *handler)
static bool HandleRecallCommand(ChatHandler *handler, char const *args)
static bool HandleCombatStopCommand(ChatHandler *handler, char const *args)
static bool HandleHideAreaCommand(ChatHandler *handler, uint32 areaId)
static bool HandlePvPstatsCommand(ChatHandler *handler)
static bool HandleMuteHistoryCommand(ChatHandler *handler, std::string accountName)
static bool HandleLinkGraveCommand(ChatHandler *handler, uint32 graveyardId, Optional< std::string > teamArg)
static bool HandleRepairitemsCommand(ChatHandler *handler, char const *args)
static bool HandleFreezeCommand(ChatHandler *handler, char const *args)
static bool HandleSetSkillCommand(ChatHandler *handler, Variant< Hyperlink< skill >, uint32 > skillId, uint32 level, Optional< uint32 > maxSkillArg)
static bool HandleItemMoveCommand(ChatHandler *handler, uint8 srcSlot, uint8 dstSlot)
static bool HandlePossessCommand(ChatHandler *handler)
static bool HandleUnstuckCommand(ChatHandler *handler, char const *args)
static bool HandleAppearCommand(ChatHandler *handler, char const *args)
#define SPELL_UNSTUCK_VISUAL
void AddSC_misc_commandscript()
void SetWeather(WeatherType type, float intensity)
Set the weather.
@ CONFIG_MAX_PLAYER_LEVEL
@ CONFIG_GM_FREEZE_DURATION
@ CONFIG_SHOW_KICK_IN_WORLD
@ CONFIG_SHOW_MUTE_IN_WORLD
@ CONFIG_BATTLEGROUND_STORE_STATISTICS_ENABLE
@ CONFIG_DIE_COMMAND_MODE
bool IsPathfindingEnabled(uint32 mapId)
std::vector< int32 > GetBonusListsForItem(uint32 itemId, ItemBonusGenerationParams const ¶ms)
TC_GAME_API Player * FindPlayerByName(std::string_view name)
TC_GAME_API void SaveAllPlayers()
TC_GAME_API Player * GetPlayer(Map const *, ObjectGuid const &guid)
TC_GAME_API Player * FindConnectedPlayer(ObjectGuid const &)
TC_GAME_API void SendCommandHelpFor(ChatHandler &handler, std::string_view cmd)
std::vector< ChatCommandBuilder > ChatCommandTable
TC_COMMON_API std::vector< std::string_view > Tokenize(std::string_view str, char sep, bool keepEmpty)
GridCoord ComputeGridCoord(float x, float y)
CellCoord ComputeCellCoord(float x, float y)
@ RBAC_PERM_COMMAND_COMMANDS
@ RBAC_PERM_COMMAND_DISMOUNT
@ RBAC_PERM_COMMAND_POSSESS
@ RBAC_PERM_COMMAND_NEARGRAVE
@ RBAC_PERM_COMMAND_PLAYALL
@ RBAC_PERM_COMMAND_UNFREEZE
@ RBAC_PERM_COMMAND_HIDEAREA
@ RBAC_PERM_COMMAND_SHOWAREA
@ RBAC_PERM_COMMAND_REPAIRITEMS
@ RBAC_PERM_COMMAND_BINDSIGHT
@ RBAC_PERM_COMMAND_ADDITEM
@ RBAC_PERM_COMMAND_RESPAWN
@ RBAC_PERM_COMMAND_PVPSTATS
@ RBAC_PERM_COMMAND_UNMUTE
@ RBAC_PERM_COMMAND_COOLDOWN
@ RBAC_PERM_COMMAND_COMETOME
@ RBAC_PERM_COMMAND_COMBATSTOP
@ RBAC_PERM_COMMAND_SETSKILL
@ RBAC_PERM_COMMAND_ADDITEMSET
@ RBAC_PERM_COMMANDS_SAVE_WITHOUT_DELAY
@ RBAC_PERM_COMMAND_MOVEGENS
@ RBAC_PERM_COMMAND_UNSTUCK
@ RBAC_PERM_COMMAND_REVIVE
@ RBAC_PERM_COMMAND_APPEAR
@ RBAC_PERM_COMMAND_FREEZE
@ RBAC_PERM_COMMAND_UNPOSSESS
@ RBAC_PERM_COMMAND_SUMMON
@ RBAC_PERM_COMMAND_RECALL
@ RBAC_PERM_COMMAND_ITEMMOVE
@ RBAC_PERM_COMMAND_MAILBOX
@ RBAC_PERM_COMMAND_LISTFREEZE
@ RBAC_PERM_COMMAND_UNBINDSIGHT
@ RBAC_PERM_COMMANDS_USE_UNSTUCK_WITH_ARGS
@ RBAC_PERM_COMMAND_DAMAGE
@ RBAC_PERM_RESURRECT_WITH_FULL_HPS
@ RBAC_PERM_COMMAND_UNAURA
@ RBAC_PERM_COMMAND_WCHANGE
@ RBAC_PERM_COMMAND_LINKGRAVE
@ RBAC_PERM_COMMAND_SAVEALL
@ RBAC_PERM_COMMANDS_PINFO_CHECK_PERSONAL_DATA
@ RBAC_PERM_COMMAND_PINFO
@ RBAC_PERM_COMMAND_MUTEHISTORY
@ RBAC_PERM_COMMAND_DISTANCE
EnumFlag< AreaFlags > GetFlags() const
AuraCreateInfo & SetCaster(Unit *caster)
static void VisitGridObjects(WorldObject const *obj, T &visitor, float radius, bool dont_load=true)
EnumFlag< map_liquidHeaderTypeFlags > type_flags
constexpr float GetPositionX() const
constexpr float GetPositionY() const
float GetExactDist2d(const float x, const float y) const
float GetExactDist(float x, float y, float z) const
float GetAbsoluteAngle(float x, float y) const
constexpr float GetOrientation() const
constexpr float GetPositionZ() const
Battlenet::RealmHandle Id
LocalizedString DisplayName
struct GameObjectValue::@211 Building