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
 
- Public Member Functions inherited from ScriptObject
virtual bool IsDatabaseBound () const
 
virtual bool isAfterLoadScript () const
 
virtual void checkValidity ()
 
const std::string & GetName () const
 
uint16 GetTotalAvailableHooks ()
 

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 HandleMorphMountCommand (ChatHandler *handler, uint32 displayID)
 
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, uint16 totalAvailableHooks=0)
 
virtual ~ScriptObject ()=default
 

Detailed Description

Constructor & Destructor Documentation

◆ modify_commandscript()

modify_commandscript::modify_commandscript ( )
inline
33: CommandScript("modify_commandscript") { }
Definition CommandScript.h:25

Member Function Documentation

◆ CheckModifyInt32()

static bool modify_commandscript::CheckModifyInt32 ( ChatHandler handler,
Player target,
int32  modifyValue 
)
inlinestatic
102 {
103 if (modifyValue < 1)
104 {
106 return false;
107 }
108
109 if (!target)
110 {
112 return false;
113 }
114
115 if (handler->HasLowerSecurity(target))
116 {
117 return false;
118 }
119
120 return true;
121 }
@ LANG_NO_CHAR_SELECTED
Definition Language.h:152
@ LANG_BAD_VALUE
Definition Language.h:151
void SendErrorMessage(uint32 entry)
Definition Chat.cpp:224
bool HasLowerSecurity(Player *target, ObjectGuid guid=ObjectGuid::Empty, bool strong=false)
Definition Chat.cpp:65

References ChatHandler::HasLowerSecurity(), LANG_BAD_VALUE, LANG_NO_CHAR_SELECTED, and ChatHandler::SendErrorMessage().

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
383 {
384 if (speed > maximumBound || speed < minimumBound)
385 {
387 return false;
388 }
389
390 if (!target)
391 {
393 return false;
394 }
395
396 if (Player* player = target->ToPlayer())
397 {
398 // check online security
399 if (handler->HasLowerSecurity(player))
400 {
401 return false;
402 }
403
404 if (player->IsInFlight() && checkInFlight)
405 {
406 handler->SendErrorMessage(LANG_CHAR_IN_FLIGHT, handler->GetNameLink(player).c_str());
407 return false;
408 }
409 }
410
411 return true;
412 }
@ LANG_CHAR_IN_FLIGHT
Definition Language.h:53
virtual std::string GetNameLink() const
Definition Chat.h:198
Player * ToPlayer()
Definition Object.h:202
Definition Player.h:1084

References ChatHandler::GetNameLink(), ChatHandler::HasLowerSecurity(), LANG_BAD_VALUE, LANG_CHAR_IN_FLIGHT, LANG_NO_CHAR_SELECTED, ChatHandler::SendErrorMessage(), and Object::ToPlayer().

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

◆ GetCommands()

ChatCommandTable modify_commandscript::GetCommands ( ) const
inlineoverridevirtual

Implements CommandScript.

