AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
modify_commandscript Class Reference
Inheritance diagram for modify_commandscript:
CommandScript ScriptObject

Public Member Functions

 modify_commandscript ()
 
ChatCommandTable GetCommands () const override
 
virtual std::vector< Acore::ChatCommands::ChatCommandBuilderGetCommands () const =0
 
- Public Member Functions inherited from ScriptObject
virtual bool IsDatabaseBound () const
 
virtual bool isAfterLoadScript () const
 
virtual void checkValidity ()
 
const std::string & GetName () const
 

Static Public Member Functions

template<typename... Args>
static void NotifyModification (ChatHandler *handler, Unit *target, AcoreStrings resourceMessage, AcoreStrings resourceReportMessage, Args &&... args)
 
static bool CheckModifyInt32 (ChatHandler *handler, Player *target, int32 modifyValue)
 
static bool HandleModifyHPCommand (ChatHandler *handler, int32 healthPoints)
 
static bool HandleModifyManaCommand (ChatHandler *handler, int32 manaPoints)
 
static bool HandleModifyEnergyCommand (ChatHandler *handler, int32 energyPoints)
 
static bool HandleModifyRageCommand (ChatHandler *handler, int32 ragePoints)
 
static bool HandleModifyRunicPowerCommand (ChatHandler *handler, int32 runePoints)
 
static bool HandleModifyFactionCommand (ChatHandler *handler, Optional< uint32 > factionID, Optional< uint32 > flagID, Optional< uint32 > npcFlagID, Optional< uint32 > dynamicFlagID)
 
static bool HandleModifySpellCommand (ChatHandler *handler, uint8 spellFlatID, uint8 op, uint16 val, Optional< uint16 > mark)
 
static bool HandleModifyTalentCommand (ChatHandler *handler, uint32 talentPoints)
 
static bool CheckModifySpeed (ChatHandler *handler, Unit *target, float speed, float minimumBound, float maximumBound, bool checkInFlight=true)
 
static bool HandleModifyASpeedCommand (ChatHandler *handler, float allSpeed)
 
static bool HandleModifySpeedCommand (ChatHandler *handler, float speed)
 
static bool HandleModifySwimCommand (ChatHandler *handler, float swimSpeed)
 
static bool HandleModifyBWalkCommand (ChatHandler *handler, float backSpeed)
 
static bool HandleModifyFlyCommand (ChatHandler *handler, float flySpeed)
 
static bool HandleModifyScaleCommand (ChatHandler *handler, float scale)
 
static bool HandleModifyMountCommand (ChatHandler *handler, uint32 creatureDisplayID, Optional< float > speed)
 
static bool HandleModifyMoneyCommand (ChatHandler *handler, Tail money)
 
static bool HandleModifyBitCommand (ChatHandler *handler, uint16 field, uint32 bit)
 
static bool HandleModifyHonorCommand (ChatHandler *handler, int32 amount)
 
static bool HandleModifyDrunkCommand (ChatHandler *handler, uint8 drunklevel)
 
static bool HandleModifyRepCommand (ChatHandler *handler, uint32 factionId, Variant< int32, std::string > rank, Optional< int32 > delta)
 
static bool HandleMorphTargetCommand (ChatHandler *handler, uint32 displayID)
 
static bool HandleMorphResetCommand (ChatHandler *handler)
 
static bool HandleModifyPhaseCommand (ChatHandler *handler, uint32 phaseMask)
 
static bool HandleModifyStandStateCommand (ChatHandler *handler, uint32 anim)
 
static bool HandleModifyArenaCommand (ChatHandler *handler, int32 amount)
 
static bool HandleModifyGenderCommand (ChatHandler *handler, Tail genderString)
 

Additional Inherited Members

- Protected Member Functions inherited from CommandScript
 CommandScript (const char *name)
 
- Protected Member Functions inherited from ScriptObject
 ScriptObject (const char *name)
 
virtual ~ScriptObject ()=default
 

Detailed Description

Constructor & Destructor Documentation

◆ modify_commandscript()

modify_commandscript::modify_commandscript ( )
inline
40: CommandScript("modify_commandscript") { }
Definition: ScriptMgr.h:850

Member Function Documentation

◆ CheckModifyInt32()

static bool modify_commandscript::CheckModifyInt32 ( ChatHandler handler,
Player target,
int32  modifyValue 
)
inlinestatic
108 {
109 if (modifyValue < 1)
110 {
112 handler->SetSentErrorMessage(true);
113 return false;
114 }
115
116 if (!target)
117 {
119 handler->SetSentErrorMessage(true);
120 return false;
121 }
122
123 if (handler->HasLowerSecurity(target))
124 {
125 return false;
126 }
127
128 return true;
129 }
@ LANG_NO_CHAR_SELECTED
Definition: Language.h:148
@ LANG_BAD_VALUE
Definition: Language.h:147
void SetSentErrorMessage(bool val)
Definition: Chat.h:118
virtual void SendSysMessage(std::string_view str, bool escapeCharacters=false)
Definition: Chat.cpp:103
bool HasLowerSecurity(Player *target, ObjectGuid guid=ObjectGuid::Empty, bool strong=false)
Definition: Chat.cpp:53

References ChatHandler::HasLowerSecurity(), LANG_BAD_VALUE, LANG_NO_CHAR_SELECTED, ChatHandler::SendSysMessage(), and ChatHandler::SetSentErrorMessage().

Referenced by HandleModifyEnergyCommand(), HandleModifyHPCommand(), HandleModifyManaCommand(), HandleModifyRageCommand(), and HandleModifyRunicPowerCommand().

◆ CheckModifySpeed()

static bool modify_commandscript::CheckModifySpeed ( ChatHandler handler,
Unit target,
float  speed,
float  minimumBound,
float  maximumBound,
bool  checkInFlight = true 
)
inlinestatic
396 {
397 if (speed > maximumBound || speed < minimumBound)
398 {
400 handler->SetSentErrorMessage(true);
401 return false;
402 }
403
404 if (!target)
405 {
407 handler->SetSentErrorMessage(true);
408 return false;
409 }
410
411 if (Player* player = target->ToPlayer())
412 {
413 // check online security
414 if (handler->HasLowerSecurity(player))
415 {
416 return false;
417 }
418
419 if (player->IsInFlight() && checkInFlight)
420 {
421 handler->PSendSysMessage(LANG_CHAR_IN_FLIGHT, handler->GetNameLink(player).c_str());
422 handler->SetSentErrorMessage(true);
423 return false;
424 }
425 }
426
427 return true;
428 }
@ LANG_CHAR_IN_FLIGHT
Definition: Language.h:53
virtual std::string GetNameLink() const
Definition: Chat.h:84
void PSendSysMessage(char const *fmt, Args &&... args)
Definition: Chat.h:60
Player * ToPlayer()
Definition: Object.h:195
Definition: Player.h:1046

References ChatHandler::GetNameLink(), ChatHandler::HasLowerSecurity(), LANG_BAD_VALUE, LANG_CHAR_IN_FLIGHT, LANG_NO_CHAR_SELECTED, ChatHandler::PSendSysMessage(), ChatHandler::SendSysMessage(), ChatHandler::SetSentErrorMessage(), and Object::ToPlayer().

Referenced by HandleModifyASpeedCommand(), HandleModifyBWalkCommand(), HandleModifyFlyCommand(), HandleModifyMountCommand(), HandleModifySpeedCommand(), and HandleModifySwimCommand().

◆ GetCommands()

ChatCommandTable modify_commandscript::GetCommands ( ) const
inlineoverridevirtual

Implements CommandScript.

