52#if TRINITY_COMPILER == TRINITY_COMPILER_GNU
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);
443 std::string nameLink = handler->
playerLink(targetName);
471 std::string targetName;
476 if (target == _player || targetGuid == _player->
GetGUID())
485 std::string nameLink = handler->
playerLink(targetName);
522 Player* targetGroupLeader =
nullptr;
567 std::string nameLink = handler->
playerLink(targetName);
578 targetGuid,
nullptr);
688 if (srcSlot == dstSlot)
722 std::string nameLink = handler->
GetNameLink(owner);
867 std::string playerName;
885 char const* kickReason = strtok(
nullptr,
"\r");
886 if (kickReason !=
nullptr)
887 kickReasonStr = kickReason;
902#define SPELL_UNSTUCK_ID 7355
903#define SPELL_UNSTUCK_VISUAL 2683
917 char* player_str = strtok((
char*)args,
" ");
921 std::string location_str =
"inn";
922 if (
char const* loc = strtok(
nullptr,
" "))
937 Field* fields = result->Fetch();
959 if (location_str ==
"inn")
965 if (location_str ==
"graveyard")
1010 if (
sObjectMgr->AddGraveyardLink(graveyardId, zoneId, team,
true))
1037 uint32 graveyardId = graveyard->
ID;
1051 else if (team ==
HORDE)
1060 std::string team_name;
1147 std::vector<int32> bonusListIDs;
1151 itemId = (*itemLinkData)->Item->GetId();
1152 bonusListIDs = (*itemLinkData)->ItemBonusListIDs;
1153 itemContext =
static_cast<ItemContext>((*itemLinkData)->Context);
1155 else if (
uint32 const* itemIdPtr = std::get_if<uint32>(&itemArg))
1156 itemId = *itemIdPtr;
1157 else if (std::string_view
const* itemNameText = std::get_if<std::string_view>(&itemArg))
1159 std::string itemName(*itemNameText);
1160 if (itemName.starts_with(
'['))
1161 itemName.erase(0, 1);
1162 if (itemName.ends_with(
']'))
1163 itemName.pop_back();
1168 if (itemName == sparse->
Display[i])
1183 int32 count = countArg.value_or(1);
1188 if (bonusListIdString)
1189 for (std::string_view token :
Trinity::Tokenize(*bonusListIdString,
';',
false))
1190 if (
Optional<int32> bonusListId = Trinity::StringTo<int32>(token); bonusListId && *bonusListId)
1191 bonusListIDs.push_back(*bonusListId);
1199 bonusListIDs.insert(bonusListIDs.begin(), contextBonuses.begin(), contextBonuses.end());
1200 std::ranges::sort(bonusListIDs);
1201 bonusListIDs.erase(std::unique(bonusListIDs.begin(), bonusListIDs.end()), bonusListIDs.end());
1218 if (destroyedItemCount > 0)
1224 uint32 unableToDestroyItemCount = -count - destroyedItemCount;
1225 if (unableToDestroyItemCount > 0)
1241 uint32 noSpaceForCount = 0;
1247 count -= noSpaceForCount;
1249 if (count == 0 || dest.empty())
1257 bonusListIDs.empty() ?
nullptr : &bonusListIDs);
1260 if (player == playerTarget)
1261 for (ItemPosCountVec::const_iterator itr = dest.begin(); itr != dest.end(); ++itr)
1265 if (count > 0 && item)
1269 if (player != playerTarget)
1270 playerTarget->
SendNewItem(item, count,
true,
false);
1273 if (noSpaceForCount > 0)
1307 if (*itemSetId == 0)
1314 std::vector<int32> bonusListIDs;
1319 if (
Optional<int32> bonusListId = Trinity::StringTo<int32>(token); bonusListId && *bonusListId)
1320 bonusListIDs.push_back(*bonusListId);
1329 playerTarget = player;
1333 for (
auto const& itemTemplatePair : its)
1335 if (itemTemplatePair.second.GetItemSet() != *itemSetId)
1343 std::vector<int32> bonusListIDsForItem = bonusListIDs;
1347 bonusListIDsForItem.insert(bonusListIDsForItem.begin(), contextBonuses.begin(), contextBonuses.end());
1351 bonusListIDsForItem.empty() ?
nullptr : &bonusListIDsForItem);
1356 if (player == playerTarget)
1360 if (player != playerTarget)
1365 player->
SendEquipError(msg,
nullptr,
nullptr, itemTemplatePair.first);
1436 if (level == 0 || level > max)
1473 Player* target = arg->GetConnectedPlayer();
1475 std::string targetName = arg->GetName();
1525 int64 muteTime = -1;
1536 uint8 raceid, classid = 0;
1540 uint32 totalPlayerTime = 0;
1550 char const* areaName =
nullptr;
1551 char const* zoneName =
nullptr;
1555 uint8 guildRankId = 0;
1556 std::string guildName;
1557 std::string guildRank;
1559 std::string officeNote;
1597 Field* fields = result->Fetch();
1598 totalPlayerTime = fields[0].
GetUInt32();
1624 Field* fields = result->Fetch();
1639 lastIp.append(
" (");
1640 lastIp.append(location->CountryName);
1660 std::string nameLink = handler->
playerLink(targetName);
1678 Field* fields = result2->Fetch();
1679 bool permanent = fields[1].
GetUInt64() != 0;
1680 banTime = !permanent ?
int64(fields[0].GetUInt32()) : 0;
1692 Field* fields = result4->Fetch();
1705 Field* fields5 = result5->Fetch();
1709 guildRankId = fields5[3].
GetUInt8();
1783 areaName = zoneName;
1798 if (!guildName.empty())
1804 if (!officeNote.empty())
1818 Field* fields = result6->Fetch();
1838 if (target->
IsPet())
1856 std::vector<RespawnInfo const*> data;
1862 if (info->gridId == gridId)
1872 std::string muteReasonStr{ muteReason };
1873 if (muteReason.empty())
1885 Player* target = player->GetConnectedPlayer();
1891 target = session->GetPlayer();
1898 std::string muteBy =
"";
1900 muteBy = gmPlayer->GetName();
1928 std::string nameLink = handler->
playerLink(*player);
1949 std::string targetName;
1958 target = session->GetPlayer();
1986 std::string nameLink = handler->
playerLink(targetName);
2029 Field* fields = result->Fetch();
2037 localtime_r(&sqlTime, &timeinfo);
2038 strftime(buffer,
sizeof(buffer),
"%Y-%m-%d %I:%M%p", &timeinfo);
2041 }
while (result->NextRow());
2084 if (info.TargetGUID.IsEmpty())
2086 else if (info.TargetGUID.IsPlayer())
2092 if (info.TargetGUID.IsEmpty())
2094 else if (info.TargetGUID.IsPlayer())
2200 damageInfo.
damage = damage;
2201 Unit::DealDamageMods(damageInfo.attacker, damageInfo.target, damageInfo.damage, &damageInfo.absorb);
2231 Player* target =
nullptr;
2233 if (args && args[0] !=
'\0')
2281 uint32 freezeDuration = 0;
2282 bool canApplyFreeze =
false;
2283 bool getDurationFromConfig =
false;
2298 getDurationFromConfig =
true;
2303 char const* arg1 = strtok((
char*)args,
" ");
2304 char const* arg2 = strtok(
nullptr,
" ");
2313 freezeDuration =
uint32(atoi(arg1));
2314 canApplyFreeze =
true;
2320 std::string name = arg1;
2326 freezeDuration =
uint32(atoi(arg2));
2327 canApplyFreeze =
true;
2330 getDurationFromConfig =
true;
2336 if (getDurationFromConfig)
2339 canApplyFreeze =
true;
2383 name = *targetNameArg;
2450 Field* fields = result->Fetch();
2451 std::string player = fields[0].
GetString();
2458 if (remaintime == -1)
2464 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
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
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 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)
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 SendNewItem(Item *item, uint32 quantity, bool received, bool created, bool broadcast=false, uint32 dungeonEncounterId=0)
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)
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
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
LocalizedString DisplayName
Player * GetConnectedPlayer() const
static Optional< PlayerIdentifier > FromTarget(ChatHandler *handler)
static Optional< PlayerIdentifier > FromTargetOrSelf(ChatHandler *handler)
struct GameObjectValue::@195 Building