36 {
37 static ChatCommandTable modifyspeedCommandTable =
38 {
45 };
46
47 static ChatCommandTable modifyCommandTable =
48 {
68 { "speed", modifyspeedCommandTable }
69 };
70
71 static ChatCommandTable morphCommandTable =
72 {
76 };
77
78 static ChatCommandTable commandTable =
79 {
80 { "morph", morphCommandTable },
81 { "modify", modifyCommandTable }
82 };
83
84 return commandTable;
85 }
static bool HandleModifyScaleCommand(ChatHandler *handler, float scale)
Definition cs_modify.cpp:488
static bool HandleModifyEnergyCommand(ChatHandler *handler, int32 energyPoints)
Definition cs_modify.cpp:170
static bool HandleModifyBWalkCommand(ChatHandler *handler, float backSpeed)
Definition cs_modify.cpp:460
static bool HandleModifyFlyCommand(ChatHandler *handler, float flySpeed)
Definition cs_modify.cpp:474
static bool HandleModifyPhaseCommand(ChatHandler *handler, uint32 phaseMask)
Definition cs_modify.cpp:882
static bool HandleModifyHPCommand(ChatHandler *handler, int32 healthPoints)
Definition cs_modify.cpp:124
static bool HandleMorphTargetCommand(ChatHandler *handler, uint32 displayID)
Definition cs_modify.cpp:832
static bool HandleModifySpeedCommand(ChatHandler *handler, float speed)
Definition cs_modify.cpp:432
static bool HandleModifyASpeedCommand(ChatHandler *handler, float allSpeed)
Definition cs_modify.cpp:415
static bool HandleMorphMountCommand(ChatHandler *handler, uint32 displayID)
Definition cs_modify.cpp:866
static bool HandleModifyMountCommand(ChatHandler *handler, uint32 creatureDisplayID, Optional< float > speed)
Definition cs_modify.cpp:520
static bool HandleModifyBitCommand(ChatHandler *handler, uint16 field, uint32 bit)
Definition cs_modify.cpp:653
static bool HandleMorphResetCommand(ChatHandler *handler)
Definition cs_modify.cpp:850
static bool HandleModifyMoneyCommand(ChatHandler *handler, Tail money)
Definition cs_modify.cpp:557
static bool HandleModifySpellCommand(ChatHandler *handler, uint8 spellFlatID, uint8 op, uint16 val, Optional< uint16 > mark)
Definition cs_modify.cpp:306
static bool HandleModifyStandStateCommand(ChatHandler *handler, uint32 anim)
Definition cs_modify.cpp:899
static bool HandleModifyRepCommand(ChatHandler *handler, uint32 factionId, Variant< int32, std::string > rank, Optional< int32 > delta)
Definition cs_modify.cpp:731
static bool HandleModifyDrunkCommand(ChatHandler *handler, uint8 drunklevel)
Definition cs_modify.cpp:716
static bool HandleModifySwimCommand(ChatHandler *handler, float swimSpeed)
Definition cs_modify.cpp:446
static bool HandleModifyRageCommand(ChatHandler *handler, int32 ragePoints)
Definition cs_modify.cpp:197
static bool HandleModifyFactionCommand(ChatHandler *handler, Optional< uint32 > factionID, Optional< uint32 > flagID, Optional< uint32 > npcFlagID, Optional< uint32 > dynamicFlagID)
Definition cs_modify.cpp:247
static bool HandleModifyRunicPowerCommand(ChatHandler *handler, int32 runePoints)
Definition cs_modify.cpp:222
static bool HandleModifyHonorCommand(ChatHandler *handler, int32 amount)
Definition cs_modify.cpp:694
static bool HandleModifyManaCommand(ChatHandler *handler, int32 manaPoints)
Definition cs_modify.cpp:147
static bool HandleModifyGenderCommand(ChatHandler *handler, Tail genderString)
Definition cs_modify.cpp:921
static bool HandleModifyTalentCommand(ChatHandler *handler, uint32 talentPoints)
Definition cs_modify.cpp:338
static bool HandleModifyArenaCommand(ChatHandler *handler, int32 amount)
Definition cs_modify.cpp:905
std::vector< ChatCommandBuilder > ChatCommandTable
Definition ChatCommand.h:46
@ RBAC_PERM_COMMAND_MODIFY_MONEY
Definition RBAC.h:385
@ RBAC_PERM_COMMAND_MODIFY_RUNICPOWER
Definition RBAC.h:390
@ RBAC_PERM_COMMAND_MODIFY_MOUNT
Definition RBAC.h:386
@ RBAC_PERM_COMMAND_MODIFY_SPEED_SWIM
Definition RBAC.h:397
@ RBAC_PERM_COMMAND_MODIFY_PHASE
Definition RBAC.h:387
@ RBAC_PERM_COMMAND_MODIFY_SPEED_BACKWALK
Definition RBAC.h:394
@ RBAC_PERM_COMMAND_MODIFY_SPEED_FLY
Definition RBAC.h:395
@ RBAC_PERM_COMMAND_MODIFY_SPEED
Definition RBAC.h:392
@ RBAC_PERM_COMMAND_MODIFY_TALENTPOINTS
Definition RBAC.h:400
@ RBAC_PERM_COMMAND_MODIFY_SCALE
Definition RBAC.h:391
@ RBAC_PERM_COMMAND_MODIFY_BIT
Definition RBAC.h:377
@ RBAC_PERM_COMMAND_MODIFY_SPEED_WALK
Definition RBAC.h:396
@ RBAC_PERM_COMMAND_MODIFY_HONOR
Definition RBAC.h:382
@ RBAC_PERM_COMMAND_MODIFY_FACTION
Definition RBAC.h:380
@ RBAC_PERM_COMMAND_DEMORPH
Definition RBAC.h:374
@ RBAC_PERM_COMMAND_MODIFY_SPELL
Definition RBAC.h:398
@ RBAC_PERM_COMMAND_MORPH
Definition RBAC.h:373
@ RBAC_PERM_COMMAND_MODIFY_RAGE
Definition RBAC.h:388
@ RBAC_PERM_COMMAND_MODIFY_GENDER
Definition RBAC.h:381
@ RBAC_PERM_COMMAND_MODIFY_MANA
Definition RBAC.h:384
@ RBAC_PERM_COMMAND_MODIFY_ARENAPOINTS
Definition RBAC.h:376
@ RBAC_PERM_COMMAND_MODIFY_STANDSTATE
Definition RBAC.h:399
@ RBAC_PERM_COMMAND_MODIFY_REPUTATION
Definition RBAC.h:389
@ RBAC_PERM_COMMAND_MODIFY_ENERGY
Definition RBAC.h:379
@ RBAC_PERM_COMMAND_MODIFY_SPEED_ALL
Definition RBAC.h:393
@ RBAC_PERM_COMMAND_MODIFY_HP
Definition RBAC.h:383
@ RBAC_PERM_COMMAND_MODIFY_DRUNK
Definition RBAC.h:378

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(), HandleMorphMountCommand(), HandleMorphResetCommand(), HandleMorphTargetCommand(), rbac::RBAC_PERM_COMMAND_DEMORPH, rbac::RBAC_PERM_COMMAND_MODIFY_ARENAPOINTS, rbac::RBAC_PERM_COMMAND_MODIFY_BIT, rbac::RBAC_PERM_COMMAND_MODIFY_DRUNK, rbac::RBAC_PERM_COMMAND_MODIFY_ENERGY, rbac::RBAC_PERM_COMMAND_MODIFY_FACTION, rbac::RBAC_PERM_COMMAND_MODIFY_GENDER, rbac::RBAC_PERM_COMMAND_MODIFY_HONOR, rbac::RBAC_PERM_COMMAND_MODIFY_HP, rbac::RBAC_PERM_COMMAND_MODIFY_MANA, rbac::RBAC_PERM_COMMAND_MODIFY_MONEY, rbac::RBAC_PERM_COMMAND_MODIFY_MOUNT, rbac::RBAC_PERM_COMMAND_MODIFY_PHASE, rbac::RBAC_PERM_COMMAND_MODIFY_RAGE, rbac::RBAC_PERM_COMMAND_MODIFY_REPUTATION, rbac::RBAC_PERM_COMMAND_MODIFY_RUNICPOWER, rbac::RBAC_PERM_COMMAND_MODIFY_SCALE, rbac::RBAC_PERM_COMMAND_MODIFY_SPEED, rbac::RBAC_PERM_COMMAND_MODIFY_SPEED_ALL, rbac::RBAC_PERM_COMMAND_MODIFY_SPEED_BACKWALK, rbac::RBAC_PERM_COMMAND_MODIFY_SPEED_FLY, rbac::RBAC_PERM_COMMAND_MODIFY_SPEED_SWIM, rbac::RBAC_PERM_COMMAND_MODIFY_SPEED_WALK, rbac::RBAC_PERM_COMMAND_MODIFY_SPELL, rbac::RBAC_PERM_COMMAND_MODIFY_STANDSTATE, rbac::RBAC_PERM_COMMAND_MODIFY_TALENTPOINTS, and rbac::RBAC_PERM_COMMAND_MORPH.

◆ HandleModifyArenaCommand()

static bool modify_commandscript::HandleModifyArenaCommand ( ChatHandler handler,
int32  amount 
)
inlinestatic
906 {
907 Player* target = handler->getSelectedPlayer();
908 if (!target)
909 {
911 return false;
912 }
913
914 target->ModifyArenaPoints(amount);
915
916 handler->PSendSysMessage(LANG_COMMAND_MODIFY_ARENA, handler->GetNameLink(target), target->GetArenaPoints());
917
918 return true;
919 }
@ LANG_COMMAND_MODIFY_ARENA
Definition Language.h:356
@ LANG_PLAYER_NOT_FOUND
Definition Language.h:548
void PSendSysMessage(std::string_view str, bool escapeCharacters=false)
Definition Chat.cpp:219
Player * getSelectedPlayer() const
Definition Chat.cpp:382
uint32 GetArenaPoints() const
Definition Player.h:2173
void ModifyArenaPoints(int32 value, CharacterDatabaseTransaction trans=CharacterDatabaseTransaction(nullptr))
If trans is specified, honor save query will be added to trans.
Definition Player.cpp:6303

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