43 {
44 static ChatCommandTable modifyspeedCommandTable =
45 {
46 { "fly", HandleModifyFlyCommand, SEC_GAMEMASTER, Console::No },
47 { "all", HandleModifyASpeedCommand, SEC_GAMEMASTER, Console::No },
48 { "walk", HandleModifySpeedCommand, SEC_GAMEMASTER, Console::No },
49 { "backwalk", HandleModifyBWalkCommand, SEC_GAMEMASTER, Console::No },
50 { "swim", HandleModifySwimCommand, SEC_GAMEMASTER, Console::No },
51 { "", HandleModifyASpeedCommand, SEC_GAMEMASTER, Console::No }
52 };
53
54 static ChatCommandTable modifyCommandTable =
55 {
56 { "hp", HandleModifyHPCommand, SEC_GAMEMASTER, Console::No },
57 { "mana", HandleModifyManaCommand, SEC_GAMEMASTER, Console::No },
58 { "rage", HandleModifyRageCommand, SEC_GAMEMASTER, Console::No },
59 { "runicpower", HandleModifyRunicPowerCommand, SEC_GAMEMASTER, Console::No },
60 { "energy", HandleModifyEnergyCommand, SEC_GAMEMASTER, Console::No },
61 { "money", HandleModifyMoneyCommand, SEC_GAMEMASTER, Console::No },
62 { "scale", HandleModifyScaleCommand, SEC_GAMEMASTER, Console::No },
63 { "bit", HandleModifyBitCommand, SEC_GAMEMASTER, Console::No },
64 { "faction", HandleModifyFactionCommand, SEC_ADMINISTRATOR, Console::No },
65 { "spell", HandleModifySpellCommand, SEC_CONSOLE, Console::No },
66 { "talentpoints", HandleModifyTalentCommand, SEC_GAMEMASTER, Console::No },
67 { "mount", HandleModifyMountCommand, SEC_GAMEMASTER, Console::No },
68 { "honor", HandleModifyHonorCommand, SEC_GAMEMASTER, Console::No },
69 { "reputation", HandleModifyRepCommand, SEC_GAMEMASTER, Console::No },
70 { "arenapoints", HandleModifyArenaCommand, SEC_GAMEMASTER, Console::No },
71 { "drunk", HandleModifyDrunkCommand, SEC_GAMEMASTER, Console::No },
72 { "standstate", HandleModifyStandStateCommand, SEC_GAMEMASTER, Console::No },
73 { "phase", HandleModifyPhaseCommand, SEC_GAMEMASTER, Console::No },
74 { "gender", HandleModifyGenderCommand, SEC_GAMEMASTER, Console::No },
75 { "speed", modifyspeedCommandTable }
76 };
77
78 static ChatCommandTable morphCommandTable =
79 {
80 { "reset", HandleMorphResetCommand, SEC_MODERATOR, Console::No },
81 { "target", HandleMorphTargetCommand, SEC_MODERATOR, Console::No }
82 };
83
84 static ChatCommandTable commandTable =
85 {
86 { "morph", morphCommandTable },
87 { "modify", modifyCommandTable }
88 };
89
90 return commandTable;
91 }
@ SEC_ADMINISTRATOR
Definition: Common.h:69
@ SEC_GAMEMASTER
Definition: Common.h:68
@ SEC_MODERATOR
Definition: Common.h:67
@ SEC_CONSOLE
Definition: Common.h:70
std::vector< ChatCommandBuilder > ChatCommandTable
Definition: ChatCommand.h:50
static bool HandleModifyScaleCommand(ChatHandler *handler, float scale)
Definition: cs_modify.cpp:504
static bool HandleModifyEnergyCommand(ChatHandler *handler, int32 energyPoints)
Definition: cs_modify.cpp:178
static bool HandleModifyBWalkCommand(ChatHandler *handler, float backSpeed)
Definition: cs_modify.cpp:476
static bool HandleModifyFlyCommand(ChatHandler *handler, float flySpeed)
Definition: cs_modify.cpp:490
static bool HandleModifyPhaseCommand(ChatHandler *handler, uint32 phaseMask)
Definition: cs_modify.cpp:897
static bool HandleModifyHPCommand(ChatHandler *handler, int32 healthPoints)
Definition: cs_modify.cpp:132
static bool HandleMorphTargetCommand(ChatHandler *handler, uint32 displayID)
Definition: cs_modify.cpp:862
static bool HandleModifySpeedCommand(ChatHandler *handler, float speed)
Definition: cs_modify.cpp:448
static bool HandleModifyASpeedCommand(ChatHandler *handler, float allSpeed)
Definition: cs_modify.cpp:431
static bool HandleModifyMountCommand(ChatHandler *handler, uint32 creatureDisplayID, Optional< float > speed)
Definition: cs_modify.cpp:538
static bool HandleModifyBitCommand(ChatHandler *handler, uint16 field, uint32 bit)
Definition: cs_modify.cpp:674
static bool HandleMorphResetCommand(ChatHandler *handler)
Definition: cs_modify.cpp:880
static bool HandleModifyMoneyCommand(ChatHandler *handler, Tail money)
Definition: cs_modify.cpp:577
static bool HandleModifySpellCommand(ChatHandler *handler, uint8 spellFlatID, uint8 op, uint16 val, Optional< uint16 > mark)
Definition: cs_modify.cpp:316
static bool HandleModifyStandStateCommand(ChatHandler *handler, uint32 anim)
Definition: cs_modify.cpp:914
static bool HandleModifyRepCommand(ChatHandler *handler, uint32 factionId, Variant< int32, std::string > rank, Optional< int32 > delta)
Definition: cs_modify.cpp:756
static bool HandleModifyDrunkCommand(ChatHandler *handler, uint8 drunklevel)
Definition: cs_modify.cpp:741
static bool HandleModifySwimCommand(ChatHandler *handler, float swimSpeed)
Definition: cs_modify.cpp:462
static bool HandleModifyRageCommand(ChatHandler *handler, int32 ragePoints)
Definition: cs_modify.cpp:205
static bool HandleModifyFactionCommand(ChatHandler *handler, Optional< uint32 > factionID, Optional< uint32 > flagID, Optional< uint32 > npcFlagID, Optional< uint32 > dynamicFlagID)
Definition: cs_modify.cpp:255
static bool HandleModifyRunicPowerCommand(ChatHandler *handler, int32 runePoints)
Definition: cs_modify.cpp:230
static bool HandleModifyHonorCommand(ChatHandler *handler, int32 amount)
Definition: cs_modify.cpp:718
static bool HandleModifyManaCommand(ChatHandler *handler, int32 manaPoints)
Definition: cs_modify.cpp:155
static bool HandleModifyGenderCommand(ChatHandler *handler, Tail genderString)
Definition: cs_modify.cpp:937
static bool HandleModifyTalentCommand(ChatHandler *handler, uint32 talentPoints)
Definition: cs_modify.cpp:349
static bool HandleModifyArenaCommand(ChatHandler *handler, int32 amount)
Definition: cs_modify.cpp:920

References HandleModifyArenaCommand(), HandleModifyASpeedCommand(), HandleModifyBitCommand(), HandleModifyBWalkCommand(), HandleModifyDrunkCommand(), HandleModifyEnergyCommand(), HandleModifyFactionCommand(), HandleModifyFlyCommand(), HandleModifyGenderCommand(), HandleModifyHonorCommand(), HandleModifyHPCommand(), HandleModifyManaCommand(), HandleModifyMoneyCommand(), HandleModifyMountCommand(), HandleModifyPhaseCommand(), HandleModifyRageCommand(), HandleModifyRepCommand(), HandleModifyRunicPowerCommand(), HandleModifyScaleCommand(), HandleModifySpeedCommand(), HandleModifySpellCommand(), HandleModifyStandStateCommand(), HandleModifySwimCommand(), HandleModifyTalentCommand(), HandleMorphResetCommand(), HandleMorphTargetCommand(), SEC_ADMINISTRATOR, SEC_CONSOLE, SEC_GAMEMASTER, and SEC_MODERATOR.

◆ HandleModifyArenaCommand()

static bool modify_commandscript::HandleModifyArenaCommand ( ChatHandler handler,
int32  amount 
)
inlinestatic
921 {
922 Player* target = handler->getSelectedPlayer();
923 if (!target)
924 {
926 handler->SetSentErrorMessage(true);
927 return false;
928 }
929
930 target->ModifyArenaPoints(amount);
931
932 handler->PSendSysMessage(LANG_COMMAND_MODIFY_ARENA, handler->GetNameLink(target).c_str(), target->GetArenaPoints());
933
934 return true;
935 }
@ LANG_COMMAND_MODIFY_ARENA
Definition: Language.h:347
@ LANG_PLAYER_NOT_FOUND
Definition: Language.h:522
Player * getSelectedPlayer() const
Definition: Chat.cpp:301
uint32 GetArenaPoints() const
Definition: Player.h:2104
void ModifyArenaPoints(int32 value, CharacterDatabaseTransaction trans=CharacterDatabaseTransaction(nullptr))
If trans is specified, honor save query will be added to trans.
Definition: Player.cpp:6186

References Player::GetArenaPoints(), ChatHandler::GetNameLink(), ChatHandler::getSelectedPlayer(), LANG_COMMAND_MODIFY_ARENA, LANG_PLAYER_NOT_FOUND, Player::ModifyArenaPoints(), ChatHandler::PSendSysMessage(), ChatHandler::SendSysMessage(), and ChatHandler::SetSentErrorMessage().

Referenced by GetCommands().

◆ HandleModifyASpeedCommand()

