aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Commands
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts/Commands')
-rw-r--r--src/server/scripts/Commands/cs_character.cpp4
-rw-r--r--src/server/scripts/Commands/cs_disable.cpp163
-rw-r--r--src/server/scripts/Commands/cs_group.cpp44
-rw-r--r--src/server/scripts/Commands/cs_guild.cpp14
-rw-r--r--src/server/scripts/Commands/cs_misc.cpp156
-rw-r--r--src/server/scripts/Commands/cs_modify.cpp128
-rw-r--r--src/server/scripts/Commands/cs_pet.cpp51
-rw-r--r--src/server/scripts/Commands/cs_send.cpp67
-rw-r--r--src/server/scripts/Commands/cs_wp.cpp30
9 files changed, 208 insertions, 449 deletions
diff --git a/src/server/scripts/Commands/cs_character.cpp b/src/server/scripts/Commands/cs_character.cpp
index 9363b146573..33cdffcd7dc 100644
--- a/src/server/scripts/Commands/cs_character.cpp
+++ b/src/server/scripts/Commands/cs_character.cpp
@@ -110,10 +110,10 @@ public:
if (!searchString.empty())
{
// search by GUID
- if (isNumeric(searchString.c_str()))
+ if (Optional<uint64> guidValue = Trinity::StringTo<uint64>(searchString))
{
stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_CHAR_DEL_INFO_BY_GUID);
- stmt->setUInt64(0, strtoull(searchString.c_str(), nullptr, 10));
+ stmt->setUInt64(0, *guidValue);
result = CharacterDatabase.Query(stmt);
}
// search by name
diff --git a/src/server/scripts/Commands/cs_disable.cpp b/src/server/scripts/Commands/cs_disable.cpp
index da8ca86df59..5ded723950b 100644
--- a/src/server/scripts/Commands/cs_disable.cpp
+++ b/src/server/scripts/Commands/cs_disable.cpp
@@ -36,10 +36,6 @@ EndScriptData */
#include "RBAC.h"
#include "SpellMgr.h"
-#if TRINITY_COMPILER == TRINITY_COMPILER_GNU
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-
using namespace Trinity::ChatCommands;
class disable_commandscript : public CommandScript
@@ -83,22 +79,8 @@ public:
return commandTable;
}
- static bool HandleAddDisables(ChatHandler* handler, char const* args, uint8 disableType)
+ static bool HandleAddDisables(ChatHandler* handler, DisableType disableType, uint32 entry, Optional<uint16> flags, Tail disableComment)
{
- char* entryStr = strtok((char*)args, " ");
- if (!entryStr || !atoi(entryStr))
- return false;
-
- char* flagsStr = strtok(nullptr, " ");
- uint8 flags = flagsStr ? uint8(atoi(flagsStr)) : 0;
-
- char* commentStr = strtok(nullptr, "");
- if (!commentStr)
- return false;
-
- std::string disableComment = commentStr;
- uint32 entry = atoul(entryStr);
-
char const* disableTypeStr = "";
switch (disableType)
@@ -191,6 +173,17 @@ public:
disableTypeStr = "mmap";
break;
}
+ case DISABLE_TYPE_LFG_MAP:
+ {
+ if (!sMapStore.LookupEntry(entry))
+ {
+ handler->PSendSysMessage(LANG_COMMAND_NOMAPFOUND);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+ disableTypeStr = "lfg map";
+ break;
+ }
default:
break;
}
@@ -209,87 +202,56 @@ public:
stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_DISABLES);
stmt->setUInt32(0, entry);
stmt->setUInt8(1, disableType);
- stmt->setUInt16(2, flags);
- stmt->setString(3, disableComment);
+ stmt->setUInt16(2, flags.value_or<uint16>(0));
+ stmt->setStringView(3, disableComment);
WorldDatabase.Execute(stmt);
- handler->PSendSysMessage("Add Disabled %s (Id: %u) for reason %s", disableTypeStr, entry, disableComment.c_str());
+ handler->PSendSysMessage("Add Disabled %s (Id: %u) for reason " STRING_VIEW_FMT, disableTypeStr, entry, STRING_VIEW_FMT_ARG(disableComment));
return true;
}
- static bool HandleAddDisableSpellCommand(ChatHandler* handler, char const* args)
+ static bool HandleAddDisableSpellCommand(ChatHandler* handler, uint32 entry, Optional<uint16> flags, Tail disableComment)
{
- if (!*args)
- return false;
-
- return HandleAddDisables(handler, args, DISABLE_TYPE_SPELL);
+ return HandleAddDisables(handler, DISABLE_TYPE_SPELL, entry, flags, disableComment);
}
- static bool HandleAddDisableQuestCommand(ChatHandler* handler, char const* args)
+ static bool HandleAddDisableQuestCommand(ChatHandler* handler, uint32 entry, Optional<uint16> flags, Tail disableComment)
{
- if (!*args)
- return false;
-
- return HandleAddDisables(handler, args, DISABLE_TYPE_QUEST);
+ return HandleAddDisables(handler, DISABLE_TYPE_QUEST, entry, flags, disableComment);
}
- static bool HandleAddDisableMapCommand(ChatHandler* handler, char const* args)
+ static bool HandleAddDisableMapCommand(ChatHandler* handler, uint32 entry, Optional<uint16> flags, Tail disableComment)
{
- if (!*args)
- return false;
-
- return HandleAddDisables(handler, args, DISABLE_TYPE_MAP);
+ return HandleAddDisables(handler, DISABLE_TYPE_MAP, entry, flags, disableComment);
}
- static bool HandleAddDisableBattlegroundCommand(ChatHandler* handler, char const* args)
+ static bool HandleAddDisableBattlegroundCommand(ChatHandler* handler, uint32 entry, Optional<uint16> flags, Tail disableComment)
{
- if (!*args)
- return false;
-
- return HandleAddDisables(handler, args, DISABLE_TYPE_BATTLEGROUND);
+ return HandleAddDisables(handler, DISABLE_TYPE_BATTLEGROUND, entry, flags, disableComment);
}
- static bool HandleAddDisableCriteriaCommand(ChatHandler* handler, char const* args)
+ static bool HandleAddDisableCriteriaCommand(ChatHandler* handler, uint32 entry, Optional<uint16> flags, Tail disableComment)
{
- if (!*args)
- return false;
-
- return HandleAddDisables(handler, args, DISABLE_TYPE_CRITERIA);
+ return HandleAddDisables(handler, DISABLE_TYPE_CRITERIA, entry, flags, disableComment);
}
- static bool HandleAddDisableOutdoorPvPCommand(ChatHandler* handler, char const* args)
+ static bool HandleAddDisableOutdoorPvPCommand(ChatHandler* handler, uint32 entry, Optional<uint16> flags, Tail disableComment)
{
- if (!*args)
- return false;
-
- HandleAddDisables(handler, args, DISABLE_TYPE_OUTDOORPVP);
- return true;
+ return HandleAddDisables(handler, DISABLE_TYPE_OUTDOORPVP, entry, flags, disableComment);
}
- static bool HandleAddDisableVmapCommand(ChatHandler* handler, char const* args)
+ static bool HandleAddDisableVmapCommand(ChatHandler* handler, uint32 entry, Optional<uint16> flags, Tail disableComment)
{
- if (!*args)
- return false;
-
- return HandleAddDisables(handler, args, DISABLE_TYPE_VMAP);
+ return HandleAddDisables(handler, DISABLE_TYPE_VMAP, entry, flags, disableComment);
}
- static bool HandleAddDisableMMapCommand(ChatHandler* handler, char const* args)
+ static bool HandleAddDisableMMapCommand(ChatHandler* handler, uint32 entry, Optional<uint16> flags, Tail disableComment)
{
- if (!*args)
- return false;
-
- return HandleAddDisables(handler, args, DISABLE_TYPE_MMAP);
+ return HandleAddDisables(handler, DISABLE_TYPE_MMAP, entry, flags, disableComment);
}
- static bool HandleRemoveDisables(ChatHandler* handler, char const* args, uint8 disableType)
+ static bool HandleRemoveDisables(ChatHandler* handler, DisableType disableType, uint32 entry)
{
- char* entryStr = strtok((char*)args, " ");
- if (!entryStr || !atoi(entryStr))
- return false;
-
- uint32 entry = uint32(atoi(entryStr));
-
char const* disableTypeStr = "";
switch (disableType)
@@ -318,6 +280,11 @@ public:
case DISABLE_TYPE_MMAP:
disableTypeStr = "mmap";
break;
+ case DISABLE_TYPE_LFG_MAP:
+ disableTypeStr = "lfg map";
+ break;
+ default:
+ break;
}
WorldDatabasePreparedStatement* stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_DISABLES);
@@ -340,68 +307,44 @@ public:
return true;
}
- static bool HandleRemoveDisableSpellCommand(ChatHandler* handler, char const* args)
+ static bool HandleRemoveDisableSpellCommand(ChatHandler* handler, uint32 entry)
{
- if (!*args)
- return false;
-
- return HandleRemoveDisables(handler, args, DISABLE_TYPE_SPELL);
+ return HandleRemoveDisables(handler, DISABLE_TYPE_SPELL, entry);
}
- static bool HandleRemoveDisableQuestCommand(ChatHandler* handler, char const* args)
+ static bool HandleRemoveDisableQuestCommand(ChatHandler* handler, uint32 entry)
{
- if (!*args)
- return false;
-
- return HandleRemoveDisables(handler, args, DISABLE_TYPE_QUEST);
+ return HandleRemoveDisables(handler, DISABLE_TYPE_QUEST, entry);
}
- static bool HandleRemoveDisableMapCommand(ChatHandler* handler, char const* args)
+ static bool HandleRemoveDisableMapCommand(ChatHandler* handler, uint32 entry)
{
- if (!*args)
- return false;
-
- return HandleRemoveDisables(handler, args, DISABLE_TYPE_MAP);
+ return HandleRemoveDisables(handler, DISABLE_TYPE_MAP, entry);
}
- static bool HandleRemoveDisableBattlegroundCommand(ChatHandler* handler, char const* args)
+ static bool HandleRemoveDisableBattlegroundCommand(ChatHandler* handler, uint32 entry)
{
- if (!*args)
- return false;
-
- return HandleRemoveDisables(handler, args, DISABLE_TYPE_BATTLEGROUND);
+ return HandleRemoveDisables(handler, DISABLE_TYPE_BATTLEGROUND, entry);
}
- static bool HandleRemoveDisableCriteriaCommand(ChatHandler* handler, char const* args)
+ static bool HandleRemoveDisableCriteriaCommand(ChatHandler* handler, uint32 entry)
{
- if (!*args)
- return false;
-
- return HandleRemoveDisables(handler, args, DISABLE_TYPE_CRITERIA);
+ return HandleRemoveDisables(handler, DISABLE_TYPE_CRITERIA, entry);
}
- static bool HandleRemoveDisableOutdoorPvPCommand(ChatHandler* handler, char const* args)
+ static bool HandleRemoveDisableOutdoorPvPCommand(ChatHandler* handler, uint32 entry)
{
- if (!*args)
- return false;
-
- return HandleRemoveDisables(handler, args, DISABLE_TYPE_OUTDOORPVP);
+ return HandleRemoveDisables(handler, DISABLE_TYPE_OUTDOORPVP, entry);
}
- static bool HandleRemoveDisableVmapCommand(ChatHandler* handler, char const* args)
+ static bool HandleRemoveDisableVmapCommand(ChatHandler* handler, uint32 entry)
{
- if (!*args)
- return false;
-
- return HandleRemoveDisables(handler, args, DISABLE_TYPE_VMAP);
+ return HandleRemoveDisables(handler, DISABLE_TYPE_VMAP, entry);
}
- static bool HandleRemoveDisableMMapCommand(ChatHandler* handler, char const* args)
+ static bool HandleRemoveDisableMMapCommand(ChatHandler* handler, uint32 entry)
{
- if (!*args)
- return false;
-
- return HandleRemoveDisables(handler, args, DISABLE_TYPE_MMAP);
+ return HandleRemoveDisables(handler, DISABLE_TYPE_MMAP, entry);
}
};
diff --git a/src/server/scripts/Commands/cs_group.cpp b/src/server/scripts/Commands/cs_group.cpp
index 64d82dd47a8..d97672aa091 100644
--- a/src/server/scripts/Commands/cs_group.cpp
+++ b/src/server/scripts/Commands/cs_group.cpp
@@ -431,40 +431,22 @@ public:
return true;
}
- static bool HandleGroupListCommand(ChatHandler* handler, char const* args)
+ static bool HandleGroupListCommand(ChatHandler* handler, PlayerIdentifier const& target)
{
- // Get ALL the variables!
- Player* playerTarget;
- ObjectGuid guidTarget;
- std::string nameTarget;
- std::string zoneName;
- char const* onlineState = "";
-
- // Parse the guid to uint32...
- ObjectGuid parseGUID = ObjectGuid::Create<HighGuid::Player>(strtoull(args, nullptr, 10));
-
- // ... and try to extract a player out of it.
- if (sCharacterCache->GetCharacterNameByGuid(parseGUID, nameTarget))
- {
- playerTarget = ObjectAccessor::FindPlayer(parseGUID);
- guidTarget = parseGUID;
- }
- // If not, we return false and end right away.
- else if (!handler->extractPlayerTarget((char*)args, &playerTarget, &guidTarget, &nameTarget))
- return false;
+ char const* zoneName = "<ERROR>";
+ char const* onlineState = "Offline";
// Next, we need a group. So we define a group variable.
Group* groupTarget = nullptr;
// We try to extract a group from an online player.
- if (playerTarget)
- groupTarget = playerTarget->GetGroup();
-
- // If not, we extract it from the SQL.
- if (!groupTarget)
+ if (target.IsConnected())
+ groupTarget = target.GetConnectedPlayer()->GetGroup();
+ else
{
+ // If not, we extract it from the SQL.
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GROUP_MEMBER);
- stmt->setUInt64(0, guidTarget.GetCounter());
+ stmt->setUInt64(0, target.GetGUID().GetCounter());
PreparedQueryResult resultGroup = CharacterDatabase.Query(stmt);
if (resultGroup)
groupTarget = sGroupMgr->GetGroupByDbStoreId((*resultGroup)[0].GetUInt32());
@@ -473,7 +455,7 @@ public:
// If both fails, players simply has no party. Return false.
if (!groupTarget)
{
- handler->PSendSysMessage(LANG_GROUP_NOT_IN_GROUP, nameTarget.c_str());
+ handler->PSendSysMessage(LANG_GROUP_NOT_IN_GROUP, target.GetName().c_str());
handler->SetSentErrorMessage(true);
return false;
}
@@ -531,16 +513,10 @@ public:
zoneName = zone->AreaName[locale];
}
}
- else
- {
- // ... else, everything is set to offline or neutral values.
- zoneName = "<ERROR>";
- onlineState = "Offline";
- }
// Now we can print those informations for every single member of each group!
handler->PSendSysMessage(LANG_GROUP_PLAYER_NAME_GUID, slot.name.c_str(), onlineState,
- zoneName.c_str(), phases.c_str(), slot.guid.ToString().c_str(), flags.c_str(),
+ zoneName, phases.c_str(), slot.guid.ToString().c_str(), flags.c_str(),
lfg::GetRolesString(slot.roles).c_str());
}
diff --git a/src/server/scripts/Commands/cs_guild.cpp b/src/server/scripts/Commands/cs_guild.cpp
index 2a0185223ec..c824e370632 100644
--- a/src/server/scripts/Commands/cs_guild.cpp
+++ b/src/server/scripts/Commands/cs_guild.cpp
@@ -263,19 +263,19 @@ public:
return true;
}
- static bool HandleGuildInfoCommand(ChatHandler* handler, char const* args)
+ static bool HandleGuildInfoCommand(ChatHandler* handler, Optional<Variant<ObjectGuid::LowType, std::string_view>> const& guildIdentifier)
{
Guild* guild = nullptr;
- if (args && args[0] != '\0')
+ if (guildIdentifier)
{
- if (isNumeric(args))
- guild = sGuildMgr->GetGuildById(strtoull(args, nullptr, 10));
+ if (ObjectGuid::LowType const* guid = std::get_if<ObjectGuid::LowType>(&*guildIdentifier))
+ guild = sGuildMgr->GetGuildById(*guid);
else
- guild = sGuildMgr->GetGuildByName(args);
+ guild = sGuildMgr->GetGuildByName(guildIdentifier->get<std::string_view>());
}
- else if (Player* target = handler->getSelectedPlayerOrSelf())
- guild = target->GetGuild();
+ else if (Optional<PlayerIdentifier> target = PlayerIdentifier::FromTargetOrSelf(handler); target && target->IsConnected())
+ guild = target->GetConnectedPlayer()->GetGuild();
if (!guild)
return false;
diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp
index 32724dd6824..3f2f8416699 100644
--- a/src/server/scripts/Commands/cs_misc.cpp
+++ b/src/server/scripts/Commands/cs_misc.cpp
@@ -81,6 +81,7 @@ public:
{ "commands", HandleCommandsCommand, rbac::RBAC_PERM_COMMAND_COMMANDS, Console::Yes },
{ "cooldown", HandleCooldownCommand, rbac::RBAC_PERM_COMMAND_COOLDOWN, Console::No },
{ "damage", HandleDamageCommand, rbac::RBAC_PERM_COMMAND_DAMAGE, Console::No },
+ { "damage go", HandleDamageGoCommand, rbac::RBAC_PERM_COMMAND_DAMAGE, Console::No },
{ "dev", HandleDevCommand, rbac::RBAC_PERM_COMMAND_DEV, Console::No },
{ "die", HandleDieCommand, rbac::RBAC_PERM_COMMAND_DIE, Console::No },
{ "dismount", HandleDismountCommand, rbac::RBAC_PERM_COMMAND_DISMOUNT, Console::No },
@@ -1206,7 +1207,8 @@ public:
char const* id = handler->extractKeyFromLink((char*)args, "Hitem");
if (!id)
return false;
- itemId = atoul(id);
+
+ itemId = Trinity::StringTo<uint32>(id).value_or(0);
}
char const* ccount = strtok(nullptr, " ");
@@ -1233,7 +1235,7 @@ public:
ItemContext itemContext = ItemContext::NONE;
if (context)
{
- itemContext = ItemContext(atoul(context));
+ itemContext = ItemContext(Trinity::StringTo<uint8>(context).value_or(0));
if (itemContext != ItemContext::NONE && itemContext < ItemContext::Max)
{
std::set<uint32> contextBonuses = sDB2Manager.GetDefaultItemBonusTree(itemId, itemContext);
@@ -1370,7 +1372,8 @@ public:
char const* id = handler->extractKeyFromLink(tailArgs, "Hitem");
if (!id)
return false;
- itemId = atoul(id);
+
+ itemId = Trinity::StringTo<uint32>(id).value_or(0);
}
char const* ccount = strtok(nullptr, " ");
@@ -1397,7 +1400,7 @@ public:
ItemContext itemContext = ItemContext::NONE;
if (context)
{
- itemContext = ItemContext(atoul(context));
+ itemContext = ItemContext(Trinity::StringTo<uint8>(context).value_or(0));
if (itemContext != ItemContext::NONE && itemContext < ItemContext::Max)
{
std::set<uint32> contextBonuses = sDB2Manager.GetDefaultItemBonusTree(itemId, itemContext);
@@ -1634,27 +1637,20 @@ public:
*
* @return Several pieces of information about the character and the account
**/
- static bool HandlePInfoCommand(ChatHandler* handler, char const* args)
+ static bool HandlePInfoCommand(ChatHandler* handler, Optional<PlayerIdentifier> arg)
{
- // Define ALL the player variables!
- Player* target;
- ObjectGuid targetGuid;
- std::string targetName;
- CharacterDatabasePreparedStatement* stmt = nullptr;
-
- // To make sure we get a target, we convert our guid to an omniversal...
- ObjectGuid parseGUID = ObjectGuid::Create<HighGuid::Player>(strtoull(args, nullptr, 10));
+ if (!arg)
+ arg = PlayerIdentifier::FromTargetOrSelf(handler);
- // ... and make sure we get a target, somehow.
- if (sCharacterCache->GetCharacterNameByGuid(parseGUID, targetName))
- {
- target = ObjectAccessor::FindPlayer(parseGUID);
- targetGuid = parseGUID;
- }
- // if not, then return false. Which shouldn't happen, now should it ?
- else if (!handler->extractPlayerTarget((char*)args, &target, &targetGuid, &targetName))
+ if (!arg)
return false;
+ // Define ALL the player variables!
+ Player* target = arg->GetConnectedPlayer();
+ ObjectGuid targetGuid = arg->GetGUID();
+ std::string targetName = arg->GetName();
+ CharacterDatabasePreparedStatement* stmt = nullptr;
+
/* The variables we extract for the command. They are
* default as "does not exist" to prevent problems
* The output is printed in the follow manner:
@@ -2319,71 +2315,8 @@ public:
return true;
}
- static bool HandleDamageCommand(ChatHandler* handler, char const* args)
+ static bool HandleDamageCommand(ChatHandler* handler, uint32 damage, Optional<SpellSchools> school, Optional<SpellInfo const*> spellInfo)
{
- if (!*args)
- return false;
-
- char* str = strtok((char*)args, " ");
-
- if (strcmp(str, "go") == 0)
- {
- char* guidStr = strtok(nullptr, " ");
- if (!guidStr)
- {
- handler->SendSysMessage(LANG_BAD_VALUE);
- handler->SetSentErrorMessage(true);
- return false;
- }
-
- ObjectGuid::LowType guidLow = atoull(guidStr);
- if (!guidLow)
- {
- handler->SendSysMessage(LANG_BAD_VALUE);
- handler->SetSentErrorMessage(true);
- return false;
- }
-
- char* damageStr = strtok(nullptr, " ");
- if (!damageStr)
- {
- handler->SendSysMessage(LANG_BAD_VALUE);
- handler->SetSentErrorMessage(true);
- return false;
- }
-
- int32 damage = atoi(damageStr);
- if (!damage)
- {
- handler->SendSysMessage(LANG_BAD_VALUE);
- handler->SetSentErrorMessage(true);
- return false;
- }
-
- if (Player* player = handler->GetSession()->GetPlayer())
- {
- GameObject* go = handler->GetObjectFromPlayerMapByDbGuid(guidLow);
- if (!go)
- {
- handler->PSendSysMessage(LANG_COMMAND_OBJNOTFOUND, std::to_string(guidLow).c_str());
- handler->SetSentErrorMessage(true);
- return false;
- }
-
- if (!go->IsDestructibleBuilding())
- {
- handler->SendSysMessage(LANG_INVALID_GAMEOBJECT_TYPE);
- handler->SetSentErrorMessage(true);
- return false;
- }
-
- go->ModifyHealth(-damage, player);
- handler->PSendSysMessage(LANG_GAMEOBJECT_DAMAGED, go->GetName().c_str(), std::to_string(guidLow).c_str(), -damage, go->GetGOValue()->Building.Health);
- }
-
- return true;
- }
-
Unit* target = handler->getSelectedUnit();
if (!target || !handler->GetSession()->GetPlayer()->GetTarget())
{
@@ -2399,16 +2332,8 @@ public:
if (!target->IsAlive())
return true;
- int32 damage_int = atoi((char*)str);
- if (damage_int <= 0)
- return true;
-
- uint32 damage = damage_int;
-
- char* schoolStr = strtok((char*)nullptr, " ");
-
// flat melee damage without resistence/etc reduction
- if (!schoolStr)
+ if (!school)
{
Unit::DealDamage(handler->GetSession()->GetPlayer(), target, damage, nullptr, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, nullptr, false);
if (target != handler->GetSession()->GetPlayer())
@@ -2416,21 +2341,15 @@ public:
return true;
}
- uint32 school = atoi((char*)schoolStr);
- if (school >= MAX_SPELL_SCHOOL)
- return false;
-
- SpellSchoolMask schoolmask = SpellSchoolMask(1 << school);
+ SpellSchoolMask schoolmask = SpellSchoolMask(1 << *school);
if (Unit::IsDamageReducedByArmor(schoolmask))
damage = Unit::CalcArmorReducedDamage(handler->GetSession()->GetPlayer(), target, damage, nullptr, BASE_ATTACK);
- char* spellStr = strtok((char*)nullptr, " ");
-
Player* attacker = handler->GetSession()->GetPlayer();
// melee damage by specific school
- if (!spellStr)
+ if (!spellInfo)
{
DamageInfo dmgInfo(attacker, target, damage, nullptr, schoolmask, SPELL_DIRECT_DAMAGE, BASE_ATTACK);
Unit::CalcAbsorbResist(dmgInfo);
@@ -2450,16 +2369,7 @@ public:
// non-melee damage
- // number or [name] Shift-click form |color|Hspell:spell_id|h[name]|h|r or Htalent form
- uint32 spellid = handler->extractSpellIdFromLink((char*)args);
- if (!spellid)
- return false;
-
- SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellid, attacker->GetMap()->GetDifficultyID());
- if (!spellInfo)
- return false;
-
- SpellNonMeleeDamage damageInfo(attacker, target, spellInfo, { spellInfo->GetSpellXSpellVisualId(handler->GetSession()->GetPlayer()), 0 }, spellInfo->SchoolMask);
+ SpellNonMeleeDamage damageInfo(attacker, target, *spellInfo, { (*spellInfo)->GetSpellXSpellVisualId(handler->GetSession()->GetPlayer()), 0 }, (*spellInfo)->SchoolMask);
damageInfo.damage = damage;
Unit::DealDamageMods(damageInfo.attacker, damageInfo.target, damageInfo.damage, &damageInfo.absorb);
target->DealSpellDamage(&damageInfo, true);
@@ -2467,6 +2377,28 @@ public:
return true;
}
+ static bool HandleDamageGoCommand(ChatHandler* handler, Variant<Hyperlink<gameobject>, ObjectGuid::LowType> spawnId, int32 damage)
+ {
+ GameObject* go = handler->GetObjectFromPlayerMapByDbGuid(*spawnId);
+ if (!go)
+ {
+ handler->PSendSysMessage(LANG_COMMAND_OBJNOTFOUND, std::to_string(*spawnId).c_str());
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ if (!go->IsDestructibleBuilding())
+ {
+ handler->SendSysMessage(LANG_INVALID_GAMEOBJECT_TYPE);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ go->ModifyHealth(-damage, handler->GetSession()->GetPlayer());
+ handler->PSendSysMessage(LANG_GAMEOBJECT_DAMAGED, go->GetName().c_str(), std::to_string(*spawnId).c_str(), -damage, go->GetGOValue()->Building.Health);
+ return true;
+ }
+
static bool HandleCombatStopCommand(ChatHandler* handler, char const* args)
{
Player* target = nullptr;
diff --git a/src/server/scripts/Commands/cs_modify.cpp b/src/server/scripts/Commands/cs_modify.cpp
index 49f04af4593..da8e3d28d5e 100644
--- a/src/server/scripts/Commands/cs_modify.cpp
+++ b/src/server/scripts/Commands/cs_modify.cpp
@@ -36,6 +36,7 @@ EndScriptData */
#include "ReputationMgr.h"
#include "SpellPackets.h"
#include "UpdateFields.h"
+#include "Util.h"
#include "WorldSession.h"
#if TRINITY_COMPILER == TRINITY_COMPILER_GNU
@@ -210,10 +211,8 @@ public:
}
//Edit Player Faction
- static bool HandleModifyFactionCommand(ChatHandler* handler, char const* args)
+ static bool HandleModifyFactionCommand(ChatHandler* handler, Optional<uint32> factionid, Optional<uint32> flag, Optional<uint64> npcflag, Optional<uint32> dyflag)
{
- char* pfactionid = handler->extractKeyFromLink((char*)args, "Hfaction");
-
Creature* target = handler->getSelectedCreature();
if (!target)
{
@@ -222,56 +221,35 @@ public:
return false;
}
- if (!pfactionid)
- {
- uint32 factionid = target->GetFaction();
- uint32 flag = target->m_unitData->Flags;
- uint64 npcflag;
- memcpy(&npcflag, target->m_unitData->NpcFlags.begin(), sizeof(uint64));
- uint32 dyflag = target->m_objectData->DynamicFlags;
- handler->PSendSysMessage(LANG_CURRENT_FACTION, target->GetGUID().ToString().c_str(), factionid, flag, std::to_string(npcflag).c_str(), dyflag);
- return true;
- }
-
- uint32 factionid = atoul(pfactionid);
- uint32 flag;
-
- char *pflag = strtok(nullptr, " ");
- if (!pflag)
+ if (!flag)
flag = target->m_unitData->Flags;
- else
- flag = atoul(pflag);
-
- char* pnpcflag = strtok(nullptr, " ");
-
- uint64 npcflag;
- if (!pnpcflag)
- memcpy(&npcflag, target->m_unitData->NpcFlags.begin(), sizeof(uint64));
- else
- npcflag = atoull(pnpcflag);
- char* pdyflag = strtok(nullptr, " ");
+ if (!npcflag)
+ memcpy(&npcflag.emplace(), target->m_unitData->NpcFlags.begin(), sizeof(uint64));
- uint32 dyflag;
- if (!pdyflag)
+ if (!dyflag)
dyflag = target->m_objectData->DynamicFlags;
- else
- dyflag = atoul(pdyflag);
- if (!sFactionTemplateStore.LookupEntry(factionid))
+ if (!factionid)
{
- handler->PSendSysMessage(LANG_WRONG_FACTION, factionid);
+ handler->PSendSysMessage(LANG_CURRENT_FACTION, target->GetGUID().ToString().c_str(), *factionid, *flag, std::to_string(*npcflag).c_str(), *dyflag);
+ return true;
+ }
+
+ if (!sFactionTemplateStore.LookupEntry(*factionid))
+ {
+ handler->PSendSysMessage(LANG_WRONG_FACTION, *factionid);
handler->SetSentErrorMessage(true);
return false;
}
- handler->PSendSysMessage(LANG_YOU_CHANGE_FACTION, target->GetGUID().ToString().c_str(), factionid, flag, std::to_string(npcflag).c_str(), dyflag);
+ handler->PSendSysMessage(LANG_YOU_CHANGE_FACTION, target->GetGUID().ToString().c_str(), *factionid, *flag, std::to_string(*npcflag).c_str(), *dyflag);
- target->SetFaction(factionid);
- target->ReplaceAllUnitFlags(UnitFlags(flag));
- target->ReplaceAllNpcFlags(NPCFlags(npcflag & 0xFFFFFFFF));
- target->ReplaceAllNpcFlags2(NPCFlags2(npcflag >> 32));
- target->ReplaceAllDynamicFlags(dyflag);
+ target->SetFaction(*factionid);
+ target->ReplaceAllUnitFlags(UnitFlags(*flag));
+ target->ReplaceAllNpcFlags(NPCFlags(*npcflag & 0xFFFFFFFF));
+ target->ReplaceAllNpcFlags2(NPCFlags2(*npcflag >> 32));
+ target->ReplaceAllDynamicFlags(*dyflag);
return true;
}
@@ -382,13 +360,8 @@ public:
return false;
}
- static bool CheckModifySpeed(ChatHandler* handler, char const* args, Unit* target, float& speed, float minimumBound, float maximumBound, bool checkInFlight = true)
+ static bool CheckModifySpeed(ChatHandler* handler, Unit* target, float speed, float minimumBound, float maximumBound, bool checkInFlight = true)
{
- if (!*args)
- return false;
-
- speed = (float)atof((char*)args);
-
if (speed > maximumBound || speed < minimumBound)
{
handler->SendSysMessage(LANG_BAD_VALUE);
@@ -419,6 +392,15 @@ public:
return true;
}
+ static bool CheckModifySpeed(ChatHandler* handler, char const* args, Unit* target, float& speed, float minimumBound, float maximumBound, bool checkInFlight = true)
+ {
+ if (!*args)
+ return false;
+
+ speed = (float)atof((char*)args);
+ return CheckModifySpeed(handler, target, speed, minimumBound, maximumBound, checkInFlight);
+ }
+
//Edit Player Aspeed
static bool HandleModifyASpeedCommand(ChatHandler* handler, char const* args)
{
@@ -507,18 +489,8 @@ public:
}
//Enable Player mount
- static bool HandleModifyMountCommand(ChatHandler* handler, char const* args)
+ static bool HandleModifyMountCommand(ChatHandler* handler, uint32 mount, float speed)
{
- if (!*args)
- return false;
-
- char const* mount_cstr = strtok(const_cast<char*>(args), " ");
- char const* speed_cstr = strtok(nullptr, " ");
-
- if (!mount_cstr || !speed_cstr)
- return false;
-
- uint32 mount = atoul(mount_cstr);
if (!sCreatureDisplayInfoStore.HasRecord(mount))
{
handler->SendSysMessage(LANG_NO_MOUNT);
@@ -538,8 +510,7 @@ public:
if (handler->HasLowerSecurity(target, ObjectGuid::Empty))
return false;
- float speed;
- if (!CheckModifySpeed(handler, speed_cstr, target, speed, 0.1f, 50.0f))
+ if (!CheckModifySpeed(handler, target, speed, 0.1f, 50.0f))
return false;
NotifyModification(handler, target, LANG_YOU_GIVE_MOUNT, LANG_MOUNT_GIVED);
@@ -775,13 +746,8 @@ public:
}
//morph creature or player
- static bool HandleModifyMorphCommand(ChatHandler* handler, char const* args)
+ static bool HandleModifyMorphCommand(ChatHandler* handler, uint32 display_id)
{
- if (!*args)
- return false;
-
- uint32 display_id = atoul(args);
-
Unit* target = handler->getSelectedUnit();
if (!target)
target = handler->GetSession()->GetPlayer();
@@ -796,22 +762,8 @@ public:
}
// Toggles a phaseid on a player
- static bool HandleModifyPhaseCommand(ChatHandler* handler, char const* args)
+ static bool HandleModifyPhaseCommand(ChatHandler* handler, uint32 phaseId, Optional<uint32> visibleMapId)
{
- if (!*args)
- return false;
-
- char* phaseText = strtok((char*)args, " ");
- if (!phaseText)
- return false;
-
- uint32 phaseId = uint32(strtoul(phaseText, nullptr, 10));
- uint32 visibleMapId = 0;
-
- char* visibleMapIdText = strtok(nullptr, " ");
- if (visibleMapIdText)
- visibleMapId = uint32(strtoul(visibleMapIdText, nullptr, 10));
-
if (phaseId && !sPhaseStore.LookupEntry(phaseId))
{
handler->SendSysMessage(LANG_PHASE_NOTFOUND);
@@ -823,7 +775,7 @@ public:
if (visibleMapId)
{
- MapEntry const* visibleMap = sMapStore.LookupEntry(visibleMapId);
+ MapEntry const* visibleMap = sMapStore.LookupEntry(*visibleMapId);
if (!visibleMap || visibleMap->ParentMapID != int32(target->GetMapId()))
{
handler->SendSysMessage(LANG_PHASE_NOTFOUND);
@@ -831,10 +783,10 @@ public:
return false;
}
- if (!target->GetPhaseShift().HasVisibleMapId(visibleMapId))
- PhasingHandler::AddVisibleMapId(target, visibleMapId);
+ if (!target->GetPhaseShift().HasVisibleMapId(*visibleMapId))
+ PhasingHandler::AddVisibleMapId(target, *visibleMapId);
else
- PhasingHandler::RemoveVisibleMapId(target, visibleMapId);
+ PhasingHandler::RemoveVisibleMapId(target, *visibleMapId);
}
if (phaseId)
@@ -1076,11 +1028,11 @@ public:
{
if (upperCase)
{
- c = char(::toupper(c));
+ c = charToUpper(c);
upperCase = false;
}
else
- c = char(::tolower(c));
+ c = charToLower(c);
if (c == '_')
{
diff --git a/src/server/scripts/Commands/cs_pet.cpp b/src/server/scripts/Commands/cs_pet.cpp
index d6f2a39e59e..b75789ecae2 100644
--- a/src/server/scripts/Commands/cs_pet.cpp
+++ b/src/server/scripts/Commands/cs_pet.cpp
@@ -23,12 +23,11 @@
#include "Pet.h"
#include "Player.h"
#include "RBAC.h"
+#include "SpellInfo.h"
#include "SpellMgr.h"
#include "WorldSession.h"
-#if TRINITY_COMPILER == TRINITY_COMPILER_GNU
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
+using namespace Trinity::ChatCommands;
inline Pet* GetSelectedPlayerPetOrOwn(ChatHandler* handler)
{
@@ -49,23 +48,23 @@ class pet_commandscript : public CommandScript
public:
pet_commandscript() : CommandScript("pet_commandscript") { }
- std::vector<ChatCommand> GetCommands() const override
+ ChatCommandTable GetCommands() const override
{
- static std::vector<ChatCommand> petCommandTable =
+ static ChatCommandTable petCommandTable =
{
- { "create", rbac::RBAC_PERM_COMMAND_PET_CREATE, false, &HandlePetCreateCommand, "" },
- { "learn", rbac::RBAC_PERM_COMMAND_PET_LEARN, false, &HandlePetLearnCommand, "" },
- { "unlearn", rbac::RBAC_PERM_COMMAND_PET_UNLEARN, false, &HandlePetUnlearnCommand, "" },
- { "level", rbac::RBAC_PERM_COMMAND_PET_LEVEL, false, &HandlePetLevelCommand, "" },
+ { "create", HandlePetCreateCommand, rbac::RBAC_PERM_COMMAND_PET_CREATE, Console::No },
+ { "learn", HandlePetLearnCommand, rbac::RBAC_PERM_COMMAND_PET_LEARN, Console::No },
+ { "unlearn", HandlePetUnlearnCommand, rbac::RBAC_PERM_COMMAND_PET_UNLEARN, Console::No },
+ { "level", HandlePetLevelCommand, rbac::RBAC_PERM_COMMAND_PET_LEVEL, Console::No },
};
- static std::vector<ChatCommand> commandTable =
+ static ChatCommandTable commandTable =
{
- { "pet", rbac::RBAC_PERM_COMMAND_PET, false, nullptr, "", petCommandTable },
+ { "pet", petCommandTable },
};
return commandTable;
}
- static bool HandlePetCreateCommand(ChatHandler* handler, char const* /*args*/)
+ static bool HandlePetCreateCommand(ChatHandler* handler)
{
Player* player = handler->GetSession()->GetPlayer();
Creature* creatureTarget = handler->getSelectedCreature();
@@ -117,11 +116,8 @@ public:
return true;
}
- static bool HandlePetLearnCommand(ChatHandler* handler, char const* args)
+ static bool HandlePetLearnCommand(ChatHandler* handler, SpellInfo const* spellInfo)
{
- if (!*args)
- return false;
-
Pet* pet = GetSelectedPlayerPetOrOwn(handler);
if (!pet)
@@ -131,10 +127,7 @@ public:
return false;
}
- uint32 spellId = handler->extractSpellIdFromLink((char*)args);
-
- if (!spellId || !sSpellMgr->GetSpellInfo(spellId, DIFFICULTY_NONE))
- return false;
+ uint32 spellId = spellInfo->Id;
// Check if pet already has it
if (pet->HasSpell(spellId))
@@ -145,8 +138,7 @@ public:
}
// Check if spell is valid
- SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId, DIFFICULTY_NONE);
- if (!spellInfo || !SpellMgr::IsSpellValid(spellInfo))
+ if (!SpellMgr::IsSpellValid(spellInfo))
{
handler->PSendSysMessage(LANG_COMMAND_SPELL_BROKEN, spellId);
handler->SetSentErrorMessage(true);
@@ -159,11 +151,8 @@ public:
return true;
}
- static bool HandlePetUnlearnCommand(ChatHandler* handler, char const* args)
+ static bool HandlePetUnlearnCommand(ChatHandler* handler, SpellInfo const* spellInfo)
{
- if (!*args)
- return false;
-
Pet* pet = GetSelectedPlayerPetOrOwn(handler);
if (!pet)
{
@@ -172,7 +161,7 @@ public:
return false;
}
- uint32 spellId = handler->extractSpellIdFromLink((char*)args);
+ uint32 spellId = spellInfo->Id;
if (pet->HasSpell(spellId))
pet->removeSpell(spellId, false);
@@ -182,7 +171,7 @@ public:
return true;
}
- static bool HandlePetLevelCommand(ChatHandler* handler, char const* args)
+ static bool HandlePetLevelCommand(ChatHandler* handler, Optional<int32> level)
{
Pet* pet = GetSelectedPlayerPetOrOwn(handler);
Player* owner = pet ? pet->GetOwner() : nullptr;
@@ -193,9 +182,9 @@ public:
return false;
}
- int32 level = args ? atoi(args) : 0;
- if (level == 0)
+ if (!level)
level = owner->GetLevel() - pet->GetLevel();
+
if (level == 0 || level < -STRONG_MAX_LEVEL || level > STRONG_MAX_LEVEL)
{
handler->SendSysMessage(LANG_BAD_VALUE);
@@ -203,7 +192,7 @@ public:
return false;
}
- int32 newLevel = pet->GetLevel() + level;
+ int32 newLevel = pet->GetLevel() + *level;
if (newLevel < 1)
newLevel = 1;
else if (newLevel > owner->GetLevel())
diff --git a/src/server/scripts/Commands/cs_send.cpp b/src/server/scripts/Commands/cs_send.cpp
index d4f42b6c5f5..f9ee8c114f7 100644
--- a/src/server/scripts/Commands/cs_send.cpp
+++ b/src/server/scripts/Commands/cs_send.cpp
@@ -31,24 +31,26 @@
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#endif
+using namespace Trinity::ChatCommands;
+
class send_commandscript : public CommandScript
{
public:
send_commandscript() : CommandScript("send_commandscript") { }
- std::vector<ChatCommand> GetCommands() const override
+ ChatCommandTable GetCommands() const override
{
- static std::vector<ChatCommand> sendCommandTable =
+ static ChatCommandTable sendCommandTable =
{
- { "items", rbac::RBAC_PERM_COMMAND_SEND_ITEMS, true, &HandleSendItemsCommand, "" },
- { "mail", rbac::RBAC_PERM_COMMAND_SEND_MAIL, true, &HandleSendMailCommand, "" },
- { "message", rbac::RBAC_PERM_COMMAND_SEND_MESSAGE, true, &HandleSendMessageCommand, "" },
- { "money", rbac::RBAC_PERM_COMMAND_SEND_MONEY, true, &HandleSendMoneyCommand, "" },
+ { "items", HandleSendItemsCommand, rbac::RBAC_PERM_COMMAND_SEND_ITEMS, Console::Yes },
+ { "mail", HandleSendMailCommand, rbac::RBAC_PERM_COMMAND_SEND_MAIL, Console::Yes },
+ { "message", HandleSendMessageCommand, rbac::RBAC_PERM_COMMAND_SEND_MESSAGE, Console::Yes },
+ { "money", HandleSendMoneyCommand, rbac::RBAC_PERM_COMMAND_SEND_MONEY, Console::Yes },
};
- static std::vector<ChatCommand> commandTable =
+ static ChatCommandTable commandTable =
{
- { "send", rbac::RBAC_PERM_COMMAND_SEND, false, nullptr, "", sendCommandTable },
+ { "send", sendCommandTable },
};
return commandTable;
}
@@ -146,14 +148,14 @@ public:
char const* itemIdStr = strtok(itemStr, ":");
char const* itemCountStr = strtok(nullptr, " ");
- uint32 itemId = atoul(itemIdStr);
+ Optional<uint32> itemId = Trinity::StringTo<uint32>(itemIdStr);
if (!itemId)
return false;
- ItemTemplate const* item_proto = sObjectMgr->GetItemTemplate(itemId);
+ ItemTemplate const* item_proto = sObjectMgr->GetItemTemplate(*itemId);
if (!item_proto)
{
- handler->PSendSysMessage(LANG_COMMAND_ITEMIDINVALID, itemId);
+ handler->PSendSysMessage(LANG_COMMAND_ITEMIDINVALID, *itemId);
handler->SetSentErrorMessage(true);
return false;
}
@@ -161,18 +163,18 @@ public:
uint32 itemCount = itemCountStr ? atoi(itemCountStr) : 1;
if (itemCount < 1 || (item_proto->GetMaxCount() > 0 && itemCount > uint32(item_proto->GetMaxCount())))
{
- handler->PSendSysMessage(LANG_COMMAND_INVALID_ITEM_COUNT, itemCount, itemId);
+ handler->PSendSysMessage(LANG_COMMAND_INVALID_ITEM_COUNT, itemCount, *itemId);
handler->SetSentErrorMessage(true);
return false;
}
while (itemCount > item_proto->GetMaxStackSize())
{
- items.push_back(ItemPair(itemId, item_proto->GetMaxStackSize()));
+ items.push_back(ItemPair(*itemId, item_proto->GetMaxStackSize()));
itemCount -= item_proto->GetMaxStackSize();
}
- items.push_back(ItemPair(itemId, itemCount));
+ items.push_back(ItemPair(*itemId, itemCount));
if (items.size() > MAX_MAIL_ITEMS)
{
@@ -207,41 +209,10 @@ public:
return true;
}
/// Send money by mail
- static bool HandleSendMoneyCommand(ChatHandler* handler, char const* args)
+ static bool HandleSendMoneyCommand(ChatHandler* handler, PlayerIdentifier const& receiver, QuotedString const& subject, QuotedString const& text, int64 money)
{
/// format: name "subject text" "mail text" money
- Player* receiver;
- ObjectGuid receiverGuid;
- std::string receiverName;
- if (!handler->extractPlayerTarget((char*)args, &receiver, &receiverGuid, &receiverName))
- return false;
-
- char* tail1 = strtok(nullptr, "");
- if (!tail1)
- return false;
-
- char* msgSubject = handler->extractQuotedArg(tail1);
- if (!msgSubject)
- return false;
-
- char* tail2 = strtok(nullptr, "");
- if (!tail2)
- return false;
-
- char* msgText = handler->extractQuotedArg(tail2);
- if (!msgText)
- return false;
-
- char* moneyStr = strtok(nullptr, "");
- int64 money = moneyStr ? atoll(moneyStr) : 0;
- if (money <= 0)
- return false;
-
- // msgSubject, msgText isn't NUL after prev. check
- std::string subject = msgSubject;
- std::string text = msgText;
-
// from console show nonexisting sender
MailSender sender(MAIL_NORMAL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetGUID().GetCounter() : UI64LIT(0), MAIL_STATIONERY_GM);
@@ -249,11 +220,11 @@ public:
MailDraft(subject, text)
.AddMoney(money)
- .SendMailTo(trans, MailReceiver(receiver, receiverGuid.GetCounter()), sender);
+ .SendMailTo(trans, MailReceiver(receiver.GetConnectedPlayer(), receiver.GetGUID().GetCounter()), sender);
CharacterDatabase.CommitTransaction(trans);
- std::string nameLink = handler->playerLink(receiverName);
+ std::string nameLink = handler->playerLink(receiver.GetName());
handler->PSendSysMessage(LANG_MAIL_SENT, nameLink.c_str());
return true;
}
diff --git a/src/server/scripts/Commands/cs_wp.cpp b/src/server/scripts/Commands/cs_wp.cpp
index d70d97746fc..851bb6cb43a 100644
--- a/src/server/scripts/Commands/cs_wp.cpp
+++ b/src/server/scripts/Commands/cs_wp.cpp
@@ -304,29 +304,25 @@ public:
return false;
char* arg_id = strtok(nullptr, " ");
- uint32 id = 0;
if (show == "add")
{
- if (arg_id)
- id = atoul(arg_id);
-
- if (id)
+ if (Optional<uint32> id = Trinity::StringTo<uint32>(arg_id))
{
stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_SCRIPT_ID_BY_GUID);
- stmt->setUInt32(0, id);
+ stmt->setUInt32(0, *id);
PreparedQueryResult result = WorldDatabase.Query(stmt);
if (!result)
{
stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_WAYPOINT_SCRIPT);
- stmt->setUInt32(0, id);
+ stmt->setUInt32(0, *id);
WorldDatabase.Execute(stmt);
- handler->PSendSysMessage("%s%s%u|r", "|cff00ff00", "Wp Event: New waypoint event added: ", id);
+ handler->PSendSysMessage("%s%s%u|r", "|cff00ff00", "Wp Event: New waypoint event added: ", *id);
}
else
- handler->PSendSysMessage("|cff00ff00Wp Event: You have choosed an existing waypoint script guid: %u|r", id);
+ handler->PSendSysMessage("|cff00ff00Wp Event: You have choosed an existing waypoint script guid: %u|r", *id);
}
else
{
@@ -334,10 +330,10 @@ public:
PreparedQueryResult result = WorldDatabase.Query(stmt);
id = result->Fetch()->GetUInt32();
stmt = WorldDatabase.GetPreparedStatement(WORLD_INS_WAYPOINT_SCRIPT);
- stmt->setUInt32(0, id + 1);
+ stmt->setUInt32(0, *id + 1);
WorldDatabase.Execute(stmt);
- handler->PSendSysMessage("%s%s%u|r", "|cff00ff00", "Wp Event: New waypoint event added: |r|cff00ffff", id+1);
+ handler->PSendSysMessage("%s%s%u|r", "|cff00ff00", "Wp Event: New waypoint event added: |r|cff00ffff", *id+1);
}
return true;
@@ -351,7 +347,7 @@ public:
return true;
}
- id = atoul(arg_id);
+ uint32 id = Trinity::StringTo<uint32>(arg_id).value_or(0);
uint32 a2, a3, a4, a5, a6;
float a8, a9, a10, a11;
@@ -396,7 +392,7 @@ public:
return true;
}
- id = atoul(arg_id);
+ uint32 id = Trinity::StringTo<uint32>(arg_id).value_or(0);
stmt = WorldDatabase.GetPreparedStatement(WORLD_SEL_WAYPOINT_SCRIPT_ID_BY_GUID);
stmt->setUInt32(0, id);
@@ -424,7 +420,7 @@ public:
return true;
}
- id = atoul(arg_id);
+ uint32 id = Trinity::StringTo<uint32>(arg_id).value_or(0);
if (!id)
{
@@ -462,7 +458,7 @@ public:
if (arg_str_2 == "setid")
{
- uint32 newid = atoul(arg_3);
+ uint32 newid = Trinity::StringTo<uint32>(arg_3).value_or(0);
handler->PSendSysMessage("%s%s|r|cff00ffff%u|r|cff00ff00%s|r|cff00ffff%u|r", "|cff00ff00", "Wp Event: Waypoint script guid: ", newid, " id changed: ", id);
stmt = WorldDatabase.GetPreparedStatement(WORLD_UPD_WAYPOINT_SCRIPT_ID);
@@ -530,7 +526,7 @@ public:
}
else if (arg_str_2 == "dataint")
{
- WorldDatabase.PExecute("UPDATE waypoint_scripts SET {}='{}' WHERE guid='{}'", arg_2, atoul(arg_3), id); // Query can't be a prepared statement
+ WorldDatabase.PExecute("UPDATE waypoint_scripts SET {}='{}' WHERE guid='{}'", arg_2, arg_3, id); // Query can't be a prepared statement
handler->PSendSysMessage("|cff00ff00Waypoint script: |r|cff00ffff%u|r|cff00ff00 dataint updated.|r", id);
return true;
@@ -779,7 +775,7 @@ public:
if (target)
handler->SendSysMessage(LANG_WAYPOINT_CREATSELECTED);
- pathid = atoul(guid_str);
+ pathid = Trinity::StringTo<uint32>(guid_str).value_or(0);
}
std::string show = show_str;