Referenced by GetCommands().

◆ HandleModifyASpeedCommand()

static bool modify_commandscript::HandleModifyASpeedCommand ( ChatHandler handler,
float  allSpeed 
)
inlinestatic
416 {
417 Player* target = handler->getSelectedPlayerOrSelf();
418 if (CheckModifySpeed(handler, target, allSpeed, 0.1f, 50.0f))
419 {
421 target->SetSpeed(MOVE_WALK, allSpeed, true);
422 target->SetSpeed(MOVE_RUN, allSpeed, true);
423 target->SetSpeed(MOVE_SWIM, allSpeed, true);
424 target->SetSpeed(MOVE_FLIGHT, allSpeed, true);
425 return true;
426 }
427
428 return false;
429 }
@ LANG_YOURS_ASPEED_CHANGED
Definition Language.h:177
@ LANG_YOU_CHANGE_ASPEED
Definition Language.h:176
@ MOVE_FLIGHT
Definition UnitDefines.h:362
@ MOVE_SWIM
Definition UnitDefines.h:359
@ MOVE_RUN
Definition UnitDefines.h:357
@ MOVE_WALK
Definition UnitDefines.h:356
Player * getSelectedPlayerOrSelf() const
Definition Chat.cpp:426
void SetSpeed(UnitMoveType mtype, float rate, bool forced=false)
Definition Unit.cpp:11296
static bool CheckModifySpeed(ChatHandler *handler, Unit *target, float speed, float minimumBound, float maximumBound, bool checkInFlight=true)
Definition cs_modify.cpp:382
static void NotifyModification(ChatHandler *handler, Unit *target, AcoreStrings resourceMessage, AcoreStrings resourceReportMessage, Args &&... args)
Definition cs_modify.cpp:88

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
654 {
655 Unit* target = handler->getSelectedUnit();
656 if (!target)
657 {
659 return false;
660 }
661
662 // check online security
663 if (target->IsPlayer() && handler->HasLowerSecurity(target->ToPlayer()))
664 {
665 return false;
666 }
667
668 if (field < OBJECT_END || field >= target->GetValuesCount())
669 {
671 return false;
672 }
673
674 if (bit < 1 || bit > 32)
675 {
677 return false;
678 }
679
680 if (target->HasFlag(field, (1 << (bit - 1))))
681 {
682 target->RemoveFlag(field, (1 << (bit - 1)));
683 handler->PSendSysMessage(LANG_REMOVE_BIT, bit, field);
684 }
685 else
686 {
687 target->SetFlag(field, (1 << (bit - 1)));
688 handler->PSendSysMessage(LANG_SET_BIT, bit, field);
689 }
690
691 return true;
692 }
@ LANG_REMOVE_BIT
Definition Language.h:204
@ LANG_SET_BIT
Definition Language.h:205
Unit * getSelectedUnit() const
Definition Chat.cpp:394
bool IsPlayer() const
Definition Object.h:201
void SetFlag(uint16 index, uint32 newFlag)
Definition Object.cpp:827
void RemoveFlag(uint16 index, uint32 oldFlag)
Definition Object.cpp:842
bool HasFlag(uint16 index, uint32 flag) const
Definition Object.cpp:871
uint16 GetValuesCount() const
Definition Object.h:188
Definition Unit.h:664

References ChatHandler::getSelectedUnit(), Object::GetValuesCount(), Object::HasFlag(), ChatHandler::HasLowerSecurity(), Object::IsPlayer(), LANG_BAD_VALUE, LANG_NO_CHAR_SELECTED, LANG_REMOVE_BIT, LANG_SET_BIT, ChatHandler::PSendSysMessage(), Object::RemoveFlag(), ChatHandler::SendErrorMessage(), Object::SetFlag(), and Object::ToPlayer().

Referenced by GetCommands().

◆ HandleModifyBWalkCommand()

static bool modify_commandscript::HandleModifyBWalkCommand ( ChatHandler handler,
float  backSpeed 
)
inlinestatic
461 {
462 Player* target = handler->getSelectedPlayerOrSelf();
463 if (CheckModifySpeed(handler, target, backSpeed, 0.1f, 50.0f))
464 {
466 target->SetSpeedRate(MOVE_RUN_BACK, backSpeed);
467 return true;
468 }
469
470 return false;
471 }
@ LANG_YOU_CHANGE_BACK_SPEED
Definition Language.h:182
@ LANG_YOURS_BACK_SPEED_CHANGED
Definition Language.h:183
@ MOVE_RUN_BACK
Definition UnitDefines.h:358
void SetSpeedRate(UnitMoveType mtype, float rate)
Definition Unit.h:1744

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
717 {
718 if (drunklevel > 100)
719 {
720 drunklevel = 100;
721 }
722
723 if (Player* target = handler->getSelectedPlayer())
724 {
725 target->SetDrunkValue(drunklevel);
726 }
727
728 return true;
729 }

References ChatHandler::getSelectedPlayer().

Referenced by GetCommands().

◆ HandleModifyEnergyCommand()