static bool modify_commandscript::HandleModifyASpeedCommand ( ChatHandler handler,
float  allSpeed 
)
inlinestatic
432 {
433 Player* target = handler->getSelectedPlayerOrSelf();
434 if (CheckModifySpeed(handler, target, allSpeed, 0.1f, 50.0f))
435 {
437 target->SetSpeed(MOVE_WALK, allSpeed);
438 target->SetSpeed(MOVE_RUN, allSpeed);
439 target->SetSpeed(MOVE_SWIM, allSpeed);
440 target->SetSpeed(MOVE_FLIGHT, allSpeed);
441 return true;
442 }
443
444 return false;
445 }
@ MOVE_FLIGHT
Definition: Unit.h:384
@ MOVE_SWIM
Definition: Unit.h:381
@ MOVE_RUN
Definition: Unit.h:379
@ MOVE_WALK
Definition: Unit.h:378
@ LANG_YOURS_ASPEED_CHANGED
Definition: Language.h:173
@ LANG_YOU_CHANGE_ASPEED
Definition: Language.h:172
Player * getSelectedPlayerOrSelf() const
Definition: Chat.cpp:345
void SetSpeed(UnitMoveType mtype, float rate, bool forced=false)
Definition: Unit.cpp:14323
static bool CheckModifySpeed(ChatHandler *handler, Unit *target, float speed, float minimumBound, float maximumBound, bool checkInFlight=true)
Definition: cs_modify.cpp:395
static void NotifyModification(ChatHandler *handler, Unit *target, AcoreStrings resourceMessage, AcoreStrings resourceReportMessage, Args &&... args)
Definition: cs_modify.cpp:94

References CheckModifySpeed(), ChatHandler::getSelectedPlayerOrSelf(), LANG_YOU_CHANGE_ASPEED, LANG_YOURS_ASPEED_CHANGED, MOVE_FLIGHT, MOVE_RUN, MOVE_SWIM, MOVE_WALK, NotifyModification(), and Unit::SetSpeed().

Referenced by GetCommands().

◆ HandleModifyBitCommand()

static bool modify_commandscript::HandleModifyBitCommand ( ChatHandler handler,
uint16  field,
uint32  bit 
)
inlinestatic
675 {
676 Unit* target = handler->getSelectedUnit();
677 if (!target)
678 {
680 handler->SetSentErrorMessage(true);
681 return false;
682 }
683
684 // check online security
685 if (target->GetTypeId() == TYPEID_PLAYER && handler->HasLowerSecurity(target->ToPlayer()))
686 {
687 return false;
688 }
689
690 if (field < OBJECT_END || field >= target->GetValuesCount())
691 {
693 handler->SetSentErrorMessage(true);
694 return false;
695 }
696
697 if (bit < 1 || bit > 32)
698 {
700 handler->SetSentErrorMessage(true);
701 return false;
702 }
703
704 if (target->HasFlag(field, (1 << (bit - 1))))
705 {
706 target->RemoveFlag(field, (1 << (bit - 1)));
707 handler->PSendSysMessage(LANG_REMOVE_BIT, bit, field);
708 }
709 else
710 {
711 target->SetFlag(field, (1 << (bit - 1)));
712 handler->PSendSysMessage(LANG_SET_BIT, bit, field);
713 }
714
715 return true;
716 }
@ TYPEID_PLAYER
Definition: ObjectGuid.h:38
@ LANG_REMOVE_BIT
Definition: Language.h:200
@ LANG_SET_BIT
Definition: Language.h:201
Unit * getSelectedUnit() const
Definition: Chat.cpp:313
TypeID GetTypeId() const
Definition: Object.h:121
void SetFlag(uint16 index, uint32 newFlag)
Definition: Object.cpp:845
void RemoveFlag(uint16 index, uint32 oldFlag)
Definition: Object.cpp:860
bool HasFlag(uint16 index, uint32 flag) const
Definition: Object.cpp:889
uint16 GetValuesCount() const
Definition: Object.h:181
Definition: Unit.h:1290

References ChatHandler::getSelectedUnit(), Object::GetTypeId(), Object::GetValuesCount(), Object::HasFlag(), ChatHandler::HasLowerSecurity(), LANG_BAD_VALUE, LANG_NO_CHAR_SELECTED, LANG_REMOVE_BIT, LANG_SET_BIT, ChatHandler::PSendSysMessage(), Object::RemoveFlag(), ChatHandler::SendSysMessage(), Object::SetFlag(), ChatHandler::SetSentErrorMessage(), Object::ToPlayer(), and TYPEID_PLAYER.

Referenced by GetCommands().

◆ HandleModifyBWalkCommand()

static bool modify_commandscript::HandleModifyBWalkCommand ( ChatHandler handler,
float  backSpeed 
)
inlinestatic
477 {
478 Player* target = handler->getSelectedPlayerOrSelf();
479 if (CheckModifySpeed(handler, target, backSpeed, 0.1f, 50.0f))
480 {
482 target->SetSpeedRate(MOVE_RUN_BACK, backSpeed);
483 return true;
484 }
485
486 return false;
487 }
@ MOVE_RUN_BACK
Definition: Unit.h:380
@ LANG_YOU_CHANGE_BACK_SPEED
Definition: Language.h:178
@ LANG_YOURS_BACK_SPEED_CHANGED
Definition: Language.h:179
void SetSpeedRate(UnitMoveType mtype, float rate)
Definition: Unit.h:2250

References CheckModifySpeed(), ChatHandler::getSelectedPlayerOrSelf(), LANG_YOU_CHANGE_BACK_SPEED, LANG_YOURS_BACK_SPEED_CHANGED, MOVE_RUN_BACK, NotifyModification(), and Unit::SetSpeedRate().

Referenced by GetCommands().

◆ HandleModifyDrunkCommand()

static bool modify_commandscript::HandleModifyDrunkCommand ( ChatHandler handler,
uint8  drunklevel 
)
inlinestatic
742 {
743 if (drunklevel > 100)
744 {
745 drunklevel = 100;
746 }
747
748 if (Player* target = handler->getSelectedPlayer())
749 {
750 target->SetDrunkValue(drunklevel);
751 }
752
753 return true;
754 }

References ChatHandler::getSelectedPlayer().

Referenced by GetCommands().

◆ HandleModifyEnergyCommand()

static bool modify_commandscript::HandleModifyEnergyCommand ( ChatHandler handler,
int32  energyPoints 
)
inlinestatic
179 {
180 Player* target = handler->getSelectedPlayer();
181
182 if (!CheckModifyInt32(handler, target, energyPoints))
183 {
184 return false;
185 }
186
187 energyPoints *= 10;
188
189 handler->PSendSysMessage(LANG_YOU_CHANGE_ENERGY, handler->GetNameLink(target).c_str(), energyPoints / 10, energyPoints / 10);
190
191 if (handler->needReportToTarget(target))
192 {
193 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_ENERGY_CHANGED, handler->GetNameLink().c_str(), energyPoints / 10, energyPoints / 10);
194 }
195
196 target->SetMaxPower(POWER_ENERGY, energyPoints);
197 target->SetPower(POWER_ENERGY, energyPoints);
198
200
201 return true;
202 }
#define LOG_DEBUG(filterType__,...)
Definition: Log.h:171
@ LANG_YOU_CHANGE_ENERGY
Definition: Language.h:155
@ LANG_CURRENT_ENERGY
Definition: Language.h:158
@ LANG_YOURS_ENERGY_CHANGED
Definition: Language.h:156
@ POWER_ENERGY
Definition: SharedDefines.h:244
Definition: Chat.h:38
virtual char const * GetAcoreString(uint32 entry) const
Definition: Chat.cpp:42
virtual bool needReportToTarget(Player *chr) const
Definition: Chat.cpp:776
WorldSession * GetSession() const
Definition: Player.h:1948
void SetPower(Powers power, uint32 val, bool withPowerUpdate=true, bool fromRegenerate=false)
Definition: Unit.cpp:15458
void SetMaxPower(Powers power, uint32 val)
Definition: Unit.cpp:15523
uint32 GetMaxPower(Powers power) const
Definition: Unit.h:1462
static bool CheckModifyInt32(ChatHandler *handler, Player *target, int32 modifyValue)
Definition: cs_modify.cpp:107

References CheckModifyInt32(), ChatHandler::GetAcoreString(), Unit::GetMaxPower(), ChatHandler::GetNameLink(), ChatHandler::getSelectedPlayer(), Player::GetSession(), LANG_CURRENT_ENERGY, LANG_YOU_CHANGE_ENERGY, LANG_YOURS_ENERGY_CHANGED, LOG_DEBUG, ChatHandler::needReportToTarget(), POWER_ENERGY, ChatHandler::PSendSysMessage(), Unit::SetMaxPower(), and Unit::SetPower().

Referenced by GetCommands().

◆ HandleModifyFactionCommand()

