38#if TRINITY_COMPILER == TRINITY_COMPILER_GNU
39#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
49 static std::vector<ChatCommand> modifyspeedCommandTable =
58 static std::vector<ChatCommand> modifyCommandTable =
82 static std::vector<ChatCommand> commandTable =
91 template<
typename... Args>
107 res = atoi((
char*)args) * multiplier;
108 resmax = atoi((
char*)args) * multiplier;
110 if (res < 1 || resmax < 1 || resmax < res)
164 int32 energy, energymax;
166 int8 const energyMultiplier = 10;
182 int8 const rageMultiplier = 10;
198 int8 const runeMultiplier = 10;
258 char* pspellflatid = strtok((
char*)args,
" ");
262 char* pop = strtok(
nullptr,
" ");
266 char* pval = strtok(
nullptr,
" ");
272 char* pmark = strtok(
nullptr,
" ");
274 uint8 spellflatid = atoi(pspellflatid);
275 uint8 op = atoi(pop);
283 if (target ==
nullptr)
299 data <<
uint8(spellflatid);
314 int tp = atoi((
char*)args);
335 else if (target->
IsPet())
343 ((
Pet*)target)->SetFreeTalentPoints(tp);
356 if (speed > maximumBound || speed < minimumBound)
376 if (player->IsInFlight() && checkInFlight)
391 speed = (float)atof((
char*)args);
392 return CheckModifySpeed(handler, target, speed, minimumBound, maximumBound, checkInFlight);
508 target->
Mount(mount);
533 if (strchr(args,
'g') || strchr(args,
's') || strchr(args,
'c'))
536 moneyToAddO = Trinity::StringTo<int32>(args);
541 int32 moneyToAdd = *moneyToAddO;
547 int32 newmoney =
int32(targetMoney) + moneyToAdd;
557 uint32 moneyToAddMsg = moneyToAdd * -1;
574 moneyToAdd -= targetMoney;
602 char* pField = strtok((
char*)args,
" ");
606 char* pBit = strtok(
nullptr,
" ");
610 uint16 field = atoi(pField);
619 if (bit < 1 || bit > 32)
626 if (target->
HasFlag(field, (1<<(bit-1))))
633 target->
SetFlag(field, (1<<(bit-1)));
671 if (drunklevel > 100)
675 target->SetDrunkValue(drunklevel);
701 uint32 factionId = atoi(factionTxt);
704 char *rankTxt = strtok(
nullptr,
" ");
705 if (!factionId || !rankTxt)
724 amount = atoi(rankTxt);
726 if ((amount == 0) && (rankTxt[0] !=
'-') && !isdigit((
unsigned char)rankTxt[0]))
728 std::string rankStr = rankTxt;
729 std::wstring wrankStr;
740 for (; rankThresholdItr != end; ++rankThresholdItr, ++r)
752 if (wrank.substr(0, wrankStr.size()) == wrankStr)
756 if (rankThresholdItr == end)
763 amount = *rankThresholdItr;
765 char *deltaTxt = strtok(
nullptr,
" ");
768 int32 toNextRank = 0;
769 auto nextThresholdItr = rankThresholdItr;
771 if (nextThresholdItr != end)
772 toNextRank = *nextThresholdItr - *rankThresholdItr;
774 int32 delta = atoi(deltaTxt);
775 if (delta < 0 || delta >= toNextRank)
829 uint32 anim_id = atoi((
char*)args);
875 char const* gender_str = (
char*)args;
876 int gender_len = strlen(gender_str);
880 if (!strncmp(gender_str,
"male", gender_len))
887 else if (!strncmp(gender_str,
"female", gender_len))
908 char const* gender_full = gender ?
"female" :
"male";
939 int32 xp = atoi((
char*)args);
960 target->
GiveXP(xp,
nullptr);
DBCStorage< FactionEntry > sFactionStore(FactionEntryfmt)
DBCStorage< CreatureDisplayInfoEntry > sCreatureDisplayInfoStore(CreatureDisplayInfofmt)
DBCStorage< FactionTemplateEntry > sFactionTemplateStore(FactionTemplateEntryfmt)
@ LANG_MUST_MALE_OR_FEMALE
@ LANG_YOURS_ASPEED_CHANGED
@ LANG_YOURS_MANA_CHANGED
@ LANG_COMMAND_FACTION_UNKNOWN
@ LANG_YOURS_FLY_SPEED_CHANGED
@ LANG_COMMAND_FACTION_DELTA
@ LANG_YOURS_SWIM_SPEED_CHANGED
@ LANG_YOU_TAKE_ALL_MONEY
@ LANG_YOURS_ALL_MONEY_GONE
@ LANG_YOURS_SPEED_CHANGED
@ LANG_YOURS_SIZE_CHANGED
@ LANG_YOU_CHANGE_RUNIC_POWER
@ LANG_COMMAND_MODIFY_HONOR
@ LANG_YOURS_SPELLFLATID_CHANGED
@ LANG_YOU_CHANGE_FLY_SPEED
@ LANG_YOU_CHANGE_FACTION
@ LANG_YOURS_RAGE_CHANGED
@ LANG_COMMAND_FACTION_NOREP_ERROR
@ LANG_YOU_CHANGE_BACK_SPEED
@ LANG_COMMAND_MODIFY_ARENA
@ LANG_COMMAND_INVALID_PARAM
@ LANG_YOU_CHANGE_SPELLFLATID
@ LANG_YOURS_ENERGY_CHANGED
@ LANG_COMMAND_MODIFY_REP
@ LANG_YOURS_BACK_SPEED_CHANGED
@ LANG_YOURS_RUNIC_POWER_CHANGED
@ LANG_YOU_CHANGE_SWIM_SPEED
@ LANG_YOUR_GENDER_CHANGED
#define TC_LOG_DEBUG(filterType__,...)
std::optional< T > Optional
Optional helper class to wrap optional values within.
uint32 const MAX_MONEY_AMOUNT
Role Based Access Control related classes definition.
uint32 const ReputationRankStrIndex[MAX_REPUTATION_RANK]
NPCFlags
Non Player Character flags.
void wstrToLower(std::wstring &str)
Optional< int32 > MoneyStringToMoney(std::string const &moneyString)
bool Utf8toWStr(char const *utf8str, size_t csize, wchar_t *wstr, size_t &wsize)
char * extractKeyFromLink(char *text, char const *linkType, char **something1=nullptr)
Player * getSelectedPlayerOrSelf()
static std::string PGetParseString(std::string_view fmt, Args &&... args)
WorldSession * GetSession()
virtual LocaleConstant GetSessionDbcLocale() const
virtual std::string GetNameLink() const
bool HasLowerSecurity(Player *target, ObjectGuid guid, bool strong=false)
Creature * getSelectedCreature()
void SetSentErrorMessage(bool val)
void PSendSysMessage(char const *fmt, Args &&... args)
virtual void SendSysMessage(std::string_view str, bool escapeCharacters=false)
virtual bool needReportToTarget(Player *chr) const
virtual char const * GetTrinityString(uint32 entry) const
static ObjectGuid const Empty
std::string ToString() const
void SetFlag(uint16 index, uint32 newFlag)
void RemoveFlag(uint16 index, uint32 oldFlag)
bool HasFlag(uint16 index, uint32 flag) const
static ObjectGuid GetGUID(Object const *o)
virtual void SetObjectScale(float scale)
uint16 GetValuesCount() const
static Player * ToPlayer(Object *o)
void SendTalentsInfoData(bool pet)
uint32 GetArenaPoints() const
void SetNativeGender(Gender gender) override
void SendDirectMessage(WorldPacket const *data) const
bool ModifyMoney(int32 amount, bool sendError=true)
void GiveXP(uint32 xp, Unit *victim, float group_rate=1.0f)
WorldSession * GetSession() const
uint32 GetHonorPoints() const
void SetFreeTalentPoints(uint32 points)
void ModifyHonorPoints(int32 value, CharacterDatabaseTransaction trans=CharacterDatabaseTransaction(nullptr))
void ModifyArenaPoints(int32 value, CharacterDatabaseTransaction trans=CharacterDatabaseTransaction(nullptr))
If trans is specified, honor save query will be added to trans.
ReputationMgr & GetReputationMgr()
void SetMoney(uint32 value)
void SendState(FactionState const *faction)
int32 GetReputation(uint32 faction_id) const
FactionState const * GetState(FactionEntry const *factionEntry) const
bool SetOneFactionReputation(FactionEntry const *factionEntry, int32 standing, bool incremental)
Public for chat command needs.
static std::set< int32 > const ReputationRankThresholds
void ReplaceAllDynamicFlags(uint32 flag) override
void SetGender(Gender gender)
NPCFlags GetNpcFlags() const
void SetFaction(uint32 faction) override
void ReplaceAllUnitFlags(UnitFlags flags)
void SetHealth(uint32 val)
UnitFlags GetUnitFlags() const
void SetMaxPower(Powers power, uint32 val)
void Mount(uint32 mount, uint32 vehicleId=0, uint32 creatureEntry=0)
void SetEmoteState(Emote emote)
void SetPower(Powers power, uint32 val, bool withPowerUpdate=true, bool force=false)
void SetPhaseMask(uint32 newPhaseMask, bool update) override
virtual void SetDisplayId(uint32 modelId)
void SetSpeedRate(UnitMoveType mtype, float rate)
void SetMaxHealth(uint32 val)
void ReplaceAllNpcFlags(NPCFlags flags)
uint32 GetDynamicFlags() const override
Player * GetPlayer() const
static bool CheckModifySpeed(ChatHandler *handler, Unit *target, float speed, float minimumBound, float maximumBound, bool checkInFlight=true)
static bool HandleModifyArenaCommand(ChatHandler *handler, char const *args)
static bool HandleModifyMorphCommand(ChatHandler *handler, uint32 display_id)
static bool HandleModifyFactionCommand(ChatHandler *handler, Optional< uint32 > factionid, Optional< uint32 > flag, Optional< uint32 > npcflag, Optional< uint32 > dyflag)
std::vector< ChatCommand > GetCommands() const override
static bool HandleModifyMountCommand(ChatHandler *handler, uint32 mount, float speed)
static bool HandleModifyRepCommand(ChatHandler *handler, char const *args)
static bool HandleModifyXPCommand(ChatHandler *handler, char const *args)
static bool HandleDeMorphCommand(ChatHandler *handler, char const *)
static void NotifyModification(ChatHandler *handler, Unit *target, TrinityStrings resourceMessage, TrinityStrings resourceReportMessage, Args &&... args)
static bool HandleModifyStandStateCommand(ChatHandler *handler, char const *args)
static bool HandleModifyBitCommand(ChatHandler *handler, char const *args)
static bool HandleModifyRageCommand(ChatHandler *handler, char const *args)
static bool HandleModifySpellCommand(ChatHandler *handler, char const *args)
static bool HandleModifyHPCommand(ChatHandler *handler, char const *args)
static bool HandleModifyPhaseCommand(ChatHandler *handler, uint32 phasemask)
static bool HandleModifyGenderCommand(ChatHandler *handler, char const *args)
static bool HandleModifyEnergyCommand(ChatHandler *handler, char const *args)
static bool HandleModifyDrunkCommand(ChatHandler *handler, char const *args)
static bool HandleModifyFlyCommand(ChatHandler *handler, char const *args)
static bool CheckModifyResources(ChatHandler *handler, char const *args, Player *target, int32 &res, int32 &resmax, int8 const multiplier=1)
static bool HandleModifyTalentCommand(ChatHandler *handler, char const *args)
static bool HandleModifyBWalkCommand(ChatHandler *handler, char const *args)
static bool CheckModifySpeed(ChatHandler *handler, char const *args, Unit *target, float &speed, float minimumBound, float maximumBound, bool checkInFlight=true)
static bool HandleModifySwimCommand(ChatHandler *handler, char const *args)
static bool HandleModifyMoneyCommand(ChatHandler *handler, char const *args)
static bool HandleModifyScaleCommand(ChatHandler *handler, char const *args)
static bool HandleModifyRunicPowerCommand(ChatHandler *handler, char const *args)
static bool HandleModifySpeedCommand(ChatHandler *handler, char const *args)
static bool HandleModifyManaCommand(ChatHandler *handler, char const *args)
static bool HandleModifyASpeedCommand(ChatHandler *handler, char const *args)
static bool HandleModifyHonorCommand(ChatHandler *handler, char const *args)
void AddSC_modify_commandscript()
@ SMSG_SET_FLAT_SPELL_MODIFIER
@ RBAC_PERM_COMMAND_MODIFY_MONEY
@ RBAC_PERM_COMMAND_MODIFY_RUNICPOWER
@ RBAC_PERM_COMMAND_MODIFY_MOUNT
@ RBAC_PERM_COMMAND_MODIFY_SPEED_SWIM
@ RBAC_PERM_COMMAND_MODIFY_PHASE
@ RBAC_PERM_COMMAND_MODIFY_SPEED_BACKWALK
@ RBAC_PERM_COMMAND_MODIFY_SPEED_FLY
@ RBAC_PERM_COMMAND_MODIFY_SPEED
@ RBAC_PERM_COMMAND_MODIFY_TALENTPOINTS
@ RBAC_PERM_COMMAND_MODIFY
@ RBAC_PERM_COMMAND_MODIFY_SCALE
@ RBAC_PERM_COMMAND_MODIFY_BIT
@ RBAC_PERM_COMMAND_MODIFY_SPEED_WALK
@ RBAC_PERM_COMMAND_MODIFY_HONOR
@ RBAC_PERM_COMMAND_MODIFY_FACTION
@ RBAC_PERM_COMMAND_DEMORPH
@ RBAC_PERM_COMMAND_MODIFY_SPELL
@ RBAC_PERM_COMMAND_MORPH
@ RBAC_PERM_COMMAND_MODIFY_RAGE
@ RBAC_PERM_COMMAND_MODIFY_GENDER
@ RBAC_PERM_COMMAND_MODIFY_MANA
@ RBAC_PERM_COMMAND_MODIFY_ARENAPOINTS
@ RBAC_PERM_COMMAND_MODIFY_XP
@ RBAC_PERM_COMMAND_MODIFY_STANDSTATE
@ RBAC_PERM_COMMAND_MODIFY_REPUTATION
@ RBAC_PERM_COMMAND_MODIFY_ENERGY
@ RBAC_PERM_COMMAND_MODIFY_SPEED_ALL
@ RBAC_PERM_COMMAND_MODIFY_HP
@ RBAC_PERM_COMMAND_MODIFY_DRUNK