static bool modify_commandscript::HandleModifyEnergyCommand ( ChatHandler handler,
int32  energyPoints 
)
inlinestatic
171 {
172 Player* target = handler->getSelectedPlayer();
173
174 if (!CheckModifyInt32(handler, target, energyPoints))
175 {
176 return false;
177 }
178
179 energyPoints *= 10;
180
181 handler->PSendSysMessage(LANG_YOU_CHANGE_ENERGY, handler->GetNameLink(target), energyPoints / 10, energyPoints / 10);
182
183 if (handler->needReportToTarget(target))
184 {
185 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_ENERGY_CHANGED, handler->GetNameLink(), energyPoints / 10, energyPoints / 10);
186 }
187
188 target->SetMaxPower(POWER_ENERGY, energyPoints);
189 target->SetPower(POWER_ENERGY, energyPoints);
190
192
193 return true;
194 }
@ LANG_YOU_CHANGE_ENERGY
Definition Language.h:159
@ LANG_CURRENT_ENERGY
Definition Language.h:162
@ LANG_YOURS_ENERGY_CHANGED
Definition Language.h:160
#define LOG_DEBUG(filterType__,...)
Definition Log.h:157
@ POWER_ENERGY
Definition SharedDefines.h:260
Definition Chat.h:37
virtual std::string GetAcoreString(uint32 entry) const
Definition Chat.cpp:42
virtual bool needReportToTarget(Player *chr) const
Definition Chat.cpp:872
WorldSession * GetSession() const
Definition Player.h:2020
void SetPower(Powers power, uint32 val, bool withPowerUpdate=true, bool fromRegenerate=false)
Definition Unit.cpp:12429
void SetMaxPower(Powers power, uint32 val)
Definition Unit.cpp:12480
uint32 GetMaxPower(Powers power) const
Definition Unit.h:1136
static bool CheckModifyInt32(ChatHandler *handler, Player *target, int32 modifyValue)
Definition cs_modify.cpp:101

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
248 {
249 Creature* target = handler->getSelectedCreature();
250 if (!target)
251 {
253 return false;
254 }
255
256 if (!factionID)
257 {
258 uint32 factionid = target->GetFaction();
259 uint32 flag = target->GetUnitFlags();
260 uint32 npcflag = target->GetNpcFlags();
261 uint32 dyflag = target->GetDynamicFlags();
262 handler->PSendSysMessage(LANG_CURRENT_FACTION, target->GetGUID().ToString(), factionid, flag, npcflag, dyflag);
263 return true;
264 }
265
266 uint32 factionid = factionID.value();
267 UnitFlags flag;
268 NPCFlags npcflag;
269 uint32 dyflag;
270
271 auto pflag = flagID;
272 if (!pflag)
273 flag = target->GetUnitFlags();
274 else
275 flag = UnitFlags(*pflag);
276
277 auto pnpcflag = npcFlagID;
278 if (!pnpcflag)
279 npcflag = target->GetNpcFlags();
280 else
281 npcflag = NPCFlags(*npcFlagID);
282
283 auto pdyflag = dynamicFlagID;
284 if (!pdyflag)
285 dyflag = target->GetDynamicFlags();
286 else
287 dyflag = *dynamicFlagID;
288
289 if (!sFactionTemplateStore.LookupEntry(factionid))
290 {
291 handler->SendErrorMessage(LANG_WRONG_FACTION, factionid);
292 return false;
293 }
294
295 handler->PSendSysMessage(LANG_YOU_CHANGE_FACTION, target->GetGUID().ToString(), factionid, flag, npcflag, dyflag);
296
297 target->SetFaction(factionid);
298 target->ReplaceAllUnitFlags(flag);
299 target->ReplaceAllNpcFlags(npcflag);
300 target->ReplaceAllDynamicFlags(dyflag);
301
302 return true;
303 }
DBCStorage< FactionTemplateEntry > sFactionTemplateStore(FactionTemplateEntryfmt)
std::uint32_t uint32
Definition Define.h:107
@ LANG_SELECT_CREATURE
Definition Language.h:32
@ LANG_WRONG_FACTION
Definition Language.h:167
@ LANG_CURRENT_FACTION
Definition Language.h:166
@ LANG_YOU_CHANGE_FACTION
Definition Language.h:168
NPCFlags
Non Player Character flags.
Definition UnitDefines.h:320
UnitFlags
Definition UnitDefines.h:255
Creature * getSelectedCreature() const
Definition Chat.cpp:418
Definition Creature.h:47
std::string ToString() const
Definition ObjectGuid.cpp:47
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:114
void ReplaceAllDynamicFlags(uint32 flag) override
Definition Unit.h:769
void SetFaction(uint32 faction)
Definition Unit.cpp:7073
NPCFlags GetNpcFlags() const
Clears emote state (looping emote)
Definition Unit.h:762
void ReplaceAllUnitFlags(UnitFlags flags)
Remove the Unit flag specify only.
Definition Unit.h:750
UnitFlags GetUnitFlags() const
Definition Unit.h:746
uint32 GetFaction() const
Definition Unit.h:851
void ReplaceAllNpcFlags(NPCFlags flags)
Definition Unit.h:766
uint32 GetDynamicFlags() const override
Definition Unit.h:768

References 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::SendErrorMessage(), Unit::SetFaction(), sFactionTemplateStore, and ObjectGuid::ToString().

Referenced by GetCommands().

◆ HandleModifyFlyCommand()

static bool modify_commandscript::HandleModifyFlyCommand ( ChatHandler handler,
float  flySpeed 
)
inlinestatic
475 {
476 Player* target = handler->getSelectedPlayerOrSelf();
477 if (CheckModifySpeed(handler, target, flySpeed, 0.1f, 50.0f, false))
478 {
480 target->SetSpeedRate(MOVE_FLIGHT, flySpeed);
481 return true;
482 }
483
484 return false;
485 }
@ LANG_YOURS_FLY_SPEED_CHANGED
Definition Language.h:185
@ LANG_YOU_CHANGE_FLY_SPEED
Definition Language.h:184

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
922 {
923 if (genderString.empty())
924 {
925 return false;
926 }
927
928 Player* target = handler->getSelectedPlayer();
929 if (!target)
930 {
932 return false;
933 }
934
935 PlayerInfo const* info = sObjectMgr->GetPlayerInfo(target->getRace(), target->getClass());
936 if (!info)
937 {
938 return false;
939 }
940
941 Gender gender;
942
943 if (StringEqualI(genderString, "male")) // MALE
944 {
945 if (target->getGender() == GENDER_MALE)
946 return true;
947
948 gender = GENDER_MALE;
949 }
950 else if (StringEqualI(genderString, "female")) // FEMALE
951 {
952 if (target->getGender() == GENDER_FEMALE)
953 return true;
954
955 gender = GENDER_FEMALE;
956 }
957 else
958 {
960 return false;
961 }
962
963 // Set gender
964 target->SetByteValue(UNIT_FIELD_BYTES_0, 2, gender);
965 target->SetByteValue(PLAYER_BYTES_3, 0, gender);
966
967 // Change display ID
968 target->InitDisplayIds();
969
970 char const* gender_full = gender ? "female" : "male";
971
972 handler->PSendSysMessage(LANG_YOU_CHANGE_GENDER, handler->GetNameLink(target), gender_full);
973
974 if (handler->needReportToTarget(target))
975 {
977 }
978
979 return true;
980 }
@ LANG_MUST_MALE_OR_FEMALE
Definition Language.h:920
@ LANG_YOU_CHANGE_GENDER
Definition Language.h:921
@ LANG_YOUR_GENDER_CHANGED
Definition Language.h:922
#define sObjectMgr
Definition ObjectMgr.h:1723
Gender
Definition SharedDefines.h:60
@ GENDER_MALE
Definition SharedDefines.h:61
@ GENDER_FEMALE
Definition SharedDefines.h:62
@ PLAYER_BYTES_3
Definition UpdateFields.h:183
@ UNIT_FIELD_BYTES_0
Definition UpdateFields.h:95
bool StringEqualI(std::string_view a, std::string_view b)
Definition Util.cpp:592
void SetByteValue(uint16 index, uint8 offset, uint8 value)
Definition Object.cpp:739
void InitDisplayIds()
Definition Player.cpp:10567
uint8 getGender() const
Definition Unit.h:848
uint8 getClass() const
Definition Unit.h:843
uint8 getRace(bool original=false) const
Definition Unit.cpp:17048
Definition Player.h:322

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::SendErrorMessage(), Object::SetByteValue(), sObjectMgr, StringEqualI(), and UNIT_FIELD_BYTES_0.