static bool modify_commandscript::HandleModifyFactionCommand ( ChatHandler handler,
Optional< uint32 factionID,
Optional< uint32 flagID,
Optional< uint32 npcFlagID,
Optional< uint32 dynamicFlagID 
)
inlinestatic
256 {
257 Creature* target = handler->getSelectedCreature();
258 if (!target)
259 {
261 handler->SetSentErrorMessage(true);
262 return false;
263 }
264
265 if (!factionID)
266 {
267 uint32 factionid = target->GetFaction();
268 uint32 flag = target->GetUnitFlags();
269 uint32 npcflag = target->GetNpcFlags();
270 uint32 dyflag = target->GetDynamicFlags();
271 handler->PSendSysMessage(LANG_CURRENT_FACTION, target->GetGUID().GetCounter(), factionid, flag, npcflag, dyflag);
272 return true;
273 }
274
275 uint32 factionid = factionID.value();
276 UnitFlags flag;
277 NPCFlags npcflag;
278 uint32 dyflag;
279
280 auto pflag = flagID;
281 if (!pflag)
282 flag = target->GetUnitFlags();
283 else
284 flag = UnitFlags(*pflag);
285
286 auto pnpcflag = npcFlagID;
287 if (!pnpcflag)
288 npcflag = target->GetNpcFlags();
289 else
290 npcflag = NPCFlags(*npcFlagID);
291
292 auto pdyflag = dynamicFlagID;
293 if (!pdyflag)
294 dyflag = target->GetDynamicFlags();
295 else
296 dyflag = *dynamicFlagID;
297
298 if (!sFactionTemplateStore.LookupEntry(factionid))
299 {
300 handler->PSendSysMessage(LANG_WRONG_FACTION, factionid);
301 handler->SetSentErrorMessage(true);
302 return false;
303 }
304
305 handler->PSendSysMessage(LANG_YOU_CHANGE_FACTION, target->GetGUID().GetCounter(), factionid, flag, npcflag, dyflag);
306
307 target->SetFaction(factionid);
308 target->ReplaceAllUnitFlags(flag);
309 target->ReplaceAllNpcFlags(npcflag);
310 target->ReplaceAllDynamicFlags(dyflag);
311
312 return true;
313 }
std::uint32_t uint32
Definition: Define.h:108
DBCStorage< FactionTemplateEntry > sFactionTemplateStore(FactionTemplateEntryfmt)
NPCFlags
Non Player Character flags.
Definition: Unit.h:514
UnitFlags
Definition: Unit.h:446
@ LANG_SELECT_CREATURE
Definition: Language.h:32
@ LANG_WRONG_FACTION
Definition: Language.h:163
@ LANG_CURRENT_FACTION
Definition: Language.h:162
@ LANG_YOU_CHANGE_FACTION
Definition: Language.h:164
Creature * getSelectedCreature() const
Definition: Chat.cpp:337
Definition: Creature.h:46
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:106
LowType GetCounter() const
Definition: ObjectGuid.h:147
void ReplaceAllDynamicFlags(uint32 flag) override
Definition: Unit.h:1326
void SetFaction(uint32 faction)
Definition: Unit.cpp:10029
NPCFlags GetNpcFlags() const
Definition: Unit.h:1645
void ReplaceAllUnitFlags(UnitFlags flags)
Definition: Unit.h:1483
UnitFlags GetUnitFlags() const
Definition: Unit.h:1479
uint32 GetFaction() const
Definition: Unit.h:1495
void ReplaceAllNpcFlags(NPCFlags flags)
Definition: Unit.h:1649
uint32 GetDynamicFlags() const override
Definition: Unit.h:1325

References ObjectGuid::GetCounter(), Unit::GetDynamicFlags(), Unit::GetFaction(), Object::GetGUID(), Unit::GetNpcFlags(), ChatHandler::getSelectedCreature(), Unit::GetUnitFlags(), LANG_CURRENT_FACTION, LANG_SELECT_CREATURE, LANG_WRONG_FACTION, LANG_YOU_CHANGE_FACTION, ChatHandler::PSendSysMessage(), Unit::ReplaceAllDynamicFlags(), Unit::ReplaceAllNpcFlags(), Unit::ReplaceAllUnitFlags(), ChatHandler::SendSysMessage(), Unit::SetFaction(), ChatHandler::SetSentErrorMessage(), and sFactionTemplateStore.

Referenced by GetCommands().

◆ HandleModifyFlyCommand()

static bool modify_commandscript::HandleModifyFlyCommand ( ChatHandler handler,
float  flySpeed 
)
inlinestatic
491 {
492 Player* target = handler->getSelectedPlayerOrSelf();
493 if (CheckModifySpeed(handler, target, flySpeed, 0.1f, 50.0f, false))
494 {
496 target->SetSpeedRate(MOVE_FLIGHT, flySpeed);
497 return true;
498 }
499
500 return false;
501 }
@ LANG_YOURS_FLY_SPEED_CHANGED
Definition: Language.h:181
@ LANG_YOU_CHANGE_FLY_SPEED
Definition: Language.h:180

References CheckModifySpeed(), ChatHandler::getSelectedPlayerOrSelf(), LANG_YOU_CHANGE_FLY_SPEED, LANG_YOURS_FLY_SPEED_CHANGED, MOVE_FLIGHT, NotifyModification(), and Unit::SetSpeedRate().

Referenced by GetCommands().

◆ HandleModifyGenderCommand()

static bool modify_commandscript::HandleModifyGenderCommand ( ChatHandler handler,
Tail  genderString 
)
inlinestatic
938 {
939 if (genderString.empty())
940 {
941 return false;
942 }
943
944 Player* target = handler->getSelectedPlayer();
945 if (!target)
946 {
948 handler->SetSentErrorMessage(true);
949 return false;
950 }
951
952 PlayerInfo const* info = sObjectMgr->GetPlayerInfo(target->getRace(), target->getClass());
953 if (!info)
954 {
955 return false;
956 }
957
958 Gender gender;
959
960 if (StringEqualI(genderString, "male")) // MALE
961 {
962 if (target->getGender() == GENDER_MALE)
963 return true;
964
965 gender = GENDER_MALE;
966 }
967 else if (StringEqualI(genderString, "female")) // FEMALE
968 {
969 if (target->getGender() == GENDER_FEMALE)
970 return true;
971
972 gender = GENDER_FEMALE;
973 }
974 else
975 {
977 handler->SetSentErrorMessage(true);
978 return false;
979 }
980
981 // Set gender
982 target->SetByteValue(UNIT_FIELD_BYTES_0, 2, gender);
983 target->SetByteValue(PLAYER_BYTES_3, 0, gender);
984
985 // Change display ID
986 target->InitDisplayIds();
987
988 char const* gender_full = gender ? "female" : "male";
989
990 handler->PSendSysMessage(LANG_YOU_CHANGE_GENDER, handler->GetNameLink(target).c_str(), gender_full);
991
992 if (handler->needReportToTarget(target))
993 {
994 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOUR_GENDER_CHANGED, gender_full, handler->GetNameLink().c_str());
995 }
996
997 return true;
998 }
bool StringEqualI(std::string_view a, std::string_view b)
Definition: Util.cpp:588
@ PLAYER_BYTES_3
Definition: UpdateFields.h:183
@ UNIT_FIELD_BYTES_0
Definition: UpdateFields.h:95
#define sObjectMgr
Definition: ObjectMgr.h:1640
@ LANG_MUST_MALE_OR_FEMALE
Definition: Language.h:881
@ LANG_YOU_CHANGE_GENDER
Definition: Language.h:882
@ LANG_YOUR_GENDER_CHANGED
Definition: Language.h:883
Gender
Definition: SharedDefines.h:59
@ GENDER_MALE
Definition: SharedDefines.h:60
@ GENDER_FEMALE
Definition: SharedDefines.h:61
void SetByteValue(uint16 index, uint8 offset, uint8 value)
Definition: Object.cpp:750
Definition: Player.h:336
void InitDisplayIds()
Definition: Player.cpp:10514
uint8 getGender() const
Definition: Unit.h:1428
uint8 getClass() const
Definition: Unit.h:1426
uint8 getRace(bool original=false) const
Definition: Unit.cpp:21185

References GENDER_FEMALE, GENDER_MALE, Unit::getClass(), Unit::getGender(), ChatHandler::GetNameLink(), Unit::getRace(), ChatHandler::getSelectedPlayer(), Player::GetSession(), Player::InitDisplayIds(), LANG_MUST_MALE_OR_FEMALE, LANG_PLAYER_NOT_FOUND, LANG_YOU_CHANGE_GENDER, LANG_YOUR_GENDER_CHANGED, ChatHandler::needReportToTarget(), PLAYER_BYTES_3, ChatHandler::PSendSysMessage(), ChatHandler::SendSysMessage(), Object::SetByteValue(), ChatHandler::SetSentErrorMessage(), sObjectMgr, StringEqualI(), and UNIT_FIELD_BYTES_0.

