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
32: CommandScript("modify_commandscript") { }
Definition CommandScript.h:25

Member Function Documentation

◆ CheckModifyInt32()

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

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
382 {
383 if (speed > maximumBound || speed < minimumBound)
384 {
386 return false;
387 }
388
389 if (!target)
390 {
392 return false;
393 }
394
395 if (Player* player = target->ToPlayer())
396 {
397 // check online security
398 if (handler->HasLowerSecurity(player))
399 {
400 return false;
401 }
402
403 if (player->IsInFlight() && checkInFlight)
404 {
405 handler->SendErrorMessage(LANG_CHAR_IN_FLIGHT, handler->GetNameLink(player).c_str());
406 return false;
407 }
408 }
409
410 return true;
411 }
@ 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:1082

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.

35 {
36 static ChatCommandTable modifyspeedCommandTable =
37 {
38 { "fly", HandleModifyFlyCommand, SEC_GAMEMASTER, Console::No },
39 { "all", HandleModifyASpeedCommand, SEC_GAMEMASTER, Console::No },
40 { "walk", HandleModifySpeedCommand, SEC_GAMEMASTER, Console::No },
41 { "backwalk", HandleModifyBWalkCommand, SEC_GAMEMASTER, Console::No },
42 { "swim", HandleModifySwimCommand, SEC_GAMEMASTER, Console::No },
43 { "", HandleModifyASpeedCommand, SEC_GAMEMASTER, Console::No }
44 };
45
46 static ChatCommandTable modifyCommandTable =
47 {
48 { "hp", HandleModifyHPCommand, SEC_GAMEMASTER, Console::No },
49 { "mana", HandleModifyManaCommand, SEC_GAMEMASTER, Console::No },
50 { "rage", HandleModifyRageCommand, SEC_GAMEMASTER, Console::No },
51 { "runicpower", HandleModifyRunicPowerCommand, SEC_GAMEMASTER, Console::No },
52 { "energy", HandleModifyEnergyCommand, SEC_GAMEMASTER, Console::No },
53 { "money", HandleModifyMoneyCommand, SEC_GAMEMASTER, Console::No },
54 { "scale", HandleModifyScaleCommand, SEC_GAMEMASTER, Console::No },
55 { "bit", HandleModifyBitCommand, SEC_GAMEMASTER, Console::No },
56 { "faction", HandleModifyFactionCommand, SEC_ADMINISTRATOR, Console::No },
57 { "spell", HandleModifySpellCommand, SEC_CONSOLE, Console::No },
58 { "talentpoints", HandleModifyTalentCommand, SEC_GAMEMASTER, Console::No },
59 { "mount", HandleModifyMountCommand, SEC_GAMEMASTER, Console::No },
60 { "honor", HandleModifyHonorCommand, SEC_GAMEMASTER, Console::No },
61 { "reputation", HandleModifyRepCommand, SEC_GAMEMASTER, Console::No },
62 { "arenapoints", HandleModifyArenaCommand, SEC_GAMEMASTER, Console::No },
63 { "drunk", HandleModifyDrunkCommand, SEC_GAMEMASTER, Console::No },
64 { "standstate", HandleModifyStandStateCommand, SEC_GAMEMASTER, Console::No },
65 { "phase", HandleModifyPhaseCommand, SEC_GAMEMASTER, Console::No },
66 { "gender", HandleModifyGenderCommand, SEC_GAMEMASTER, Console::No },
67 { "speed", modifyspeedCommandTable }
68 };
69
70 static ChatCommandTable morphCommandTable =
71 {
72 { "reset", HandleMorphResetCommand, SEC_MODERATOR, Console::No },
73 { "target", HandleMorphTargetCommand, SEC_MODERATOR, Console::No },
74 { "mount", HandleMorphMountCommand, SEC_MODERATOR, Console::No }
75 };
76
77 static ChatCommandTable commandTable =
78 {
79 { "morph", morphCommandTable },
80 { "modify", modifyCommandTable }
81 };
82
83 return commandTable;
84 }
@ SEC_ADMINISTRATOR
Definition Common.h:60
@ SEC_GAMEMASTER
Definition Common.h:59
@ SEC_MODERATOR
Definition Common.h:58
@ SEC_CONSOLE
Definition Common.h:61
static bool HandleModifyScaleCommand(ChatHandler *handler, float scale)
Definition cs_modify.cpp:487
static bool HandleModifyEnergyCommand(ChatHandler *handler, int32 energyPoints)
Definition cs_modify.cpp:169
static bool HandleModifyBWalkCommand(ChatHandler *handler, float backSpeed)
Definition cs_modify.cpp:459
static bool HandleModifyFlyCommand(ChatHandler *handler, float flySpeed)
Definition cs_modify.cpp:473
static bool HandleModifyPhaseCommand(ChatHandler *handler, uint32 phaseMask)
Definition cs_modify.cpp:881
static bool HandleModifyHPCommand(ChatHandler *handler, int32 healthPoints)
Definition cs_modify.cpp:123
static bool HandleMorphTargetCommand(ChatHandler *handler, uint32 displayID)
Definition cs_modify.cpp:831
static bool HandleModifySpeedCommand(ChatHandler *handler, float speed)
Definition cs_modify.cpp:431
static bool HandleModifyASpeedCommand(ChatHandler *handler, float allSpeed)
Definition cs_modify.cpp:414
static bool HandleMorphMountCommand(ChatHandler *handler, uint32 displayID)
Definition cs_modify.cpp:865
static bool HandleModifyMountCommand(ChatHandler *handler, uint32 creatureDisplayID, Optional< float > speed)
Definition cs_modify.cpp:519
static bool HandleModifyBitCommand(ChatHandler *handler, uint16 field, uint32 bit)
Definition cs_modify.cpp:652
static bool HandleMorphResetCommand(ChatHandler *handler)
Definition cs_modify.cpp:849
static bool HandleModifyMoneyCommand(ChatHandler *handler, Tail money)
Definition cs_modify.cpp:556
static bool HandleModifySpellCommand(ChatHandler *handler, uint8 spellFlatID, uint8 op, uint16 val, Optional< uint16 > mark)
Definition cs_modify.cpp:305
static bool HandleModifyStandStateCommand(ChatHandler *handler, uint32 anim)
Definition cs_modify.cpp:898
static bool HandleModifyRepCommand(ChatHandler *handler, uint32 factionId, Variant< int32, std::string > rank, Optional< int32 > delta)
Definition cs_modify.cpp:730
static bool HandleModifyDrunkCommand(ChatHandler *handler, uint8 drunklevel)
Definition cs_modify.cpp:715
static bool HandleModifySwimCommand(ChatHandler *handler, float swimSpeed)
Definition cs_modify.cpp:445
static bool HandleModifyRageCommand(ChatHandler *handler, int32 ragePoints)
Definition cs_modify.cpp:196
static bool HandleModifyFactionCommand(ChatHandler *handler, Optional< uint32 > factionID, Optional< uint32 > flagID, Optional< uint32 > npcFlagID, Optional< uint32 > dynamicFlagID)
Definition cs_modify.cpp:246
static bool HandleModifyRunicPowerCommand(ChatHandler *handler, int32 runePoints)
Definition cs_modify.cpp:221
static bool HandleModifyHonorCommand(ChatHandler *handler, int32 amount)
Definition cs_modify.cpp:693
static bool HandleModifyManaCommand(ChatHandler *handler, int32 manaPoints)
Definition cs_modify.cpp:146
static bool HandleModifyGenderCommand(ChatHandler *handler, Tail genderString)
Definition cs_modify.cpp:920
static bool HandleModifyTalentCommand(ChatHandler *handler, uint32 talentPoints)
Definition cs_modify.cpp:337
static bool HandleModifyArenaCommand(ChatHandler *handler, int32 amount)
Definition cs_modify.cpp:904
std::vector< ChatCommandBuilder > ChatCommandTable
Definition ChatCommand.h:46

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(), SEC_ADMINISTRATOR, SEC_CONSOLE, SEC_GAMEMASTER, and SEC_MODERATOR.