Referenced by GetCommands().

◆ HandleModifyHonorCommand()

static bool modify_commandscript::HandleModifyHonorCommand ( ChatHandler handler,
int32  amount 
)
inlinestatic
695 {
696 Player* target = handler->getSelectedPlayer();
697 if (!target)
698 {
700 return false;
701 }
702
703 // check online security
704 if (handler->HasLowerSecurity(target))
705 {
706 return false;
707 }
708
709 target->ModifyHonorPoints(amount);
710
711 handler->PSendSysMessage(LANG_COMMAND_MODIFY_HONOR, handler->GetNameLink(target), target->GetHonorPoints());
712
713 return true;
714 }
@ LANG_COMMAND_MODIFY_HONOR
Definition Language.h:347
uint32 GetHonorPoints() const
Definition Player.h:2172
void ModifyHonorPoints(int32 value, CharacterDatabaseTransaction trans=CharacterDatabaseTransaction(nullptr))
Definition Player.cpp:6287

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

Referenced by GetCommands().

◆ HandleModifyHPCommand()

static bool modify_commandscript::HandleModifyHPCommand ( ChatHandler handler,
int32  healthPoints 
)
inlinestatic
125 {
126 Player* target = handler->getSelectedPlayer();
127
128 if (!CheckModifyInt32(handler, target, healthPoints))
129 {
130 return false;
131 }
132
133 handler->PSendSysMessage(LANG_YOU_CHANGE_HP, handler->GetNameLink(target), healthPoints, healthPoints);
134
135 if (handler->needReportToTarget(target))
136 {
137 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_HP_CHANGED, handler->GetNameLink(), healthPoints, healthPoints);
138 }
139
140 target->SetMaxHealth(healthPoints);
141 target->SetHealth(healthPoints);
142
143 return true;
144 }
@ LANG_YOURS_HP_CHANGED
Definition Language.h:156
@ LANG_YOU_CHANGE_HP
Definition Language.h:155
void SetHealth(uint32 val)
Definition Unit.cpp:12341
void SetMaxHealth(uint32 val)
Definition Unit.cpp:12391

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
148 {
149 Player* target = handler->getSelectedPlayer();
150
151 if (!CheckModifyInt32(handler, target, manaPoints))
152 {
153 return false;
154 }
155
156 handler->PSendSysMessage(LANG_YOU_CHANGE_MANA, handler->GetNameLink(target), manaPoints, manaPoints);
157
158 if (handler->needReportToTarget(target))
159 {
160 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_MANA_CHANGED, handler->GetNameLink(), manaPoints, manaPoints);
161 }
162
163 target->SetMaxPower(POWER_MANA, manaPoints);
164 target->SetPower(POWER_MANA, manaPoints);
165
166 return true;
167 }
@ LANG_YOURS_MANA_CHANGED
Definition Language.h:158
@ LANG_YOU_CHANGE_MANA
Definition Language.h:157
@ POWER_MANA
Definition SharedDefines.h:257

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
558 {
559 if (money.empty())
560 {
561 return false;
562 }
563
564 Player* target = handler->getSelectedPlayer();
565 if (!target)
566 {
568 return false;
569 }
570
571 // check online security
572 if (handler->HasLowerSecurity(target))
573 {
574 return false;
575 }
576
577 auto IsExistWord = [](std::string_view line, std::initializer_list<std::string_view> words)
578 {
579 for (auto const& word : words)
580 {
581 if (line.find(word) != std::string_view::npos)
582 {
583 return true;
584 }
585 }
586
587 return false;
588 };
589
590 Optional<int32> moneyToAddO = 0;
591 if (IsExistWord(money, { "g", "s", "c" }))
592 {
593 moneyToAddO = MoneyStringToMoney(money);
594 }
595 else
596 {
597 moneyToAddO = Acore::StringTo<int32>(money);
598 }
599
600 if (!moneyToAddO)
601 {
602 return false;
603 }
604
605 int32 moneyToAdd = *moneyToAddO;
606 uint32 targetMoney = target->GetMoney();
607
608 if (moneyToAdd < 0)
609 {
610 int32 newmoney = int32(targetMoney) + moneyToAdd;
611
612 LOG_DEBUG("chat.system", handler->GetAcoreString(LANG_CURRENT_MONEY), targetMoney, moneyToAdd, newmoney);
613 if (newmoney <= 0)
614 {
615 handler->PSendSysMessage(LANG_YOU_TAKE_ALL_MONEY, handler->GetNameLink(target));
616 if (handler->needReportToTarget(target))
618
619 target->SetMoney(0);
620 }
621 else
622 {
623 if (newmoney > MAX_MONEY_AMOUNT)
624 newmoney = MAX_MONEY_AMOUNT;
625
626 handler->PSendSysMessage(LANG_YOU_TAKE_MONEY, std::abs(moneyToAdd), handler->GetNameLink(target));
627 if (handler->needReportToTarget(target))
628 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_MONEY_TAKEN, handler->GetNameLink(), std::abs(moneyToAdd));
629 target->SetMoney(newmoney);
630 }
631 }
632 else
633 {
634 handler->PSendSysMessage(LANG_YOU_GIVE_MONEY, moneyToAdd, handler->GetNameLink(target));
635 if (handler->needReportToTarget(target))
636 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_MONEY_GIVEN, handler->GetNameLink(), moneyToAdd);
637
638 if (moneyToAdd >= MAX_MONEY_AMOUNT)
639 moneyToAdd = MAX_MONEY_AMOUNT;
640
641 if (targetMoney >= uint32(MAX_MONEY_AMOUNT) - moneyToAdd)
642 moneyToAdd -= targetMoney;
643
644 target->ModifyMoney(moneyToAdd);
645 }
646
647 LOG_DEBUG("chat.system", handler->GetAcoreString(LANG_NEW_MONEY), targetMoney, moneyToAdd, target->GetMoney());
648
649 return true;
650 }
std::int32_t int32
Definition Define.h:103
@ LANG_CURRENT_MONEY
Definition Language.h:193
@ LANG_YOU_TAKE_ALL_MONEY
Definition Language.h:194
@ LANG_YOURS_MONEY_TAKEN
Definition Language.h:197
@ LANG_YOURS_ALL_MONEY_GONE
Definition Language.h:195
@ LANG_YOU_TAKE_MONEY
Definition Language.h:196
@ LANG_YOURS_MONEY_GIVEN
Definition Language.h:199
@ LANG_NEW_MONEY
Definition Language.h:202
@ LANG_YOU_GIVE_MONEY
Definition Language.h:198
std::optional< T > Optional
Optional helper class to wrap optional values within.
Definition Optional.h:24
#define MAX_MONEY_AMOUNT
Definition Player.h:923
Optional< int32 > MoneyStringToMoney(std::string_view moneyString)
Definition Util.cpp:108
bool ModifyMoney(int32 amount, bool sendError=true)
Definition Player.cpp:11458
uint32 GetMoney() const
Definition Player.h:1624
void SetMoney(uint32 value)
Definition Player.h:1634

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::SendErrorMessage(), and Player::SetMoney().