Referenced by GetCommands().

◆ HandleModifyHonorCommand()

static bool modify_commandscript::HandleModifyHonorCommand ( ChatHandler handler,
int32  amount 
)
inlinestatic
719 {
720 Player* target = handler->getSelectedPlayer();
721 if (!target)
722 {
724 handler->SetSentErrorMessage(true);
725 return false;
726 }
727
728 // check online security
729 if (handler->HasLowerSecurity(target))
730 {
731 return false;
732 }
733
734 target->ModifyHonorPoints(amount);
735
736 handler->PSendSysMessage(LANG_COMMAND_MODIFY_HONOR, handler->GetNameLink(target).c_str(), target->GetHonorPoints());
737
738 return true;
739 }
@ LANG_COMMAND_MODIFY_HONOR
Definition: Language.h:338
uint32 GetHonorPoints() const
Definition: Player.h:2103
void ModifyHonorPoints(int32 value, CharacterDatabaseTransaction trans=CharacterDatabaseTransaction(nullptr))
Definition: Player.cpp:6170

References Player::GetHonorPoints(), ChatHandler::GetNameLink(), ChatHandler::getSelectedPlayer(), ChatHandler::HasLowerSecurity(), LANG_COMMAND_MODIFY_HONOR, LANG_PLAYER_NOT_FOUND, Player::ModifyHonorPoints(), ChatHandler::PSendSysMessage(), ChatHandler::SendSysMessage(), and ChatHandler::SetSentErrorMessage().

Referenced by GetCommands().

◆ HandleModifyHPCommand()

static bool modify_commandscript::HandleModifyHPCommand ( ChatHandler handler,
int32  healthPoints 
)
inlinestatic
133 {
134 Player* target = handler->getSelectedPlayer();
135
136 if (!CheckModifyInt32(handler, target, healthPoints))
137 {
138 return false;
139 }
140
141 handler->PSendSysMessage(LANG_YOU_CHANGE_HP, handler->GetNameLink(target).c_str(), healthPoints, healthPoints);
142
143 if (handler->needReportToTarget(target))
144 {
145 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_HP_CHANGED, handler->GetNameLink().c_str(), healthPoints, healthPoints);
146 }
147
148 target->SetMaxHealth(healthPoints);
149 target->SetHealth(healthPoints);
150
151 return true;
152 }
@ LANG_YOURS_HP_CHANGED
Definition: Language.h:152
@ LANG_YOU_CHANGE_HP
Definition: Language.h:151
void SetHealth(uint32 val)
Definition: Unit.cpp:15370
void SetMaxHealth(uint32 val)
Definition: Unit.cpp:15420

References CheckModifyInt32(), ChatHandler::GetNameLink(), ChatHandler::getSelectedPlayer(), Player::GetSession(), LANG_YOU_CHANGE_HP, LANG_YOURS_HP_CHANGED, ChatHandler::needReportToTarget(), ChatHandler::PSendSysMessage(), Unit::SetHealth(), and Unit::SetMaxHealth().

Referenced by GetCommands().

◆ HandleModifyManaCommand()

static bool modify_commandscript::HandleModifyManaCommand ( ChatHandler handler,
int32  manaPoints 
)
inlinestatic
156 {
157 Player* target = handler->getSelectedPlayer();
158
159 if (!CheckModifyInt32(handler, target, manaPoints))
160 {
161 return false;
162 }
163
164 handler->PSendSysMessage(LANG_YOU_CHANGE_MANA, handler->GetNameLink(target).c_str(), manaPoints, manaPoints);
165
166 if (handler->needReportToTarget(target))
167 {
168 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_MANA_CHANGED, handler->GetNameLink().c_str(), manaPoints, manaPoints);
169 }
170
171 target->SetMaxPower(POWER_MANA, manaPoints);
172 target->SetPower(POWER_MANA, manaPoints);
173
174 return true;
175 }
@ LANG_YOURS_MANA_CHANGED
Definition: Language.h:154
@ LANG_YOU_CHANGE_MANA
Definition: Language.h:153
@ POWER_MANA
Definition: SharedDefines.h:241

References CheckModifyInt32(), ChatHandler::GetNameLink(), ChatHandler::getSelectedPlayer(), Player::GetSession(), LANG_YOU_CHANGE_MANA, LANG_YOURS_MANA_CHANGED, ChatHandler::needReportToTarget(), POWER_MANA, ChatHandler::PSendSysMessage(), Unit::SetMaxPower(), and Unit::SetPower().

Referenced by GetCommands().

◆ HandleModifyMoneyCommand()

static bool modify_commandscript::HandleModifyMoneyCommand ( ChatHandler handler,
Tail  money 
)
inlinestatic
578 {
579 if (money.empty())
580 {
581 return false;
582 }
583
584 Player* target = handler->getSelectedPlayer();
585 if (!target)
586 {
588 handler->SetSentErrorMessage(true);
589 return false;
590 }
591
592 // check online security
593 if (handler->HasLowerSecurity(target))
594 {
595 return false;
596 }
597
598 auto IsExistWord = [](std::string_view line, std::initializer_list<std::string_view> words)
599 {
600 for (auto const& word : words)
601 {
602 if (line.find(word) != std::string_view::npos)
603 {
604 return true;
605 }
606 }
607
608 return false;
609 };
610
611 Optional<int32> moneyToAddO = 0;
612 if (IsExistWord(money, { "g", "s", "c" }))
613 {
614 moneyToAddO = MoneyStringToMoney(money);
615 }
616 else
617 {
618 moneyToAddO = Acore::StringTo<int32>(money);
619 }
620
621 if (!moneyToAddO)
622 {
623 return false;
624 }
625
626 int32 moneyToAdd = *moneyToAddO;
627 uint32 targetMoney = target->GetMoney();
628
629 if (moneyToAdd < 0)
630 {
631 int32 newmoney = int32(targetMoney) + moneyToAdd;
632
633 LOG_DEBUG("chat.system", handler->GetAcoreString(LANG_CURRENT_MONEY), targetMoney, moneyToAdd, newmoney);
634 if (newmoney <= 0)
635 {
636 handler->PSendSysMessage(LANG_YOU_TAKE_ALL_MONEY, handler->GetNameLink(target).c_str());
637 if (handler->needReportToTarget(target))
639
640 target->SetMoney(0);
641 }
642 else
643 {
644 if (newmoney > MAX_MONEY_AMOUNT)
645 newmoney = MAX_MONEY_AMOUNT;
646
647 handler->PSendSysMessage(LANG_YOU_TAKE_MONEY, std::abs(moneyToAdd), handler->GetNameLink(target).c_str());
648 if (handler->needReportToTarget(target))
649 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_MONEY_TAKEN, handler->GetNameLink().c_str(), std::abs(moneyToAdd));
650 target->SetMoney(newmoney);
651 }
652 }
653 else
654 {
655 handler->PSendSysMessage(LANG_YOU_GIVE_MONEY, moneyToAdd, handler->GetNameLink(target).c_str());
656 if (handler->needReportToTarget(target))
657 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_MONEY_GIVEN, handler->GetNameLink().c_str(), moneyToAdd);
658
659 if (moneyToAdd >= MAX_MONEY_AMOUNT)
660 moneyToAdd = MAX_MONEY_AMOUNT;
661
662 if (targetMoney >= uint32(MAX_MONEY_AMOUNT) - moneyToAdd)
663 moneyToAdd -= targetMoney;
664
665 target->ModifyMoney(moneyToAdd);
666 }
667
668 LOG_DEBUG("chat.system", handler->GetAcoreString(LANG_NEW_MONEY), targetMoney, moneyToAdd, target->GetMoney());
669
670 return true;
671 }
std::int32_t int32
Definition: Define.h:104
std::optional< T > Optional
Optional helper class to wrap optional values within.
Definition: Optional.h:24
Optional< int32 > MoneyStringToMoney(std::string_view moneyString)
Definition: Util.cpp:109
#define MAX_MONEY_AMOUNT
Definition: Player.h:922
@ LANG_CURRENT_MONEY
Definition: Language.h:189
@ LANG_YOU_TAKE_ALL_MONEY
Definition: Language.h:190
@ LANG_YOURS_MONEY_TAKEN
Definition: Language.h:193
@ LANG_YOURS_ALL_MONEY_GONE
Definition: Language.h:191
@ LANG_YOU_TAKE_MONEY
Definition: Language.h:192
@ LANG_YOURS_MONEY_GIVEN
Definition: Language.h:195
@ LANG_NEW_MONEY
Definition: Language.h:198
@ LANG_YOU_GIVE_MONEY
Definition: Language.h:194
bool ModifyMoney(int32 amount, bool sendError=true)
Definition: Player.cpp:11409
uint32 GetMoney() const
Definition: Player.h:1567
void SetMoney(uint32 value)
Definition: Player.h:1577