◆ HandleModifyArenaCommand()

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

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
415 {
416 Player* target = handler->getSelectedPlayerOrSelf();
417 if (CheckModifySpeed(handler, target, allSpeed, 0.1f, 50.0f))
418 {
420 target->SetSpeed(MOVE_WALK, allSpeed);
421 target->SetSpeed(MOVE_RUN, allSpeed);
422 target->SetSpeed(MOVE_SWIM, allSpeed);
423 target->SetSpeed(MOVE_FLIGHT, allSpeed);
424 return true;
425 }
426
427 return false;
428 }
@ LANG_YOURS_ASPEED_CHANGED
Definition Language.h:174
@ LANG_YOU_CHANGE_ASPEED
Definition Language.h:173
@ MOVE_FLIGHT
Definition UnitDefines.h:355
@ MOVE_SWIM
Definition UnitDefines.h:352
@ MOVE_RUN
Definition UnitDefines.h:350
@ MOVE_WALK
Definition UnitDefines.h:349
Player * getSelectedPlayerOrSelf() const
Definition Chat.cpp:418
void SetSpeed(UnitMoveType mtype, float rate, bool forced=false)
Definition Unit.cpp:14480
static bool CheckModifySpeed(ChatHandler *handler, Unit *target, float speed, float minimumBound, float maximumBound, bool checkInFlight=true)
Definition cs_modify.cpp:381
static void NotifyModification(ChatHandler *handler, Unit *target, AcoreStrings resourceMessage, AcoreStrings resourceReportMessage, Args &&... args)
Definition cs_modify.cpp:87

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
653 {
654 Unit* target = handler->getSelectedUnit();
655 if (!target)
656 {
658 return false;
659 }
660
661 // check online security
662 if (target->IsPlayer() && handler->HasLowerSecurity(target->ToPlayer()))
663 {
664 return false;
665 }
666
667 if (field < OBJECT_END || field >= target->GetValuesCount())
668 {
670 return false;
671 }
672
673 if (bit < 1 || bit > 32)
674 {
676 return false;
677 }
678
679 if (target->HasFlag(field, (1 << (bit - 1))))
680 {
681 target->RemoveFlag(field, (1 << (bit - 1)));
682 handler->PSendSysMessage(LANG_REMOVE_BIT, bit, field);
683 }
684 else
685 {
686 target->SetFlag(field, (1 << (bit - 1)));
687 handler->PSendSysMessage(LANG_SET_BIT, bit, field);
688 }
689
690 return true;
691 }
@ LANG_REMOVE_BIT
Definition Language.h:201
@ LANG_SET_BIT
Definition Language.h:202
Unit * getSelectedUnit() const
Definition Chat.cpp:386
bool IsPlayer() const
Definition Object.h:201
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:188
Definition Unit.h:620

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
460 {
461 Player* target = handler->getSelectedPlayerOrSelf();
462 if (CheckModifySpeed(handler, target, backSpeed, 0.1f, 50.0f))
463 {
465 target->SetSpeedRate(MOVE_RUN_BACK, backSpeed);
466 return true;
467 }
468
469 return false;
470 }
@ LANG_YOU_CHANGE_BACK_SPEED
Definition Language.h:179
@ LANG_YOURS_BACK_SPEED_CHANGED
Definition Language.h:180
@ MOVE_RUN_BACK
Definition UnitDefines.h:351
void SetSpeedRate(UnitMoveType mtype, float rate)
Definition Unit.h:1647

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