Referenced by GetCommands().

◆ HandleModifyMountCommand()

static bool modify_commandscript::HandleModifyMountCommand ( ChatHandler handler,
uint32  creatureDisplayID,
Optional< float >  speed 
)
inlinestatic
521 {
522 if (!sCreatureDisplayInfoStore.LookupEntry(creatureDisplayID))
523 {
525 return false;
526 }
527
528 Player* target = handler->getSelectedPlayerOrSelf();
529 if (!target)
530 {
532 return false;
533 }
534
535 // check online security
536 if (handler->HasLowerSecurity(target, ObjectGuid::Empty))
537 {
538 return false;
539 }
540
541 float _speed = speed ? *speed : 1.0f;
542
543 if (!CheckModifySpeed(handler, target, _speed, 0.1f, 50.0f))
544 {
545 return false;
546 }
547
549
550 target->Mount(creatureDisplayID);
551 target->SetSpeed(MOVE_RUN, _speed, true);
552 target->SetSpeed(MOVE_FLIGHT, _speed, true);
553 return true;
554 }
DBCStorage< CreatureDisplayInfoEntry > sCreatureDisplayInfoStore(CreatureDisplayInfofmt)
@ LANG_NO_MOUNT
Definition Language.h:189
@ LANG_YOU_GIVE_MOUNT
Definition Language.h:190
@ LANG_MOUNT_GIVED
Definition Language.h:191
static ObjectGuid const Empty
Definition ObjectGuid.h:120
void Mount(uint32 mount, uint32 vehicleId=0, uint32 creatureEntry=0)
Definition Unit.cpp:10505

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::SendErrorMessage(), and Unit::SetSpeed().

Referenced by GetCommands().

◆ HandleModifyPhaseCommand()

static bool modify_commandscript::HandleModifyPhaseCommand ( ChatHandler handler,
uint32  phaseMask 
)
inlinestatic
883 {
884 Unit* target = handler->getSelectedUnit();
885 if (!target)
886 {
887 target = handler->GetSession()->GetPlayer();
888 }
889 else if (target->IsPlayer() && handler->HasLowerSecurity(target->ToPlayer())) // check online security
890 {
891 return false;
892 }
893
894 target->SetPhaseMask(phaseMask, true);
895 return true;
896 }
WorldSession * GetSession()
Definition Chat.h:242
void SetPhaseMask(uint32 newPhaseMask, bool update) override
Definition Unit.cpp:15303
Player * GetPlayer() const
Definition WorldSession.h:454

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

Referenced by GetCommands().

◆ HandleModifyRageCommand()

static bool modify_commandscript::HandleModifyRageCommand ( ChatHandler handler,
int32  ragePoints 
)
inlinestatic
198 {
199 Player* target = handler->getSelectedPlayer();
200
201 if (!CheckModifyInt32(handler, target, ragePoints))
202 {
203 return false;
204 }
205
206 ragePoints *= 10;
207
208 handler->PSendSysMessage(LANG_YOU_CHANGE_RAGE, handler->GetNameLink(target), ragePoints / 10, ragePoints / 10);
209
210 if (handler->needReportToTarget(target))
211 {
212 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_RAGE_CHANGED, handler->GetNameLink(), ragePoints / 10, ragePoints / 10);
213 }
214
215 target->SetMaxPower(POWER_RAGE, ragePoints);
216 target->SetPower(POWER_RAGE, ragePoints);
217
218 return true;
219 }
@ LANG_YOU_CHANGE_RAGE
Definition Language.h:163
@ LANG_YOURS_RAGE_CHANGED
Definition Language.h:164
@ POWER_RAGE
Definition SharedDefines.h:258

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
732 {
733 Player* target = handler->getSelectedPlayer();
734 if (!target)
735 {
737 return false;
738 }
739
740 // check online security
741 if (handler->HasLowerSecurity(target))
742 {
743 return false;
744 }
745
746 int32 amount = 0;
747
748 if (rank.holds_alternative<std::string>())
749 {
750 std::string rankStr = rank.get<std::string>();
751 std::wstring wrankStr;
752
753 if (!Utf8toWStr(rankStr, wrankStr))
754 {
755 return false;
756 }
757
758 wstrToLower(wrankStr);
759
760 int32 r = 0;
761 amount = -42000;
762
763 for (; r < MAX_REPUTATION_RANK; ++r)
764 {
765 std::string rank = handler->GetAcoreString(ReputationRankStrIndex[r]);
766 if (rank.empty())
767 continue;
768
769 std::wstring wrank;
770 if (!Utf8toWStr(rank, wrank))
771 continue;
772
773 wstrToLower(wrank);
774
775 if (wrank.substr(0, wrankStr.size()) == wrankStr)
776 {
777 if (delta)
778 {
779 if (*delta < 0 || (*delta > ReputationMgr::PointsInRank[r] - 1))
780 {
782 return false;
783 }
784
785 amount += *delta;
786 }
787
788 break;
789 }
790
791 amount += ReputationMgr::PointsInRank[r];
792 }
793
794 if (r >= MAX_REPUTATION_RANK)
795 {
796 handler->SendErrorMessage(LANG_COMMAND_FACTION_INVPARAM, rankStr.c_str());
797 return false;
798 }
799 }
800 else
801 {
802 amount = rank.get<int32>();
803 }
804
805 if (!amount)
806 {
807 return false;
808 }
809
810 FactionEntry const* factionEntry = sFactionStore.LookupEntry(factionId);
811
812 if (!factionEntry)
813 {
815 return false;
816 }
817
818 if (factionEntry->reputationListID < 0)
819 {
820 handler->SendErrorMessage(LANG_COMMAND_FACTION_NOREP_ERROR, factionEntry->name[handler->GetSessionDbcLocale()], factionId);
821 return false;
822 }
823
824 target->GetReputationMgr().SetOneFactionReputation(factionEntry, float(amount), false);
825 target->GetReputationMgr().SendState(target->GetReputationMgr().GetState(factionEntry));
826
827 handler->PSendSysMessage(LANG_COMMAND_MODIFY_REP, factionEntry->name[handler->GetSessionDbcLocale()], factionId,
828 handler->GetNameLink(target), target->GetReputationMgr().GetReputation(factionEntry));
829 return true;
830 }
DBCStorage< FactionEntry > sFactionStore(FactionEntryfmt)
@ LANG_COMMAND_FACTION_UNKNOWN
Definition Language.h:358
@ LANG_COMMAND_FACTION_DELTA
Definition Language.h:360
@ LANG_COMMAND_FACTION_NOREP_ERROR
Definition Language.h:376
@ LANG_COMMAND_MODIFY_REP
Definition Language.h:355
@ LANG_COMMAND_FACTION_INVPARAM
Definition Language.h:359
constexpr std::array< uint32, MAX_REPUTATION_RANK > ReputationRankStrIndex
Definition ReputationMgr.h:27
#define MAX_REPUTATION_RANK
Definition SharedDefines.h:233
bool Utf8toWStr(char const *utf8str, std::size_t csize, wchar_t *wstr, std::size_t &wsize)
Definition Util.cpp:281
void wstrToLower(std::wstring &str)
Definition Util.cpp:382
virtual LocaleConstant GetSessionDbcLocale() const
Definition Chat.cpp:878
ReputationMgr & GetReputationMgr()
Definition Player.h:2145
static const int32 PointsInRank[MAX_REPUTATION_RANK]
Definition ReputationMgr.h:28
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:81
constexpr decltype(auto) get()
Definition ChatCommandTags.h:289
constexpr bool holds_alternative() const
Definition ChatCommandTags.h:303
Definition DBCStructure.h:907
char const * name[16]
Definition DBCStructure.h:919
int32 reputationListID
Definition DBCStructure.h:909

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, ChatHandler::SendErrorMessage(), ReputationMgr::SendState(), ReputationMgr::SetOneFactionReputation(), sFactionStore, Utf8toWStr(), and wstrToLower().