References ChatHandler::GetAcoreString(), Player::GetMoney(), ChatHandler::GetNameLink(), ChatHandler::getSelectedPlayer(), Player::GetSession(), ChatHandler::HasLowerSecurity(), LANG_CURRENT_MONEY, LANG_NEW_MONEY, LANG_NO_CHAR_SELECTED, LANG_YOU_GIVE_MONEY, LANG_YOU_TAKE_ALL_MONEY, LANG_YOU_TAKE_MONEY, LANG_YOURS_ALL_MONEY_GONE, LANG_YOURS_MONEY_GIVEN, LANG_YOURS_MONEY_TAKEN, LOG_DEBUG, MAX_MONEY_AMOUNT, Player::ModifyMoney(), MoneyStringToMoney(), ChatHandler::needReportToTarget(), ChatHandler::PSendSysMessage(), ChatHandler::SendSysMessage(), Player::SetMoney(), and ChatHandler::SetSentErrorMessage().

Referenced by GetCommands().

◆ HandleModifyMountCommand()

static bool modify_commandscript::HandleModifyMountCommand ( ChatHandler handler,
uint32  creatureDisplayID,
Optional< float >  speed 
)
inlinestatic
539 {
540 if (!sCreatureDisplayInfoStore.LookupEntry(creatureDisplayID))
541 {
543 handler->SetSentErrorMessage(true);
544 return false;
545 }
546
547 Player* target = handler->getSelectedPlayerOrSelf();
548 if (!target)
549 {
551 handler->SetSentErrorMessage(true);
552 return false;
553 }
554
555 // check online security
556 if (handler->HasLowerSecurity(target, ObjectGuid::Empty))
557 {
558 return false;
559 }
560
561 float _speed = speed ? *speed : 1.0f;
562
563 if (!CheckModifySpeed(handler, target, _speed, 0.1f, 50.0f))
564 {
565 return false;
566 }
567
569
570 target->Mount(creatureDisplayID);
571 target->SetSpeed(MOVE_RUN, _speed, true);
572 target->SetSpeed(MOVE_FLIGHT, _speed, true);
573 return true;
574 }
DBCStorage< CreatureDisplayInfoEntry > sCreatureDisplayInfoStore(CreatureDisplayInfofmt)
@ LANG_NO_MOUNT
Definition: Language.h:185
@ LANG_YOU_GIVE_MOUNT
Definition: Language.h:186
@ LANG_MOUNT_GIVED
Definition: Language.h:187
static ObjectGuid const Empty
Definition: ObjectGuid.h:122
void Mount(uint32 mount, uint32 vehicleId=0, uint32 creatureEntry=0)
Definition: Unit.cpp:13376

References CheckModifySpeed(), ObjectGuid::Empty, ChatHandler::getSelectedPlayerOrSelf(), ChatHandler::HasLowerSecurity(), LANG_MOUNT_GIVED, LANG_NO_CHAR_SELECTED, LANG_NO_MOUNT, LANG_YOU_GIVE_MOUNT, Unit::Mount(), MOVE_FLIGHT, MOVE_RUN, NotifyModification(), sCreatureDisplayInfoStore, ChatHandler::SendSysMessage(), ChatHandler::SetSentErrorMessage(), and Unit::SetSpeed().

Referenced by GetCommands().

◆ HandleModifyPhaseCommand()

static bool modify_commandscript::HandleModifyPhaseCommand ( ChatHandler handler,
uint32  phaseMask 
)
inlinestatic
898 {
899 Unit* target = handler->getSelectedUnit();
900 if (!target)
901 {
902 target = handler->GetSession()->GetPlayer();
903 }
904 else if (target->GetTypeId() == TYPEID_PLAYER && handler->HasLowerSecurity(target->ToPlayer())) // check online security
905 {
906 return false;
907 }
908
909 target->SetPhaseMask(phaseMask, true);
910 return true;
911 }
WorldSession * GetSession()
Definition: Chat.h:122
void SetPhaseMask(uint32 newPhaseMask, bool update) override
Definition: Unit.cpp:19217
Player * GetPlayer() const
Definition: WorldSession.h:361

References WorldSession::GetPlayer(), ChatHandler::getSelectedUnit(), ChatHandler::GetSession(), Object::GetTypeId(), ChatHandler::HasLowerSecurity(), Unit::SetPhaseMask(), Object::ToPlayer(), and TYPEID_PLAYER.

Referenced by GetCommands().

◆ HandleModifyRageCommand()

static bool modify_commandscript::HandleModifyRageCommand ( ChatHandler handler,
int32  ragePoints 
)
inlinestatic
206 {
207 Player* target = handler->getSelectedPlayer();
208
209 if (!CheckModifyInt32(handler, target, ragePoints))
210 {
211 return false;
212 }
213
214 ragePoints *= 10;
215
216 handler->PSendSysMessage(LANG_YOU_CHANGE_RAGE, handler->GetNameLink(target).c_str(), ragePoints / 10, ragePoints / 10);
217
218 if (handler->needReportToTarget(target))
219 {
220 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_RAGE_CHANGED, handler->GetNameLink().c_str(), ragePoints / 10, ragePoints / 10);
221 }
222
223 target->SetMaxPower(POWER_RAGE, ragePoints);
224 target->SetPower(POWER_RAGE, ragePoints);
225
226 return true;
227 }
@ LANG_YOU_CHANGE_RAGE
Definition: Language.h:159
@ LANG_YOURS_RAGE_CHANGED
Definition: Language.h:160
@ POWER_RAGE
Definition: SharedDefines.h:242

References CheckModifyInt32(), ChatHandler::GetNameLink(), ChatHandler::getSelectedPlayer(), Player::GetSession(), LANG_YOU_CHANGE_RAGE, LANG_YOURS_RAGE_CHANGED, ChatHandler::needReportToTarget(), POWER_RAGE, ChatHandler::PSendSysMessage(), Unit::SetMaxPower(), and Unit::SetPower().

Referenced by GetCommands().

◆ HandleModifyRepCommand()

