52#if TRINITY_COMPILER_IS_GCC
53#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
63 std::span<ChatCommandBuilder const>
GetCommands()
const override
131 Field* fields = result->Fetch();
134 if (!(result->NextRow()))
137 fields = result->Fetch();
235 Cell cell(cellCoord);
238 object->GetZoneAndAreaId(zoneId, areaId);
239 uint32 mapId =
object->GetMapId();
245 float zoneX =
object->GetPositionX();
246 float zoneY =
object->GetPositionY();
248 sDB2Manager.Map2ZoneCoordinates(zoneId, zoneX, zoneY);
250 Map* map =
object->GetMap();
279 object->
GetPositionX(),
object->GetPositionY(),
object->GetPositionZ(),
object->GetOrientation());
282 transport->GetGOInfo()->moTransport.SpawnMap,
object->GetTransOffsetX(),
object->GetTransOffsetY(),
object->GetTransOffsetZ(),
object->GetTransOffsetO(),
283 transport->GetEntry(), transport->GetName().c_str());
286 zoneX, zoneY, groundZ, floorZ, map->
GetMinHeight(object->
GetPhaseShift(),
object->GetPositionX(),
object->GetPositionY()), haveMap, haveVMap, haveMMap);
345 std::string targetName;
350 if (target == _player || targetGuid == _player->
GetGUID())
363 std::string chrNameLink = handler->
playerLink(targetName);
446 std::string nameLink = handler->
playerLink(targetName);
477 std::string targetName;
482 if (target == _player || targetGuid == _player->
GetGUID())
491 std::string nameLink = handler->
playerLink(targetName);
518 Player* targetGroupLeader =
nullptr;
576 std::string nameLink = handler->
playerLink(targetName);
587 targetGuid,
nullptr);
697 if (srcSlot == dstSlot)
731 std::string nameLink = handler->
GetNameLink(owner);
876 std::string playerName;
894 char const* kickReason = strtok(
nullptr,
"\r");
895 if (kickReason !=
nullptr)
896 kickReasonStr = kickReason;
911#define SPELL_UNSTUCK_ID 7355
912#define SPELL_UNSTUCK_VISUAL 2683
926 char* player_str = strtok((
char*)args,
" ");
930 std::string location_str =
"inn";
931 if (
char const* loc = strtok(
nullptr,
" "))
946 Field* fields = result->Fetch();
968 if (location_str ==
"inn")
974 if (location_str ==
"graveyard")
1019 if (
sObjectMgr->AddGraveyardLink(graveyardId, zoneId, team,
true))
1046 uint32 graveyardId = graveyard->
ID;
1060 else if (team ==
HORDE)
1069 std::string team_name;
1156 std::vector<int32> bonusListIDs;
1160 itemId = (*itemLinkData)->Item->GetId();
1161 bonusListIDs = (*itemLinkData)->ItemBonusListIDs;
1162 itemContext =
static_cast<ItemContext>((*itemLinkData)->Context);
1164 else if (
uint32 const* itemIdPtr = std::get_if<uint32>(&itemArg))
1165 itemId = *itemIdPtr;
1166 else if (std::string_view
const* itemNameText = std::get_if<std::string_view>(&itemArg))
1168 std::string itemName(*itemNameText);
1169 if (itemName.starts_with(
'['))
1170 itemName.erase(0, 1);
1171 if (itemName.ends_with(
']'))
1172 itemName.pop_back();
1177 if (itemName == sparse->
Display[i])
1192 int32 count = countArg.value_or(1);
1197 if (bonusListIdString)
1198 for (std::string_view token :
Trinity::Tokenize(*bonusListIdString,
';',
false))
1199 if (
Optional<int32> bonusListId = Trinity::StringTo<int32>(token); bonusListId && *bonusListId)
1200 bonusListIDs.push_back(*bonusListId);
1208 bonusListIDs.insert(bonusListIDs.begin(), contextBonuses.begin(), contextBonuses.end());
1209 std::ranges::sort(bonusListIDs);
1210 bonusListIDs.erase(std::unique(bonusListIDs.begin(), bonusListIDs.end()), bonusListIDs.end());
1227 if (destroyedItemCount > 0)
1233 uint32 unableToDestroyItemCount = -count - destroyedItemCount;
1234 if (unableToDestroyItemCount > 0)
1250 uint32 noSpaceForCount = 0;
1256 count -= noSpaceForCount;
1258 if (count == 0 || dest.empty())
1266 bonusListIDs.empty() ?
nullptr : &bonusListIDs);
1269 if (player == playerTarget)
1270 for (ItemPosCountVec::const_iterator itr = dest.begin(); itr != dest.end(); ++itr)
1274 if (count > 0 && item)
1278 if (player != playerTarget)
1279 playerTarget->
SendNewItem(item, count,
true,
false);
1282 if (noSpaceForCount > 0)
1316 if (*itemSetId == 0)
1323 std::vector<int32> bonusListIDs;
1328 if (
Optional<int32> bonusListId = Trinity::StringTo<int32>(token); bonusListId && *bonusListId)
1329 bonusListIDs.push_back(*bonusListId);
1338 playerTarget = player;
1342 for (
auto const& itemTemplatePair : its)
1344 if (itemTemplatePair.second.GetItemSet() != *itemSetId)
1352 std::vector<int32> bonusListIDsForItem = bonusListIDs;
1356 bonusListIDsForItem.insert(bonusListIDsForItem.begin(), contextBonuses.begin(), contextBonuses.end());
1360 bonusListIDsForItem.empty() ?
nullptr : &bonusListIDsForItem);
1365 if (player == playerTarget)
1369 if (player != playerTarget)
1374 player->
SendEquipError(msg,
nullptr,
nullptr, itemTemplatePair.first);
1445 if (level == 0 || level > max)
1482 Player* target = arg->GetConnectedPlayer();
1484 std::string targetName = arg->GetName();
1534 int64 muteTime = -1;
1545 uint8 raceid, classid = 0;
1549 uint32 totalPlayerTime = 0;
1559 char const* areaName =
nullptr;
1560 char const* zoneName =
nullptr;
1564 uint8 guildRankId = 0;
1565 std::string guildName;
1566 std::string guildRank;
1568 std::string officeNote;
1606 Field* fields = result->Fetch();
1607 totalPlayerTime = fields[0].
GetUInt32();
1633 Field* fields = result->Fetch();
1648 lastIp.append(
" (");
1649 lastIp.append(location->CountryName);
1669 std::string nameLink = handler->
playerLink(targetName);
1687 Field* fields = result2->Fetch();
1688 bool permanent = fields[1].
GetUInt64() != 0;
1689 banTime = !permanent ?
int64(fields[0].GetUInt32()) : 0;
1701 Field* fields = result4->Fetch();
1714 Field* fields5 = result5->Fetch();
1718 guildRankId = fields5[3].
GetUInt8();
1792 areaName = zoneName;
1807 if (!guildName.empty())
1813 if (!officeNote.empty())
1827 Field* fields = result6->Fetch();
1847 if (target->
IsPet())
1865 std::vector<RespawnInfo const*> data;
1871 if (info->gridId == gridId)
1881 std::string muteReasonStr{ muteReason };
1882 if (muteReason.empty())
1894 Player* target = player->GetConnectedPlayer();
1900 target = session->GetPlayer();
1907 std::string muteBy =
"";
1909 muteBy = gmPlayer->GetName();
1937 std::string nameLink = handler->
playerLink(*player);
1958 std::string targetName;
1967 target = session->GetPlayer();
1995 std::string nameLink = handler->
playerLink(targetName);
2038 Field* fields = result->Fetch();
2046 localtime_r(&sqlTime, &timeinfo);
2047 strftime(buffer,
sizeof(buffer),
"%Y-%m-%d %I:%M%p", &timeinfo);
2050 }
while (result->NextRow());
2093 if (info.TargetGUID.IsEmpty())
2095 else if (info.TargetGUID.IsPlayer())
2101 if (info.TargetGUID.IsEmpty())
2103 else if (info.TargetGUID.IsPlayer())
2209 damageInfo.
damage = damage;
2210 Unit::DealDamageMods(damageInfo.attacker, damageInfo.target, damageInfo.damage, &damageInfo.absorb);
2240 Player* target =
nullptr;
2242 if (args && args[0] !=
'\0')
2290 uint32 freezeDuration = 0;
2291 bool canApplyFreeze =
false;
2292 bool getDurationFromConfig =
false;
2307 getDurationFromConfig =
true;
2312 char const* arg1 = strtok((
char*)args,
" ");
2313 char const* arg2 = strtok(
nullptr,
" ");
2322 freezeDuration =
uint32(atoi(arg1));
2323 canApplyFreeze =
true;
2329 std::string name = arg1;
2335 freezeDuration =
uint32(atoi(arg2));
2336 canApplyFreeze =
true;
2339 getDurationFromConfig =
true;
2345 if (getDurationFromConfig)
2348 canApplyFreeze =
true;
2392 name = *targetNameArg;
2459 Field* fields = result->Fetch();
2460 std::string player = fields[0].
GetString();
2467 if (remaintime == -1)
2473 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
constexpr uint8 INVENTORY_SLOT_BAG_0
@ PLAYER_EXPLORED_ZONES_BITS
@ SPELL_SCHOOL_MASK_NORMAL
constexpr BattlegroundQueueTypeId BATTLEGROUND_QUEUE_NONE
TC_COMMON_API bool StringEqualI(std::string_view str1, std::string_view str2)
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)
void SetDuration(int32 duration, bool withMods=false)
ObjectGuid const & GetGUID() const
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)
bool HasLowerSecurity(Player *target, ObjectGuid guid, bool strong=false)
Creature * getSelectedCreature()
GameObject * GetObjectFromPlayerMapByDbGuid(ObjectGuid::LowType lowguid)
void SetSentErrorMessage(bool val)
Player * GetPlayer() const
void PSendSysMessage(char const *fmt, Args &&... args)
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 * GetChrClassName(uint8 class_, LocaleConstant locale=DEFAULT_LOCALE)
static char const * GetChrRaceName(uint8 race, LocaleConstant locale=DEFAULT_LOCALE)
constexpr std::underlying_type_t< T > AsUnderlyingType() const
Class used to access individual fields of database query result.
uint64 GetUInt64() const noexcept
uint32 GetUInt32() const noexcept
uint16 GetUInt16() const noexcept
uint8 GetUInt8() const noexcept
int32 GetInt32() const noexcept
std::string GetString() const noexcept
GameObjectValue const * GetGOValue() const
void ModifyHealth(int32 change, WorldObject *attackerOrHealer=nullptr, uint32 spellId=0)
bool IsDestructibleBuilding() const
void SetBinding(bool val)
static MMapManager * instance()
dtNavMesh * GetNavMesh(uint32 mapId, uint32 instanceId)
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)
float GetMinHeight(PhaseShift const &phaseShift, float x, float y)
RespawnInfo * GetRespawnInfo(SpawnObjectType type, ObjectGuid::LowType spawnId) const
uint32 GetInstanceId() const
void Respawn(RespawnInfo *info, CharacterDatabaseTransaction dbTrans=nullptr)
std::vector< MovementGeneratorInformation > GetMovementGeneratorsInformation() const
bool GetDestination(float &x, float &y, float &z)
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< float > closeEnoughDistance={}, Optional< MovementFadeObject > fadeObject={}, Scripting::v2::ActionResultSetter< MovementStopReason > &&scriptResult={})
LowType GetCounter() const
static ObjectGuid const Empty
std::string ToString() const
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
void LeaveBattleground(bool teleportToEntryPoint=true, bool withoutDeserterDebuff=false)
uint32 GetTotalPlayedTime() const
void SetBattlegroundId(uint32 val, BattlegroundTypeId bgTypeId, BattlegroundQueueTypeId queueId)
Gender GetNativeGender() const override
uint16 GetSkillValue(uint32 skill) const
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 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()
void SendNewItem(Item *item, uint32 quantity, bool pushed, bool created, bool broadcast=false, uint32 dungeonEncounterId=0)
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)
bool TeleportTo(uint32 mapid, float x, float y, float z, float orientation, TeleportToOptions options=TELE_TO_NONE, Optional< uint32 > instanceId={}, uint32 teleportSpellId=0)
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 ResurrectPlayer(float restore_percent, bool applySickness=false)
void setString(uint8 index, std::string &&value)
void setUInt32(uint8 index, uint32 value)
void setInt64(uint8 index, int64 value)
void setUInt64(uint8 index, uint64 value)
void setInt32(uint8 index, int32 value)
void ResetCooldown(uint32 spellId, bool update=false)
void ResetCharges(uint32 chargeCategoryId)
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
Player * GetPlayer() const
void SendShowBank(ObjectGuid guid, PlayerInteractionType interactionType)
bool HasPermission(uint32 permissionId)
uint32 GetAccountId() const
void SendShowMailBox(ObjectGuid guid)
uint32 GetLatency() const
std::string const & GetPlayerName() const
void KickPlayer(std::string_view reason)
Kick a player out of the World.
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 HandleAddItemCommandHelper(ChatHandler *handler, Player *player, Player *playerTarget, Variant< Hyperlink< item >, uint32, std::string_view > const &itemArg, Optional< int32 > countArg, Optional< std::string_view > const &bonusListIdString, Optional< uint8 > itemContextArg)
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)
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 HandleAddItemToCommand(ChatHandler *handler, PlayerIdentifier const &target, Variant< Hyperlink<::item >, uint32, std::string_view > const &item, Optional< int32 > countArg, Optional< std::string_view > const &bonusListIdString, Optional< uint8 > itemContextArg)
static bool HandleHelpCommand(ChatHandler *handler, Tail cmd)
static bool HandleRespawnCommand(ChatHandler *handler)
std::span< ChatCommandBuilder const > GetCommands() const override
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 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 HandleAddItemCommand(ChatHandler *handler, Variant< Hyperlink<::item >, uint32, std::string_view > const &item, Optional< int32 > countArg, Optional< std::string_view > const &bonusListIdString, Optional< uint8 > itemContextArg)
static bool HandleUnstuckCommand(ChatHandler *handler, char const *args)
static bool HandleAppearCommand(ChatHandler *handler, char const *args)
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 &)
ChatCommandBuilder const [] ChatCommandTable
TC_GAME_API void SendCommandHelpFor(ChatHandler &handler, std::string_view cmd)
TC_COMMON_API std::vector< std::string_view > Tokenize(std::string_view str, char sep, bool keepEmpty)
constexpr CellCoord ComputeCellCoord(float x, float y)
constexpr GridCoord ComputeGridCoord(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
static void VisitGridObjects(WorldObject const *obj, T &visitor, float radius)
constexpr uint32 GetId() const
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
LocalizedString DisplayName
Player * GetConnectedPlayer() const
static Optional< PlayerIdentifier > FromTarget(ChatHandler *handler)
static Optional< PlayerIdentifier > FromTargetOrSelf(ChatHandler *handler)
struct GameObjectValue::@197 Building