Referenced by GetCommands().

◆ HandleModifyRunicPowerCommand()

static bool modify_commandscript::HandleModifyRunicPowerCommand ( ChatHandler handler,
int32  runePoints 
)
inlinestatic
223 {
224 Player* target = handler->getSelectedPlayer();
225
226 if (!CheckModifyInt32(handler, target, runePoints))
227 {
228 return false;
229 }
230
231 runePoints *= 10;
232
233 handler->PSendSysMessage(LANG_YOU_CHANGE_RUNIC_POWER, handler->GetNameLink(target), runePoints / 10, runePoints / 10);
234
235 if (handler->needReportToTarget(target))
236 {
237 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_RUNIC_POWER_CHANGED, handler->GetNameLink(), runePoints / 10, runePoints / 10);
238 }
239
240 target->SetMaxPower(POWER_RUNIC_POWER, runePoints);
241 target->SetPower(POWER_RUNIC_POWER, runePoints);
242
243 return true;
244 }
@ LANG_YOU_CHANGE_RUNIC_POWER
Definition Language.h:217
@ LANG_YOURS_RUNIC_POWER_CHANGED
Definition Language.h:218
@ POWER_RUNIC_POWER
Definition SharedDefines.h:263

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
489 {
490 if (scale > 10.0f || scale < 0.1f)
491 {
493 return false;
494 }
495
496 Unit* target = handler->getSelectedUnit();
497 if (!target)
498 {
500 return false;
501 }
502
503 if (Player* player = target->ToPlayer())
504 {
505 // check online security
506 if (handler->HasLowerSecurity(player))
507 return false;
508
509 handler->PSendSysMessage(LANG_YOU_CHANGE_SIZE, scale, handler->GetNameLink(player));
510 if (handler->needReportToTarget(player))
511 ChatHandler(player->GetSession()).PSendSysMessage(LANG_YOURS_SIZE_CHANGED, handler->GetNameLink(), scale);
512 }
513
514 target->SetObjectScale(scale);
515
516 return true;
517 }
@ LANG_YOU_CHANGE_SIZE
Definition Language.h:187
@ LANG_YOURS_SIZE_CHANGED
Definition Language.h:188
@ LANG_SELECT_CHAR_OR_CREATURE
Definition Language.h:31
virtual void SetObjectScale(float scale)
Definition Object.h:121

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::SendErrorMessage(), Object::SetObjectScale(), and Object::ToPlayer().

Referenced by GetCommands().

◆ HandleModifySpeedCommand()

static bool modify_commandscript::HandleModifySpeedCommand ( ChatHandler handler,
float  speed 
)
inlinestatic
433 {
434 Player* target = handler->getSelectedPlayerOrSelf();
435 if (CheckModifySpeed(handler, target, speed, 0.1f, 50.0f))
436 {
438 target->SetSpeedRate(MOVE_RUN, speed);
439 return true;
440 }
441
442 return false;
443 }
@ LANG_YOU_CHANGE_SPEED
Definition Language.h:178
@ LANG_YOURS_SPEED_CHANGED
Definition Language.h:179

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
307 {
308 Player* target = handler->getSelectedPlayer();
309 if (!target)
310 {
312 return false;
313 }
314
315 // check online security
316 if (handler->HasLowerSecurity(target))
317 {
318 return false;
319 }
320
321 handler->PSendSysMessage(LANG_YOU_CHANGE_SPELLFLATID, spellFlatID, val, mark ? *mark : 65535, handler->GetNameLink(target));
322 if (handler->needReportToTarget(target))
323 {
324 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_SPELLFLATID_CHANGED, handler->GetNameLink(), spellFlatID, val, mark ? *mark : 65535);
325 }
326
327 WorldPacket data(SMSG_SET_FLAT_SPELL_MODIFIER, (1 + 1 + 2 + 2));
328 data << uint8(spellFlatID);
329 data << uint8(op);
330 data << uint16(val);
331 data << uint16(mark ? *mark : 65535);
332 target->SendDirectMessage(&data);
333
334 return true;
335 }
std::uint8_t uint8
Definition Define.h:109
std::uint16_t uint16
Definition Define.h:108
@ LANG_YOURS_SPELLFLATID_CHANGED
Definition Language.h:170
@ LANG_YOU_CHANGE_SPELLFLATID
Definition Language.h:169
void SendDirectMessage(WorldPacket const *data) const
Definition Player.cpp:5692
Definition WorldPacket.h:26
@ SMSG_SET_FLAT_SPELL_MODIFIER
Definition Opcodes.h:644

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(), Player::SendDirectMessage(), ChatHandler::SendErrorMessage(), and SMSG_SET_FLAT_SPELL_MODIFIER.

Referenced by GetCommands().

◆ HandleModifyStandStateCommand()

static bool modify_commandscript::HandleModifyStandStateCommand ( ChatHandler handler,
uint32  anim 
)
inlinestatic
900 {
902 return true;
903 }
@ UNIT_NPC_EMOTESTATE
Definition UpdateFields.h:140
void SetUInt32Value(uint16 index, uint32 value)
Definition Unit.cpp:17358

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

Referenced by GetCommands().

◆ HandleModifySwimCommand()

static bool modify_commandscript::HandleModifySwimCommand ( ChatHandler handler,
float  swimSpeed 
)
inlinestatic
447 {
448 Player* target = handler->getSelectedPlayerOrSelf();
449 if (CheckModifySpeed(handler, target, swimSpeed, 0.1f, 50.0f))
450 {
452 target->SetSpeedRate(MOVE_SWIM, swimSpeed);
453 return true;
454 }
455
456 return false;
457 }
@ LANG_YOURS_SWIM_SPEED_CHANGED
Definition Language.h:181
@ LANG_YOU_CHANGE_SWIM_SPEED
Definition Language.h:180

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
339 {
340 if (!talentPoints)
341 {
342 return false;
343 }
344
345 Unit* target = handler->getSelectedUnit();
346 if (!target)
347 {
349 return false;
350 }
351
352 if (target->IsPlayer())
353 {
354 // check online security
355 if (handler->HasLowerSecurity(target->ToPlayer()))
356 {
357 return false;
358 }
359
360 target->ToPlayer()->SetFreeTalentPoints(talentPoints);
361 target->ToPlayer()->SendTalentsInfoData(false);
362 return true;
363 }
364 else if (target->IsPet())
365 {
366 Unit* owner = target->GetOwner();
367 if (owner && owner->IsPlayer() && ((Pet*)target)->IsPermanentPetFor(owner->ToPlayer()))
368 {
369 // check online security
370 if (handler->HasLowerSecurity(owner->ToPlayer()))
371 return false;
372 ((Pet*)target)->SetFreeTalentPoints(talentPoints);
373 owner->ToPlayer()->SendTalentsInfoData(true);
374 return true;
375 }
376 }
377
379 return false;
380 }
Definition Pet.h:41
void SendTalentsInfoData(bool pet)
Definition Player.cpp:14572
void SetFreeTalentPoints(uint32 points)
Definition Player.cpp:3801
Unit * GetOwner() const
Definition Unit.cpp:7699
bool IsPet() const
Definition Unit.h:797

References Unit::GetOwner(), ChatHandler::getSelectedUnit(), ChatHandler::HasLowerSecurity(), Unit::IsPet(), Object::IsPlayer(), LANG_NO_CHAR_SELECTED, ChatHandler::SendErrorMessage(), Player::SendTalentsInfoData(), Player::SetFreeTalentPoints(), and Object::ToPlayer().

Referenced by GetCommands().

◆ HandleMorphMountCommand()

static bool modify_commandscript::HandleMorphMountCommand ( ChatHandler handler,
uint32  displayID 
)
inlinestatic
867 {
868 Player* target = handler->getSelectedPlayerOrSelf();
869
870 if (target->IsPlayer() && handler->HasLowerSecurity(target->ToPlayer())) // check online security
871 return false;
872
873 if (!target->GetAuraEffectsByType(SPELL_AURA_MOUNTED).empty())
874 target->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, displayID);
875 else
876 return false;
877
878 return true;
879 }
@ SPELL_AURA_MOUNTED
Definition SpellAuraDefines.h:141
@ UNIT_FIELD_MOUNTDISPLAYID
Definition UpdateFields.h:126
AuraEffectList const & GetAuraEffectsByType(AuraType type) const
Definition Unit.h:1428

References Unit::GetAuraEffectsByType(), ChatHandler::getSelectedPlayerOrSelf(), ChatHandler::HasLowerSecurity(), Object::IsPlayer(), Unit::SetUInt32Value(), SPELL_AURA_MOUNTED, Object::ToPlayer(), and UNIT_FIELD_MOUNTDISPLAYID.

Referenced by GetCommands().

◆ HandleMorphResetCommand()

static bool modify_commandscript::HandleMorphResetCommand ( ChatHandler handler)
inlinestatic
851 {
852 Unit* target = handler->getSelectedUnit();
853 if (!target)
854 {
855 target = handler->GetSession()->GetPlayer();
856 }
857 else if (target->IsPlayer() && handler->HasLowerSecurity(target->ToPlayer())) // check online security
858 {
859 return false;
860 }
861
862 target->DeMorph();
863 return true;
864 }
void DeMorph()
Definition Unit.cpp:4545

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

Referenced by GetCommands().

◆ HandleMorphTargetCommand()

static bool modify_commandscript::HandleMorphTargetCommand ( ChatHandler handler,
uint32  displayID 
)
inlinestatic
833 {
834 Unit* target = handler->getSelectedUnit();
835
836 if (!target)
837 {
838 target = handler->GetSession()->GetPlayer();
839 }
840 else if (target->IsPlayer() && handler->HasLowerSecurity(target->ToPlayer())) // check online security
841 {
842 return false;
843 }
844
845 target->SetDisplayId(displayID);
846 return true;
847 }
virtual void SetDisplayId(uint32 modelId, float displayScale=1.f)
Definition Unit.cpp:13151

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

Referenced by GetCommands().

◆ NotifyModification()

template<typename... Args>
static void modify_commandscript::NotifyModification ( ChatHandler handler,
Unit target,
AcoreStrings  resourceMessage,
AcoreStrings  resourceReportMessage,
Args &&...  args 
)
inlinestatic
89 {
90 if (Player* player = target->ToPlayer())
91 {
92 handler->PSendSysMessage(resourceMessage, std::forward<Args>(args)..., handler->GetNameLink(player));
93
94 if (handler->needReportToTarget(player))
95 {
96 ChatHandler(player->GetSession()).PSendSysMessage(resourceReportMessage, handler->GetNameLink(), std::forward<Args>(args)...);
97 }
98 }
99 }

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

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


The documentation for this class was generated from the following file: