diff options
author | Peter Keresztes Schmidt <carbenium@outlook.com> | 2020-09-10 01:05:44 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-02-05 20:50:33 +0100 |
commit | 26f3c25dae6b0170688277b05b9a37f257b16c68 (patch) | |
tree | fbc3e27303ec87804e3d4f81e9468064c891bd33 /src/server/scripts/Commands | |
parent | 54fc62db52f72b5a6ce9389d390e5003dd861680 (diff) |
Scripts/Commands: Convert remaining debug commands (PR #25429)
(cherry picked from commit 062c55f1ab9c84396ce5b054945f5a908e3a354f)
Diffstat (limited to 'src/server/scripts/Commands')
-rw-r--r-- | src/server/scripts/Commands/cs_debug.cpp | 254 |
1 files changed, 70 insertions, 184 deletions
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp index ce9d0952f73..0ab2286f3b5 100644 --- a/src/server/scripts/Commands/cs_debug.cpp +++ b/src/server/scripts/Commands/cs_debug.cpp @@ -27,6 +27,7 @@ EndScriptData */ #include "BattlefieldMgr.h" #include "BattlegroundMgr.h" #include "CellImpl.h" +#include "Channel.h" #include "ChannelPackets.h" #include "Chat.h" #include "ChatPackets.h" @@ -116,7 +117,6 @@ public: { "send", rbac::RBAC_PERM_COMMAND_DEBUG_SEND, false, nullptr, "", debugSendCommandTable }, { "setaurastate", rbac::RBAC_PERM_COMMAND_DEBUG_SETAURASTATE, false, &HandleDebugSetAuraStateCommand, "" }, { "spawnvehicle", rbac::RBAC_PERM_COMMAND_DEBUG_SPAWNVEHICLE, false, &HandleDebugSpawnVehicleCommand, "" }, - { "setvid", rbac::RBAC_PERM_COMMAND_DEBUG_SETVID, false, &HandleDebugSetVehicleIdCommand, "" }, { "entervehicle", rbac::RBAC_PERM_COMMAND_DEBUG_ENTERVEHICLE, false, &HandleDebugEnterVehicleCommand, "" }, { "worldstate", rbac::RBAC_PERM_COMMAND_DEBUG_WORLDSTATE, false, &HandleDebugUpdateWorldStateCommand, "" }, { "itemexpire", rbac::RBAC_PERM_COMMAND_DEBUG_ITEMEXPIRE, false, &HandleDebugItemExpireCommand, "" }, @@ -218,7 +218,7 @@ public: handler->PSendSysMessage(SZFMTD " waypoints dumped", flyByCameras->size()); } - handler->GetSession()->GetPlayer()->SendCinematicStart(cinematicId); + handler->GetPlayer()->SendCinematicStart(cinematicId); return true; } @@ -233,7 +233,7 @@ public: return false; } - handler->GetSession()->GetPlayer()->SendMovieStart(movieId); + handler->GetPlayer()->SendMovieStart(movieId); return true; } @@ -247,7 +247,7 @@ public: return false; } - Player* player = handler->GetSession()->GetPlayer(); + Player* player = handler->GetPlayer(); Unit* unit = handler->getSelectedUnit(); if (!unit) @@ -276,7 +276,7 @@ public: return false; } - Player* player = handler->GetSession()->GetPlayer(); + Player* player = handler->GetPlayer(); player->PlayDirectMusic(musicId, player); @@ -284,74 +284,41 @@ public: return true; } - static bool HandleDebugSendSpellFailCommand(ChatHandler* handler, char const* args) + static bool HandleDebugSendSpellFailCommand(ChatHandler* handler, SpellCastResult result, Optional<int32> failArg1, Optional<int32> failArg2) { - if (!*args) - return false; - - char* result = strtok((char*)args, " "); - if (!result) - return false; - - uint8 failNum = (uint8)atoi(result); - if (failNum == 0 && *result != '0') - return false; - - char* fail1 = strtok(nullptr, " "); - uint8 failArg1 = fail1 ? (uint8)atoi(fail1) : 0; - - char* fail2 = strtok(nullptr, " "); - uint8 failArg2 = fail2 ? (uint8)atoi(fail2) : 0; - WorldPackets::Spells::CastFailed castFailed; castFailed.CastID = ObjectGuid::Empty; castFailed.SpellID = 133; - castFailed.Reason = failNum; - castFailed.FailedArg1 = failArg1; - castFailed.FailedArg2 = failArg2; + castFailed.Reason = result; + castFailed.FailedArg1 = failArg1.value_or(-1); + castFailed.FailedArg2 = failArg2.value_or(-1); handler->GetSession()->SendPacket(castFailed.Write()); return true; } - static bool HandleDebugSendPlayerChoiceCommand(ChatHandler* handler, char const* args) - { - if (!*args) - return false; - - int32 choiceId = atoi(args); - Player* player = handler->GetSession()->GetPlayer(); + static bool HandleDebugSendPlayerChoiceCommand(ChatHandler* handler, int32 choiceId) + { + Player* player = handler->GetPlayer(); player->SendPlayerChoice(player->GetGUID(), choiceId); return true; } - static bool HandleDebugSendEquipErrorCommand(ChatHandler* handler, char const* args) + static bool HandleDebugSendEquipErrorCommand(ChatHandler* handler, InventoryResult error) { - if (!*args) - return false; - - InventoryResult msg = InventoryResult(atoi(args)); - handler->GetSession()->GetPlayer()->SendEquipError(msg, nullptr, nullptr); + handler->GetPlayer()->SendEquipError(error, nullptr, nullptr); return true; } - static bool HandleDebugSendSellErrorCommand(ChatHandler* handler, char const* args) + static bool HandleDebugSendSellErrorCommand(ChatHandler* handler, SellResult error) { - if (!*args) - return false; - - SellResult msg = SellResult(atoi(args)); - handler->GetSession()->GetPlayer()->SendSellError(msg, nullptr, ObjectGuid::Empty); + handler->GetPlayer()->SendSellError(error, nullptr, ObjectGuid::Empty); return true; } - static bool HandleDebugSendBuyErrorCommand(ChatHandler* handler, char const* args) + static bool HandleDebugSendBuyErrorCommand(ChatHandler* handler, BuyResult error) { - if (!*args) - return false; - - BuyResult msg = BuyResult(atoi(args)); - handler->GetSession()->GetPlayer()->SendBuyError(msg, nullptr, 0, 0); + handler->GetPlayer()->SendBuyError(error, nullptr, 0, 0); return true; } @@ -360,7 +327,7 @@ public: Unit* unit = handler->getSelectedUnit(); Player* player = nullptr; if (!unit || (unit->GetTypeId() != TYPEID_PLAYER)) - player = handler->GetSession()->GetPlayer(); + player = handler->GetPlayer(); else player = unit->ToPlayer(); @@ -508,13 +475,13 @@ public: static bool HandleDebugUpdateWorldStateCommand(ChatHandler* handler, uint32 variable, uint32 value) { - handler->GetSession()->GetPlayer()->SendUpdateWorldState(variable, value); + handler->GetPlayer()->SendUpdateWorldState(variable, value); return true; } static bool HandleDebugAreaTriggersCommand(ChatHandler* handler) { - Player* player = handler->GetSession()->GetPlayer(); + Player* player = handler->GetPlayer(); if (!player->isDebugAreaTriggers) { handler->PSendSysMessage(LANG_DEBUG_AREATRIGGER_ON); @@ -528,38 +495,26 @@ public: return true; } - static bool HandleDebugSendChannelNotifyCommand(ChatHandler* handler, char const* args) + static bool HandleDebugSendChannelNotifyCommand(ChatHandler* handler, ChatNotify type) { - if (!*args) - return false; - - char const* name = "test"; - uint8 code = atoi(args); - WorldPackets::Channel::ChannelNotify channelNotify; - channelNotify.Type = code; - channelNotify._Channel = name; + channelNotify.Type = type; + channelNotify._Channel = "test"; handler->GetSession()->SendPacket(channelNotify.Write()); return true; } - static bool HandleDebugSendChatMsgCommand(ChatHandler* handler, char const* args) + static bool HandleDebugSendChatMsgCommand(ChatHandler* handler, ChatMsg type) { - if (!*args) - return false; - - char const* msg = "testtest"; - uint8 type = atoi(args); WorldPackets::Chat::Chat packet; - packet.Initialize(ChatMsg(type), LANG_UNIVERSAL, handler->GetSession()->GetPlayer(), handler->GetSession()->GetPlayer(), msg, 0, "chan"); + packet.Initialize(type, LANG_UNIVERSAL, handler->GetPlayer(), handler->GetPlayer(), "testtest", 0, "chan"); handler->GetSession()->SendPacket(packet.Write()); return true; } - static bool HandleDebugSendQuestPartyMsgCommand(ChatHandler* handler, char const* args) + static bool HandleDebugSendQuestPartyMsgCommand(ChatHandler* handler, QuestPushReason msg) { - uint32 msg = atoul(args); - handler->GetSession()->GetPlayer()->SendPushToPartyResponse(handler->GetSession()->GetPlayer(), static_cast<QuestPushReason>(msg)); + handler->GetSession()->GetPlayer()->SendPushToPartyResponse(handler->GetPlayer(), msg); return true; } @@ -575,10 +530,9 @@ public: return true; } - static bool HandleDebugSendQuestInvalidMsgCommand(ChatHandler* handler, char const* args) + static bool HandleDebugSendQuestInvalidMsgCommand(ChatHandler* handler, QuestFailedReason msg) { - QuestFailedReason msg = static_cast<QuestFailedReason>(atoul(args)); - handler->GetSession()->GetPlayer()->SendCanTakeQuestResponse(msg); + handler->GetPlayer()->SendCanTakeQuestResponse(msg); return true; } @@ -605,7 +559,7 @@ public: Player* player = handler->getSelectedPlayer(); if (!player) - player = handler->GetSession()->GetPlayer(); + player = handler->GetPlayer(); if (!listQueue && !checkAll) { @@ -864,7 +818,7 @@ public: { Unit* target = handler->getSelectedUnit(); if (!target) - target = handler->GetSession()->GetPlayer(); + target = handler->GetPlayer(); ThreatManager& mgr = target->GetThreatManager(); if (!target->IsAlive()) @@ -1024,7 +978,7 @@ public: { Unit* target = handler->getSelectedUnit(); if (!target) - target = handler->GetSession()->GetPlayer(); + target = handler->GetPlayer(); handler->PSendSysMessage("Combat refs: (Combat state: %d | Manager state: %d)", target->IsInCombat(), target->GetCombatManager().HasCombat()); for (auto const& ref : target->GetCombatManager().GetPvPCombatRefs()) @@ -1040,25 +994,6 @@ public: return true; } - static bool HandleDebugSetVehicleIdCommand(ChatHandler* handler, char const* args) - { - Unit* target = handler->getSelectedUnit(); - if (!target || target->IsVehicle()) - return false; - - if (!args) - return false; - - char* i = strtok((char*)args, " "); - if (!i) - return false; - - uint32 id = atoul(i); - //target->SetVehicleId(id); - handler->PSendSysMessage("Vehicle id set to %u", id); - return true; - } - static bool HandleDebugEnterVehicleCommand(ChatHandler* handler, uint32 entry, Optional<int8> seatId) { Unit* target = handler->getSelectedUnit(); @@ -1069,13 +1004,13 @@ public: seatId = -1; if (!entry) - handler->GetSession()->GetPlayer()->EnterVehicle(target, *seatId); + handler->GetPlayer()->EnterVehicle(target, *seatId); else { Creature* passenger = nullptr; - Trinity::AllCreaturesOfEntryInRange check(handler->GetSession()->GetPlayer(), entry, 20.0f); - Trinity::CreatureSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(handler->GetSession()->GetPlayer(), passenger, check); - Cell::VisitAllObjects(handler->GetSession()->GetPlayer(), searcher, 30.0f); + Trinity::AllCreaturesOfEntryInRange check(handler->GetPlayer(), entry, 20.0f); + Trinity::CreatureSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(handler->GetPlayer(), passenger, check); + Cell::VisitAllObjects(handler->GetPlayer(), searcher, 30.0f); if (!passenger || passenger == target) return false; passenger->EnterVehicle(target, *seatId); @@ -1087,11 +1022,11 @@ public: static bool HandleDebugSpawnVehicleCommand(ChatHandler* handler, uint32 entry, Optional<uint32> id) { - float x, y, z, o = handler->GetSession()->GetPlayer()->GetOrientation(); - handler->GetSession()->GetPlayer()->GetClosePoint(x, y, z, handler->GetSession()->GetPlayer()->GetCombatReach()); + float x, y, z, o = handler->GetPlayer()->GetOrientation(); + handler->GetPlayer()->GetClosePoint(x, y, z, handler->GetPlayer()->GetCombatReach()); if (!id) - return handler->GetSession()->GetPlayer()->SummonCreature(entry, x, y, z, o) != nullptr; + return handler->GetPlayer()->SummonCreature(entry, x, y, z, o) != nullptr; CreatureTemplate const* ci = sObjectMgr->GetCreatureTemplate(entry); @@ -1103,14 +1038,14 @@ public: if (!ve) return false; - Map* map = handler->GetSession()->GetPlayer()->GetMap(); + Map* map = handler->GetPlayer()->GetMap(); Position pos = { x, y, z, o }; Creature* v = Creature::CreateCreature(entry, map, pos, *id); if (!v) return false; - PhasingHandler::InheritPhaseShift(v, handler->GetSession()->GetPlayer()); + PhasingHandler::InheritPhaseShift(v, handler->GetPlayer()); map->AddToMap(v); @@ -1119,10 +1054,9 @@ public: static bool HandleDebugSendLargePacketCommand(ChatHandler* handler) { - char const* stuffingString = "This is a dummy string to push the packet's size beyond 128000 bytes. "; std::ostringstream ss; while (ss.str().size() < 128000) - ss << stuffingString; + ss << "This is a dummy string to push the packet's size beyond 128000 bytes. "; handler->SendSysMessage(ss.str().c_str()); return true; } @@ -1146,13 +1080,13 @@ public: static bool HandleDebugItemExpireCommand(ChatHandler* handler, ObjectGuid::LowType guid) { - Item* i = handler->GetSession()->GetPlayer()->GetItemByGuid(ObjectGuid::Create<HighGuid::Item>(guid)); + Item* i = handler->GetPlayer()->GetItemByGuid(ObjectGuid::Create<HighGuid::Item>(guid)); if (!i) return false; - handler->GetSession()->GetPlayer()->DestroyItem(i->GetBagSlot(), i->GetSlot(), true); - sScriptMgr->OnItemExpire(handler->GetSession()->GetPlayer(), i->GetTemplate()); + handler->GetPlayer()->DestroyItem(i->GetBagSlot(), i->GetSlot(), true); + sScriptMgr->OnItemExpire(handler->GetPlayer(), i->GetTemplate()); return true; } @@ -1172,7 +1106,7 @@ public: { if (Unit* unit = handler->getSelectedUnit()) { - Player* player = handler->GetSession()->GetPlayer(); + Player* player = handler->GetPlayer(); handler->PSendSysMessage("Checking LoS %s -> %s:", player->GetName().c_str(), unit->GetName().c_str()); handler->PSendSysMessage(" VMAP LoS: %s", player->IsWithinLOSInMap(unit, LINEOFSIGHT_CHECK_VMAP) ? "clear" : "obstructed"); handler->PSendSysMessage(" GObj LoS: %s", player->IsWithinLOSInMap(unit, LINEOFSIGHT_CHECK_GOBJECT) ? "clear" : "obstructed"); @@ -1182,15 +1116,8 @@ public: return false; } - static bool HandleDebugSetAuraStateCommand(ChatHandler* handler, char const* args) + static bool HandleDebugSetAuraStateCommand(ChatHandler* handler, Optional<AuraStateType> state, bool apply) { - if (!*args) - { - handler->SendSysMessage(LANG_BAD_VALUE); - handler->SetSentErrorMessage(true); - return false; - } - Unit* unit = handler->getSelectedUnit(); if (!unit) { @@ -1199,47 +1126,36 @@ public: return false; } - int32 state = atoi((char*)args); if (!state) { // reset all states - for (int i = 1; i <= 32; ++i) - unit->ModifyAuraState(AuraStateType(i), false); + for (AuraStateType s : EnumUtils::Iterate<AuraStateType>()) + unit->ModifyAuraState(s, false); return true; } - unit->ModifyAuraState(AuraStateType(abs(state)), state > 0); + unit->ModifyAuraState(*state, apply); return true; } - static bool HandleDebugMoveflagsCommand(ChatHandler* handler, char const* args) + static bool HandleDebugMoveflagsCommand(ChatHandler* handler, Optional<uint32> moveFlags, Optional<uint32> moveFlagsExtra) { Unit* target = handler->getSelectedUnit(); if (!target) - target = handler->GetSession()->GetPlayer(); + target = handler->GetPlayer(); - if (!*args) + if (!moveFlags) { //! Display case handler->PSendSysMessage(LANG_MOVEFLAGS_GET, target->GetUnitMovementFlags(), target->GetExtraUnitMovementFlags()); } else { - char* mask1 = strtok((char*)args, " "); - if (!mask1) - return false; - - char* mask2 = strtok(nullptr, " \n"); - - uint32 moveFlags = (uint32)atoi(mask1); - target->SetUnitMovementFlags(moveFlags); - /// @fixme: port master's HandleDebugMoveflagsCommand; flags need different handling - if (mask2) + if (moveFlagsExtra) { - uint32 moveFlagsExtra = uint32(atoi(mask2)); - target->SetExtraUnitMovementFlags(moveFlagsExtra); + target->SetExtraUnitMovementFlags(*moveFlagsExtra); } if (target->GetTypeId() != TYPEID_PLAYER) @@ -1259,7 +1175,7 @@ public: static bool HandleWPGPSCommand(ChatHandler* handler) { - Player* player = handler->GetSession()->GetPlayer(); + Player* player = handler->GetPlayer(); TC_LOG_INFO("sql.dev", "(@PATH, XX, %.3f, %.3f, %.5f, %.5f, 0, 0, 0, 100, 0),", player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetOrientation()); @@ -1269,7 +1185,7 @@ public: static bool HandleDebugTransportCommand(ChatHandler* handler, std::string operation) { - Transport* transport = handler->GetSession()->GetPlayer()->GetTransport(); + Transport* transport = handler->GetPlayer()->GetTransport(); if (!transport) return false; @@ -1295,7 +1211,7 @@ public: static bool HandleDebugLoadCellsCommand(ChatHandler* handler, Optional<uint32> mapId) { - Player* player = handler->GetSession()->GetPlayer(); + Player* player = handler->GetPlayer(); if (!player) return false; @@ -1313,7 +1229,7 @@ public: static bool HandleDebugBoundaryCommand(ChatHandler* handler, Optional<ExactSequence<'f', 'i', 'l','l'>> fill, Optional<uint32> durationArg) { - Player* player = handler->GetSession()->GetPlayer(); + Player* player = handler->GetPlayer(); if (!player) return false; Creature* target = handler->getSelectedCreature(); @@ -1437,7 +1353,7 @@ public: static bool HandleDebugNearGraveyard(ChatHandler* handler, Optional<ExactSequence<'l', 'i', 'n', 'k', 'e', 'd'>> linked) { - Player* player = handler->GetSession()->GetPlayer(); + Player* player = handler->GetPlayer(); WorldSafeLocsEntry const* nearestLoc = nullptr; if (linked) @@ -1483,18 +1399,18 @@ public: return true; } - static bool HandleDebugInstanceSpawns(ChatHandler* handler, char const* args) + static bool HandleDebugInstanceSpawns(ChatHandler* handler, Variant<uint32, ExactSequence<'e', 'x', 'p', 'l', 'a', 'i', 'n'>> optArg) { - Player const* const player = handler->GetSession()->GetPlayer(); + Player const* const player = handler->GetPlayer(); if (!player) return false; bool explain = false; uint32 groupID = 0; - if (!stricmp(args, "explain")) + if (optArg.holds_alternative<ExactSequence<'e', 'x', 'p', 'l', 'a', 'i', 'n'>>()) explain = true; else - groupID = atoi(args); + groupID = optArg.get<uint32>(); if (groupID && !sObjectMgr->GetSpawnGroupData(groupID)) { @@ -1592,17 +1508,8 @@ public: return true; } - static bool HandleDebugConversationCommand(ChatHandler* handler, char const* args) + static bool HandleDebugConversationCommand(ChatHandler* handler, uint32 conversationEntry) { - if (!*args) - return false; - - char const* conversationEntryStr = strtok((char*)args, " "); - - if (!conversationEntryStr) - return false; - - uint32 conversationEntry = atoi(conversationEntryStr); Player* target = handler->getSelectedPlayerOrSelf(); if (!target) @@ -1615,17 +1522,8 @@ public: return Conversation::CreateConversation(conversationEntry, target, *target, target->GetGUID()) != nullptr; } - static bool HandleDebugWorldStateCommand(ChatHandler* handler, char const* args) + static bool HandleDebugWorldStateCommand(ChatHandler* handler, uint32 worldStateId, Optional<uint32> value) { - if (!*args) - return false; - - char const* worldStateIdStr = strtok((char*)args, " "); - char const* valueStr = args ? strtok(nullptr, " ") : nullptr; - - if (!worldStateIdStr) - return false; - Player* target = handler->getSelectedPlayerOrSelf(); if (!target) @@ -1635,13 +1533,10 @@ public: return false; } - uint32 worldStateId = atoi(worldStateIdStr); - uint32 value = valueStr ? atoi(valueStr) : 0; - if (value) { - sWorld->setWorldState(worldStateId, value); - target->SendUpdateWorldState(worldStateId, value); + sWorld->setWorldState(worldStateId, *value); + target->SendUpdateWorldState(worldStateId, *value); } else handler->PSendSysMessage("Worldstate %u actual value : %u", worldStateId, sWorld->getWorldState(worldStateId)); @@ -1649,17 +1544,8 @@ public: return true; } - static bool HandleDebugWSExpressionCommand(ChatHandler* handler, char const* args) + static bool HandleDebugWSExpressionCommand(ChatHandler* handler, uint32 expressionId) { - if (!*args) - return false; - - char const* expressionIdStr = strtok((char*)args, " "); - - if (!expressionIdStr) - return false; - - uint32 expressionId = atoi(expressionIdStr); Player* target = handler->getSelectedPlayerOrSelf(); if (!target) |