static bool modify_commandscript::HandleModifyRepCommand ( ChatHandler handler,
uint32  factionId,
Variant< int32, std::string >  rank,
Optional< int32 delta 
)
inlinestatic
757 {
758 Player* target = handler->getSelectedPlayer();
759 if (!target)
760 {
762 handler->SetSentErrorMessage(true);
763 return false;
764 }
765
766 // check online security
767 if (handler->HasLowerSecurity(target))
768 {
769 return false;
770 }
771
772 int32 amount = 0;
773
774 if (rank.holds_alternative<std::string>())
775 {
776 std::string rankStr = rank.get<std::string>();
777 std::wstring wrankStr;
778
779 if (!Utf8toWStr(rankStr, wrankStr))
780 {
781 return false;
782 }
783
784 wstrToLower(wrankStr);
785
786 int32 r = 0;
787 amount = -42000;
788
789 for (; r < MAX_REPUTATION_RANK; ++r)
790 {
791 std::string rank = handler->GetAcoreString(ReputationRankStrIndex[r]);
792 if (rank.empty())
793 continue;
794
795 std::wstring wrank;
796 if (!Utf8toWStr(rank, wrank))
797 continue;
798
799 wstrToLower(wrank);
800
801 if (wrank.substr(0, wrankStr.size()) == wrankStr)
802 {
803 if (delta)
804 {
805 if (*delta < 0 || (*delta > ReputationMgr::PointsInRank[r] - 1))
806 {
808 handler->SetSentErrorMessage(true);
809 return false;
810 }
811
812 amount += *delta;
813 }
814
815 break;
816 }
817
818 amount += ReputationMgr::PointsInRank[r];
819 }
820
821 if (r >= MAX_REPUTATION_RANK)
822 {
823 handler->PSendSysMessage(LANG_COMMAND_FACTION_INVPARAM, rankStr.c_str());
824 handler->SetSentErrorMessage(true);
825 return false;
826 }
827 }
828 else
829 {
830 amount = rank.get<int32>();
831 }
832
833 if (!amount)
834 {
835 return false;
836 }
837
838 FactionEntry const* factionEntry = sFactionStore.LookupEntry(factionId);
839
840 if (!factionEntry)
841 {
843 handler->SetSentErrorMessage(true);
844 return false;
845 }
846
847 if (factionEntry->reputationListID < 0)
848 {
849 handler->PSendSysMessage(LANG_COMMAND_FACTION_NOREP_ERROR, factionEntry->name[handler->GetSessionDbcLocale()], factionId);
850 handler->SetSentErrorMessage(true);
851 return false;
852 }
853
854 target->GetReputationMgr().SetOneFactionReputation(factionEntry, float(amount), false);
855 target->GetReputationMgr().SendState(target->GetReputationMgr().GetState(factionEntry));
856
857 handler->PSendSysMessage(LANG_COMMAND_MODIFY_REP, factionEntry->name[handler->GetSessionDbcLocale()], factionId,
858 handler->GetNameLink(target).c_str(), target->GetReputationMgr().GetReputation(factionEntry));
859 return true;
860 }
void wstrToLower(std::wstring &str)
Definition: Util.cpp:383
bool Utf8toWStr(char const *utf8str, size_t csize, wchar_t *wstr, size_t &wsize)
Definition: Util.cpp:282
DBCStorage< FactionEntry > sFactionStore(FactionEntryfmt)
@ LANG_COMMAND_FACTION_UNKNOWN
Definition: Language.h:349
@ LANG_COMMAND_FACTION_DELTA
Definition: Language.h:351
@ LANG_COMMAND_FACTION_NOREP_ERROR
Definition: Language.h:367
@ LANG_COMMAND_MODIFY_REP
Definition: Language.h:346
@ LANG_COMMAND_FACTION_INVPARAM
Definition: Language.h:350
constexpr std::array< uint32, MAX_REPUTATION_RANK > ReputationRankStrIndex
Definition: ReputationMgr.h:28
#define MAX_REPUTATION_RANK
Definition: SharedDefines.h:217
virtual LocaleConstant GetSessionDbcLocale() const
Definition: Chat.cpp:782
constexpr decltype(auto) get()
Definition: ChatCommandTags.h:289
constexpr bool holds_alternative() const
Definition: ChatCommandTags.h:303
ReputationMgr & GetReputationMgr()
Definition: Player.h:2076
static const int32 PointsInRank[MAX_REPUTATION_RANK]
Definition: ReputationMgr.h:67
void SendState(FactionState const *faction)
Definition: ReputationMgr.cpp:178
int32 GetReputation(uint32 faction_id) const
Definition: ReputationMgr.cpp:78
bool SetOneFactionReputation(FactionEntry const *factionEntry, float standing, bool incremental, Optional< ReputationRank > repMaxCap={ })
Public for chat command needs.
Definition: ReputationMgr.cpp:378
FactionState const * GetState(FactionEntry const *factionEntry) const
Definition: ReputationMgr.h:82
Definition: DBCStructure.h:898
char const * name[16]
Definition: DBCStructure.h:910
int32 reputationListID
Definition: DBCStructure.h:900

References Acore::ChatCommands::Variant< T1, Ts >::get(), ChatHandler::GetAcoreString(), ChatHandler::GetNameLink(), ReputationMgr::GetReputation(), Player::GetReputationMgr(), ChatHandler::getSelectedPlayer(), ChatHandler::GetSessionDbcLocale(), ReputationMgr::GetState(), ChatHandler::HasLowerSecurity(), Acore::ChatCommands::Variant< T1, Ts >::holds_alternative(), LANG_COMMAND_FACTION_DELTA, LANG_COMMAND_FACTION_INVPARAM, LANG_COMMAND_FACTION_NOREP_ERROR, LANG_COMMAND_FACTION_UNKNOWN, LANG_COMMAND_MODIFY_REP, LANG_PLAYER_NOT_FOUND, MAX_REPUTATION_RANK, FactionEntry::name, ReputationMgr::PointsInRank, ChatHandler::PSendSysMessage(), FactionEntry::reputationListID, ReputationRankStrIndex, ReputationMgr::SendState(), ChatHandler::SendSysMessage(), ReputationMgr::SetOneFactionReputation(), ChatHandler::SetSentErrorMessage(), sFactionStore, Utf8toWStr(), and wstrToLower().

Referenced by GetCommands().

◆ HandleModifyRunicPowerCommand()

static bool modify_commandscript::HandleModifyRunicPowerCommand ( ChatHandler handler,
int32  runePoints 
)
inlinestatic
231 {
232 Player* target = handler->getSelectedPlayer();
233
234 if (!CheckModifyInt32(handler, target, runePoints))
235 {
236 return false;
237 }
238
239 runePoints *= 10;
240
241 handler->PSendSysMessage(LANG_YOU_CHANGE_RUNIC_POWER, handler->GetNameLink(target).c_str(), runePoints / 10, runePoints / 10);
242
243 if (handler->needReportToTarget(target))
244 {
245 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_RUNIC_POWER_CHANGED, handler->GetNameLink().c_str(), runePoints / 10, runePoints / 10);
246 }
247
248 target->SetMaxPower(POWER_RUNIC_POWER, runePoints);
249 target->SetPower(POWER_RUNIC_POWER, runePoints);
250
251 return true;
252 }
@ LANG_YOU_CHANGE_RUNIC_POWER
Definition: Language.h:213
@ LANG_YOURS_RUNIC_POWER_CHANGED
Definition: Language.h:214
@ POWER_RUNIC_POWER
Definition: SharedDefines.h:247

References CheckModifyInt32(), ChatHandler::GetNameLink(), ChatHandler::getSelectedPlayer(), Player::GetSession(), LANG_YOU_CHANGE_RUNIC_POWER, LANG_YOURS_RUNIC_POWER_CHANGED, ChatHandler::needReportToTarget(), POWER_RUNIC_POWER, ChatHandler::PSendSysMessage(), Unit::SetMaxPower(), and Unit::SetPower().

Referenced by GetCommands().

◆ HandleModifyScaleCommand()

static bool modify_commandscript::HandleModifyScaleCommand ( ChatHandler handler,
float  scale 
)
inlinestatic
505 {
506 if (scale > 10.0f || scale < 0.1f)
507 {
509 handler->SetSentErrorMessage(true);
510 return false;
511 }
512
513 Unit* target = handler->getSelectedUnit();
514 if (!target)
515 {
517 handler->SetSentErrorMessage(true);
518 return false;
519 }
520
521 if (Player* player = target->ToPlayer())
522 {
523 // check online security
524 if (handler->HasLowerSecurity(player))
525 return false;
526
527 handler->PSendSysMessage(LANG_YOU_CHANGE_SIZE, scale, handler->GetNameLink(player).c_str());
528 if (handler->needReportToTarget(player))
529 ChatHandler(player->GetSession()).PSendSysMessage(LANG_YOURS_SIZE_CHANGED, handler->GetNameLink().c_str(), scale);
530 }
531
532 target->SetObjectScale(scale);
533
534 return true;
535 }
@ LANG_YOU_CHANGE_SIZE
Definition: Language.h:183
@ LANG_YOURS_SIZE_CHANGED
Definition: Language.h:184
@ LANG_SELECT_CHAR_OR_CREATURE
Definition: Language.h:31
virtual void SetObjectScale(float scale)
Definition: Object.h:113

References ChatHandler::GetNameLink(), ChatHandler::getSelectedUnit(), ChatHandler::HasLowerSecurity(), LANG_BAD_VALUE, LANG_SELECT_CHAR_OR_CREATURE, LANG_YOU_CHANGE_SIZE, LANG_YOURS_SIZE_CHANGED, ChatHandler::needReportToTarget(), ChatHandler::PSendSysMessage(), ChatHandler::SendSysMessage(), Object::SetObjectScale(), ChatHandler::SetSentErrorMessage(), and Object::ToPlayer().

Referenced by GetCommands().

◆ HandleModifySpeedCommand()

static bool modify_commandscript::HandleModifySpeedCommand ( ChatHandler handler,
float  speed 
)
inlinestatic
449 {
450 Player* target = handler->getSelectedPlayerOrSelf();
451 if (CheckModifySpeed(handler, target, speed, 0.1f, 50.0f))
452 {
454 target->SetSpeedRate(MOVE_RUN, speed);
455 return true;
456 }
457
458 return false;
459 }
@ LANG_YOU_CHANGE_SPEED
Definition: Language.h:174
@ LANG_YOURS_SPEED_CHANGED
Definition: Language.h:175

References CheckModifySpeed(), ChatHandler::getSelectedPlayerOrSelf(), LANG_YOU_CHANGE_SPEED, LANG_YOURS_SPEED_CHANGED, MOVE_RUN, NotifyModification(), and Unit::SetSpeedRate().

Referenced by GetCommands().

◆ HandleModifySpellCommand()

static bool modify_commandscript::HandleModifySpellCommand ( ChatHandler handler,
uint8  spellFlatID,
uint8  op,
uint16  val,
Optional< uint16 mark 
)
inlinestatic
317 {
318 Player* target = handler->getSelectedPlayer();
319 if (!target)
320 {
322 handler->SetSentErrorMessage(true);
323 return false;
324 }
325
326 // check online security
327 if (handler->HasLowerSecurity(target))
328 {
329 return false;
330 }
331
332 handler->PSendSysMessage(LANG_YOU_CHANGE_SPELLFLATID, spellFlatID, val, mark ? *mark : 65535, handler->GetNameLink(target).c_str());
333 if (handler->needReportToTarget(target))
334 {
335 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_SPELLFLATID_CHANGED, handler->GetNameLink().c_str(), spellFlatID, val, mark ? *mark : 65535);
336 }
337
338 WorldPacket data(SMSG_SET_FLAT_SPELL_MODIFIER, (1 + 1 + 2 + 2));
339 data << uint8(spellFlatID);
340 data << uint8(op);
341 data << uint16(val);
342 data << uint16(mark ? *mark : 65535);
343 target->GetSession()->SendPacket(&data);
344
345 return true;
346 }
std::uint8_t uint8
Definition: Define.h:110
std::uint16_t uint16
Definition: Define.h:109
@ LANG_YOURS_SPELLFLATID_CHANGED
Definition: Language.h:166
@ LANG_YOU_CHANGE_SPELLFLATID
Definition: Language.h:165
@ SMSG_SET_FLAT_SPELL_MODIFIER
Definition: Opcodes.h:644
Definition: WorldPacket.h:27
void SendPacket(WorldPacket const *packet)
Send a packet to the client.
Definition: WorldSession.cpp:207

References ChatHandler::GetNameLink(), ChatHandler::getSelectedPlayer(), Player::GetSession(), ChatHandler::HasLowerSecurity(), LANG_NO_CHAR_SELECTED, LANG_YOU_CHANGE_SPELLFLATID, LANG_YOURS_SPELLFLATID_CHANGED, ChatHandler::needReportToTarget(), ChatHandler::PSendSysMessage(), WorldSession::SendPacket(), ChatHandler::SendSysMessage(), ChatHandler::SetSentErrorMessage(), and SMSG_SET_FLAT_SPELL_MODIFIER.

Referenced by GetCommands().

◆ HandleModifyStandStateCommand()

static bool modify_commandscript::HandleModifyStandStateCommand ( ChatHandler handler,
uint32  anim 
)
inlinestatic
915 {
917 return true;
918 }
@ UNIT_NPC_EMOTESTATE
Definition: UpdateFields.h:140
void SetUInt32Value(uint16 index, uint32 value)
Definition: Object.cpp:650

References WorldSession::GetPlayer(), ChatHandler::GetSession(), Object::SetUInt32Value(), and UNIT_NPC_EMOTESTATE.

Referenced by GetCommands().

◆ HandleModifySwimCommand()

static bool modify_commandscript::HandleModifySwimCommand ( ChatHandler handler,
float  swimSpeed 
)
inlinestatic
463 {
464 Player* target = handler->getSelectedPlayerOrSelf();
465 if (CheckModifySpeed(handler, target, swimSpeed, 0.1f, 50.0f))
466 {
468 target->SetSpeedRate(MOVE_SWIM, swimSpeed);
469 return true;
470 }
471
472 return false;
473 }
@ LANG_YOURS_SWIM_SPEED_CHANGED
Definition: Language.h:177
@ LANG_YOU_CHANGE_SWIM_SPEED
Definition: Language.h:176

References CheckModifySpeed(), ChatHandler::getSelectedPlayerOrSelf(), LANG_YOU_CHANGE_SWIM_SPEED, LANG_YOURS_SWIM_SPEED_CHANGED, MOVE_SWIM, NotifyModification(), and Unit::SetSpeedRate().

Referenced by GetCommands().

◆ HandleModifyTalentCommand()

static bool modify_commandscript::HandleModifyTalentCommand ( ChatHandler handler,
uint32  talentPoints 
)
inlinestatic
350 {
351 if (!talentPoints)
352 {
353 return false;
354 }
355
356 Unit* target = handler->getSelectedUnit();
357 if (!target)
358 {
360 handler->SetSentErrorMessage(true);
361 return false;
362 }
363
364 if (target->GetTypeId() == TYPEID_PLAYER)
365 {
366 // check online security
367 if (handler->HasLowerSecurity(target->ToPlayer()))
368 {
369 return false;
370 }
371
372 target->ToPlayer()->SetFreeTalentPoints(talentPoints);
373 target->ToPlayer()->SendTalentsInfoData(false);
374 return true;
375 }
376 else if (target->IsPet())
377 {
378 Unit* owner = target->GetOwner();
379 if (owner && owner->GetTypeId() == TYPEID_PLAYER && ((Pet*)target)->IsPermanentPetFor(owner->ToPlayer()))
380 {
381 // check online security
382 if (handler->HasLowerSecurity(owner->ToPlayer()))
383 return false;
384 ((Pet*)target)->SetFreeTalentPoints(talentPoints);
385 owner->ToPlayer()->SendTalentsInfoData(true);
386 return true;
387 }
388 }
389
391 handler->SetSentErrorMessage(true);
392 return false;
393 }
Definition: Pet.h:40
void SendTalentsInfoData(bool pet)
Definition: Player.cpp:14305
void SetFreeTalentPoints(uint32 points)
Definition: Player.cpp:3738
Unit * GetOwner() const
Definition: Unit.cpp:10560
bool IsPet() const
Definition: Unit.h:1413

References Unit::GetOwner(), ChatHandler::getSelectedUnit(), Object::GetTypeId(), ChatHandler::HasLowerSecurity(), Unit::IsPet(), LANG_NO_CHAR_SELECTED, ChatHandler::SendSysMessage(), Player::SendTalentsInfoData(), Player::SetFreeTalentPoints(), ChatHandler::SetSentErrorMessage(), Object::ToPlayer(), and TYPEID_PLAYER.

Referenced by GetCommands().

◆ HandleMorphResetCommand()

static bool modify_commandscript::HandleMorphResetCommand ( ChatHandler handler)
inlinestatic
881 {
882 Unit* target = handler->getSelectedUnit();
883 if (!target)
884 {
885 target = handler->GetSession()->GetPlayer();
886 }
887 else if (target->GetTypeId() == TYPEID_PLAYER && handler->HasLowerSecurity(target->ToPlayer())) // check online security
888 {
889 return false;
890 }
891
892 target->DeMorph();
893 return true;
894 }
void DeMorph()
Definition: Unit.cpp:4289

References Unit::DeMorph(), WorldSession::GetPlayer(), ChatHandler::getSelectedUnit(), ChatHandler::GetSession(), Object::GetTypeId(), ChatHandler::HasLowerSecurity(), Object::ToPlayer(), and TYPEID_PLAYER.

Referenced by GetCommands().

◆ HandleMorphTargetCommand()

static bool modify_commandscript::HandleMorphTargetCommand ( ChatHandler handler,
uint32  displayID 
)
inlinestatic
863 {
864 Unit* target = handler->getSelectedUnit();
865
866 if (!target)
867 {
868 target = handler->GetSession()->GetPlayer();
869 }
870 else if (target->GetTypeId() == TYPEID_PLAYER && handler->HasLowerSecurity(target->ToPlayer())) // check online security
871 {
872 return false;
873 }
874
875 target->SetDisplayId(displayID);
876 return true;
877 }
virtual void SetDisplayId(uint32 modelId)
Definition: Unit.cpp:16936

References WorldSession::GetPlayer(), ChatHandler::getSelectedUnit(), ChatHandler::GetSession(), Object::GetTypeId(), ChatHandler::HasLowerSecurity(), Unit::SetDisplayId(), Object::ToPlayer(), and TYPEID_PLAYER.

Referenced by GetCommands().

◆ NotifyModification()

template<typename... Args>
static void modify_commandscript::NotifyModification ( ChatHandler handler,
Unit target,
AcoreStrings  resourceMessage,
AcoreStrings  resourceReportMessage,
Args &&...  args 
)
inlinestatic
95 {
96 if (Player* player = target->ToPlayer())
97 {
98 handler->PSendSysMessage(resourceMessage, std::forward<Args>(args)..., handler->GetNameLink(player).c_str());
99
100 if (handler->needReportToTarget(player))
101 {
102 ChatHandler(player->GetSession()).PSendSysMessage(resourceReportMessage, handler->GetNameLink().c_str(), std::forward<Args>(args)...);
103 }
104 }
105 }

References ChatHandler::GetNameLink(), ChatHandler::needReportToTarget(), ChatHandler::PSendSysMessage(), and Object::ToPlayer().

Referenced by HandleModifyASpeedCommand(), HandleModifyBWalkCommand(), HandleModifyFlyCommand(), HandleModifyMountCommand(), HandleModifySpeedCommand(), and HandleModifySwimCommand().