References ChatHandler::getSelectedPlayer().

Referenced by GetCommands().

◆ HandleModifyEnergyCommand()

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

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
247 {
248 Creature* target = handler->getSelectedCreature();
249 if (!target)
250 {
252 return false;
253 }
254
255 if (!factionID)
256 {
257 uint32 factionid = target->GetFaction();
258 uint32 flag = target->GetUnitFlags();
259 uint32 npcflag = target->GetNpcFlags();
260 uint32 dyflag = target->GetDynamicFlags();
261 handler->PSendSysMessage(LANG_CURRENT_FACTION, target->GetGUID().ToString(), factionid, flag, npcflag, dyflag);
262 return true;
263 }
264
265 uint32 factionid = factionID.value();
266 UnitFlags flag;
267 NPCFlags npcflag;
268 uint32 dyflag;
269
270 auto pflag = flagID;
271 if (!pflag)
272 flag = target->GetUnitFlags();
273 else
274 flag = UnitFlags(*pflag);
275
276 auto pnpcflag = npcFlagID;
277 if (!pnpcflag)
278 npcflag = target->GetNpcFlags();
279 else
280 npcflag = NPCFlags(*npcFlagID);
281
282 auto pdyflag = dynamicFlagID;
283 if (!pdyflag)
284 dyflag = target->GetDynamicFlags();
285 else
286 dyflag = *dynamicFlagID;
287
288 if (!sFactionTemplateStore.LookupEntry(factionid))
289 {
290 handler->SendErrorMessage(LANG_WRONG_FACTION, factionid);
291 return false;
292 }
293
294 handler->PSendSysMessage(LANG_YOU_CHANGE_FACTION, target->GetGUID().ToString(), factionid, flag, npcflag, dyflag);
295
296 target->SetFaction(factionid);
297 target->ReplaceAllUnitFlags(flag);
298 target->ReplaceAllNpcFlags(npcflag);
299 target->ReplaceAllDynamicFlags(dyflag);
300
301 return true;
302 }
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:164
@ LANG_CURRENT_FACTION
Definition Language.h:163
@ LANG_YOU_CHANGE_FACTION
Definition Language.h:165
NPCFlags
Non Player Character flags.
Definition UnitDefines.h:313
UnitFlags
Definition UnitDefines.h:248
Creature * getSelectedCreature() const
Definition Chat.cpp:410
Definition Creature.h:43
std::string ToString() const
Definition ObjectGuid.cpp:47
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:113
void ReplaceAllDynamicFlags(uint32 flag) override
Definition Unit.h:724
void SetFaction(uint32 faction)
Definition Unit.cpp:10096
NPCFlags GetNpcFlags() const
Clears emote state (looping emote)
Definition Unit.h:717
void ReplaceAllUnitFlags(UnitFlags flags)
Remove the Unit flag specify only.
Definition Unit.h:705
UnitFlags GetUnitFlags() const
Definition Unit.h:701
uint32 GetFaction() const
Definition Unit.h:801
void ReplaceAllNpcFlags(NPCFlags flags)
Definition Unit.h:721
uint32 GetDynamicFlags() const override
Definition Unit.h:723

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
474 {
475 Player* target = handler->getSelectedPlayerOrSelf();
476 if (CheckModifySpeed(handler, target, flySpeed, 0.1f, 50.0f, false))
477 {
479 target->SetSpeedRate(MOVE_FLIGHT, flySpeed);
480 return true;
481 }
482
483 return false;
484 }
@ LANG_YOURS_FLY_SPEED_CHANGED
Definition Language.h:182
@ LANG_YOU_CHANGE_FLY_SPEED
Definition Language.h:181

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
921 {
922 if (genderString.empty())
923 {
924 return false;
925 }
926
927 Player* target = handler->getSelectedPlayer();
928 if (!target)
929 {
931 return false;
932 }
933
934 PlayerInfo const* info = sObjectMgr->GetPlayerInfo(target->getRace(), target->getClass());
935 if (!info)
936 {
937 return false;
938 }
939
940 Gender gender;
941
942 if (StringEqualI(genderString, "male")) // MALE
943 {
944 if (target->getGender() == GENDER_MALE)
945 return true;
946
947 gender = GENDER_MALE;
948 }
949 else if (StringEqualI(genderString, "female")) // FEMALE
950 {
951 if (target->getGender() == GENDER_FEMALE)
952 return true;
953
954 gender = GENDER_FEMALE;
955 }
956 else
957 {
959 return false;
960 }
961
962 // Set gender
963 target->SetByteValue(UNIT_FIELD_BYTES_0, 2, gender);
964 target->SetByteValue(PLAYER_BYTES_3, 0, gender);
965
966 // Change display ID
967 target->InitDisplayIds();
968
969 char const* gender_full = gender ? "female" : "male";
970
971 handler->PSendSysMessage(LANG_YOU_CHANGE_GENDER, handler->GetNameLink(target), gender_full);
972
973 if (handler->needReportToTarget(target))
974 {
976 }
977
978 return true;
979 }
@ LANG_MUST_MALE_OR_FEMALE
Definition Language.h:909
@ LANG_YOU_CHANGE_GENDER
Definition Language.h:910
@ LANG_YOUR_GENDER_CHANGED
Definition Language.h:911
#define sObjectMgr
Definition ObjectMgr.h:1650
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:750
void InitDisplayIds()
Definition Player.cpp:10565
uint8 getGender() const
Definition Unit.h:798
uint8 getClass() const
Definition Unit.h:793
uint8 getRace(bool original=false) const
Definition Unit.cpp:20820
Definition Player.h:341

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
694 {
695 Player* target = handler->getSelectedPlayer();
696 if (!target)
697 {
699 return false;
700 }
701
702 // check online security
703 if (handler->HasLowerSecurity(target))
704 {
705 return false;
706 }
707
708 target->ModifyHonorPoints(amount);
709
710 handler->PSendSysMessage(LANG_COMMAND_MODIFY_HONOR, handler->GetNameLink(target), target->GetHonorPoints());
711
712 return true;
713 }
@ LANG_COMMAND_MODIFY_HONOR
Definition Language.h:339
uint32 GetHonorPoints() const
Definition Player.h:2162
void ModifyHonorPoints(int32 value, CharacterDatabaseTransaction trans=CharacterDatabaseTransaction(nullptr))
Definition Player.cpp:6291

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
124 {
125 Player* target = handler->getSelectedPlayer();
126
127 if (!CheckModifyInt32(handler, target, healthPoints))
128 {
129 return false;
130 }
131
132 handler->PSendSysMessage(LANG_YOU_CHANGE_HP, handler->GetNameLink(target), healthPoints, healthPoints);
133
134 if (handler->needReportToTarget(target))
135 {
136 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_HP_CHANGED, handler->GetNameLink(), healthPoints, healthPoints);
137 }
138
139 target->SetMaxHealth(healthPoints);
140 target->SetHealth(healthPoints);
141
142 return true;
143 }
@ LANG_YOURS_HP_CHANGED
Definition Language.h:153
@ LANG_YOU_CHANGE_HP
Definition Language.h:152
void SetHealth(uint32 val)
Definition Unit.cpp:15529
void SetMaxHealth(uint32 val)
Definition Unit.cpp:15579

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

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

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
520 {
521 if (!sCreatureDisplayInfoStore.LookupEntry(creatureDisplayID))
522 {
524 return false;
525 }
526
527 Player* target = handler->getSelectedPlayerOrSelf();
528 if (!target)
529 {
531 return false;
532 }
533
534 // check online security
535 if (handler->HasLowerSecurity(target, ObjectGuid::Empty))
536 {
537 return false;
538 }
539
540 float _speed = speed ? *speed : 1.0f;
541
542 if (!CheckModifySpeed(handler, target, _speed, 0.1f, 50.0f))
543 {
544 return false;
545 }
546
548
549 target->Mount(creatureDisplayID);
550 target->SetSpeed(MOVE_RUN, _speed, true);
551 target->SetSpeed(MOVE_FLIGHT, _speed, true);
552 return true;
553 }
DBCStorage< CreatureDisplayInfoEntry > sCreatureDisplayInfoStore(CreatureDisplayInfofmt)
@ LANG_NO_MOUNT
Definition Language.h:186
@ LANG_YOU_GIVE_MOUNT
Definition Language.h:187
@ LANG_MOUNT_GIVED
Definition Language.h:188
static ObjectGuid const Empty
Definition ObjectGuid.h:120
void Mount(uint32 mount, uint32 vehicleId=0, uint32 creatureEntry=0)
Definition Unit.cpp:13509

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
882 {
883 Unit* target = handler->getSelectedUnit();
884 if (!target)
885 {
886 target = handler->GetSession()->GetPlayer();
887 }
888 else if (target->IsPlayer() && handler->HasLowerSecurity(target->ToPlayer())) // check online security
889 {
890 return false;
891 }
892
893 target->SetPhaseMask(phaseMask, true);
894 return true;
895 }
WorldSession * GetSession()
Definition Chat.h:242
void SetPhaseMask(uint32 newPhaseMask, bool update) override
Definition Unit.cpp:19096
Player * GetPlayer() const
Definition WorldSession.h:376

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
197 {
198 Player* target = handler->getSelectedPlayer();
199
200 if (!CheckModifyInt32(handler, target, ragePoints))
201 {
202 return false;
203 }
204
205 ragePoints *= 10;
206
207 handler->PSendSysMessage(LANG_YOU_CHANGE_RAGE, handler->GetNameLink(target), ragePoints / 10, ragePoints / 10);
208
209 if (handler->needReportToTarget(target))
210 {
211 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_RAGE_CHANGED, handler->GetNameLink(), ragePoints / 10, ragePoints / 10);
212 }
213
214 target->SetMaxPower(POWER_RAGE, ragePoints);
215 target->SetPower(POWER_RAGE, ragePoints);
216
217 return true;
218 }
@ LANG_YOU_CHANGE_RAGE
Definition Language.h:160
@ LANG_YOURS_RAGE_CHANGED
Definition Language.h:161
@ POWER_RAGE
Definition SharedDefines.h:270

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
731 {
732 Player* target = handler->getSelectedPlayer();
733 if (!target)
734 {
736 return false;
737 }
738
739 // check online security
740 if (handler->HasLowerSecurity(target))
741 {
742 return false;
743 }
744
745 int32 amount = 0;
746
747 if (rank.holds_alternative<std::string>())
748 {
749 std::string rankStr = rank.get<std::string>();
750 std::wstring wrankStr;
751
752 if (!Utf8toWStr(rankStr, wrankStr))
753 {
754 return false;
755 }
756
757 wstrToLower(wrankStr);
758
759 int32 r = 0;
760 amount = -42000;
761
762 for (; r < MAX_REPUTATION_RANK; ++r)
763 {
764 std::string rank = handler->GetAcoreString(ReputationRankStrIndex[r]);
765 if (rank.empty())
766 continue;
767
768 std::wstring wrank;
769 if (!Utf8toWStr(rank, wrank))
770 continue;
771
772 wstrToLower(wrank);
773
774 if (wrank.substr(0, wrankStr.size()) == wrankStr)
775 {
776 if (delta)
777 {
778 if (*delta < 0 || (*delta > ReputationMgr::PointsInRank[r] - 1))
779 {
781 return false;
782 }
783
784 amount += *delta;
785 }
786
787 break;
788 }
789
790 amount += ReputationMgr::PointsInRank[r];
791 }
792
793 if (r >= MAX_REPUTATION_RANK)
794 {
795 handler->SendErrorMessage(LANG_COMMAND_FACTION_INVPARAM, rankStr.c_str());
796 return false;
797 }
798 }
799 else
800 {
801 amount = rank.get<int32>();
802 }
803
804 if (!amount)
805 {
806 return false;
807 }
808
809 FactionEntry const* factionEntry = sFactionStore.LookupEntry(factionId);
810
811 if (!factionEntry)
812 {
814 return false;
815 }
816
817 if (factionEntry->reputationListID < 0)
818 {
819 handler->SendErrorMessage(LANG_COMMAND_FACTION_NOREP_ERROR, factionEntry->name[handler->GetSessionDbcLocale()], factionId);
820 return false;
821 }
822
823 target->GetReputationMgr().SetOneFactionReputation(factionEntry, float(amount), false);
824 target->GetReputationMgr().SendState(target->GetReputationMgr().GetState(factionEntry));
825
826 handler->PSendSysMessage(LANG_COMMAND_MODIFY_REP, factionEntry->name[handler->GetSessionDbcLocale()], factionId,
827 handler->GetNameLink(target), target->GetReputationMgr().GetReputation(factionEntry));
828 return true;
829 }
DBCStorage< FactionEntry > sFactionStore(FactionEntryfmt)
@ LANG_COMMAND_FACTION_UNKNOWN
Definition Language.h:350
@ LANG_COMMAND_FACTION_DELTA
Definition Language.h:352
@ LANG_COMMAND_FACTION_NOREP_ERROR
Definition Language.h:368
@ LANG_COMMAND_MODIFY_REP
Definition Language.h:347
@ LANG_COMMAND_FACTION_INVPARAM
Definition Language.h:351
constexpr std::array< uint32, MAX_REPUTATION_RANK > ReputationRankStrIndex
Definition ReputationMgr.h:27
#define MAX_REPUTATION_RANK
Definition SharedDefines.h:245
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:870
ReputationMgr & GetReputationMgr()
Definition Player.h:2135
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:284
constexpr bool holds_alternative() const
Definition ChatCommandTags.h:298
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
222 {
223 Player* target = handler->getSelectedPlayer();
224
225 if (!CheckModifyInt32(handler, target, runePoints))
226 {
227 return false;
228 }
229
230 runePoints *= 10;
231
232 handler->PSendSysMessage(LANG_YOU_CHANGE_RUNIC_POWER, handler->GetNameLink(target), runePoints / 10, runePoints / 10);
233
234 if (handler->needReportToTarget(target))
235 {
236 ChatHandler(target->GetSession()).PSendSysMessage(LANG_YOURS_RUNIC_POWER_CHANGED, handler->GetNameLink(), runePoints / 10, runePoints / 10);
237 }
238
239 target->SetMaxPower(POWER_RUNIC_POWER, runePoints);
240 target->SetPower(POWER_RUNIC_POWER, runePoints);
241
242 return true;
243 }
@ LANG_YOU_CHANGE_RUNIC_POWER
Definition Language.h:214
@ LANG_YOURS_RUNIC_POWER_CHANGED
Definition Language.h:215
@ POWER_RUNIC_POWER
Definition SharedDefines.h:275

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

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
432 {
433 Player* target = handler->getSelectedPlayerOrSelf();
434 if (CheckModifySpeed(handler, target, speed, 0.1f, 50.0f))
435 {
437 target->SetSpeedRate(MOVE_RUN, speed);
438 return true;
439 }
440
441 return false;
442 }
@ LANG_YOU_CHANGE_SPEED
Definition Language.h:175
@ LANG_YOURS_SPEED_CHANGED
Definition Language.h:176

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

Referenced by GetCommands().

◆ HandleModifyStandStateCommand()

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

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
446 {
447 Player* target = handler->getSelectedPlayerOrSelf();
448 if (CheckModifySpeed(handler, target, swimSpeed, 0.1f, 50.0f))
449 {
451 target->SetSpeedRate(MOVE_SWIM, swimSpeed);
452 return true;
453 }
454
455 return false;
456 }
@ LANG_YOURS_SWIM_SPEED_CHANGED
Definition Language.h:178
@ LANG_YOU_CHANGE_SWIM_SPEED
Definition Language.h:177

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

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
866 {
867 Player* target = handler->getSelectedPlayerOrSelf();
868
869 if (target->IsPlayer() && handler->HasLowerSecurity(target->ToPlayer())) // check online security
870 return false;
871
872 if (!target->GetAuraEffectsByType(SPELL_AURA_MOUNTED).empty())
873 target->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, displayID);
874 else
875 return false;
876
877 return true;
878 }
@ SPELL_AURA_MOUNTED
Definition SpellAuraDefines.h:141
@ UNIT_FIELD_MOUNTDISPLAYID
Definition UpdateFields.h:126
AuraEffectList const & GetAuraEffectsByType(AuraType type) const
Definition Unit.h:1349

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
850 {
851 Unit* target = handler->getSelectedUnit();
852 if (!target)
853 {
854 target = handler->GetSession()->GetPlayer();
855 }
856 else if (target->IsPlayer() && handler->HasLowerSecurity(target->ToPlayer())) // check online security
857 {
858 return false;
859 }
860
861 target->DeMorph();
862 return true;
863 }
void DeMorph()
Definition Unit.cpp:4382

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
832 {
833 Unit* target = handler->getSelectedUnit();
834
835 if (!target)
836 {
837 target = handler->GetSession()->GetPlayer();
838 }
839 else if (target->IsPlayer() && handler->HasLowerSecurity(target->ToPlayer())) // check online security
840 {
841 return false;
842 }
843
844 target->SetDisplayId(displayID);
845 return true;
846 }
virtual void SetDisplayId(uint32 modelId, float displayScale=1.f)
Definition Unit.cpp:16795

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
88 {
89 if (Player* player = target->ToPlayer())
90 {
91 handler->PSendSysMessage(resourceMessage, std::forward<Args>(args)..., handler->GetNameLink(player));
92
93 if (handler->needReportToTarget(player))
94 {
95 ChatHandler(player->GetSession()).PSendSysMessage(resourceReportMessage, handler->GetNameLink(), std::forward<Args>(args)...);
96 }
97 }
98 }

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: