46 std::span<ChatCommandBuilder const>
GetCommands()
const override
59 {
"wp", wpCommandTable },
98 uint32 maxpathid = result->Fetch()->GetInt32();
107 stmt->
setString(4,
"Created by .wp add"sv);
114 if (!pathid || pathid == 0u)
116 handler->
PSendSysMessage(
"%s%s|r",
"|cffff33ff",
"Current creature haven't loaded path.");
126 nodeId = (*result)[0].GetUInt32() + 1;
152 handler->
PSendSysMessage(
"%s%s%u%s%u%s|r",
"|cff00ff00",
"PathID: |r|cff00ffff", *pathid,
"|r|cff00ff00: Waypoint |r|cff00ffff", nodeId,
"|r|cff00ff00 created. ");
169 handler->
PSendSysMessage(
"%s%s|r",
"|cffff33ff",
"You want to load path to a waypoint? Aren't you?");
176 handler->
PSendSysMessage(
"%s%s|r",
"|cffff33ff",
"No valid path number provided.");
223 handler->
PSendSysMessage(
"%s%s|r|cff00ffff%u|r",
"|cff00ff00",
"Loading Path: ",
id);
235 handler->
PSendSysMessage(
"%s%s|r",
"|cff33ffff",
"You must select a target.");
242 handler->
PSendSysMessage(
"%s%s|r",
"|cffff33ff",
"Target is not saved to DB.");
247 if (!addon || addon->
PathId == 0)
249 handler->
PSendSysMessage(
"%s%s|r",
"|cffff33ff",
"Target does not have a loaded path.");
282 handler->
SendSysMessage(
"|cffff33ffERROR: You must select a waypoint.|r");
289 handler->
PSendSysMessage(
"|cff00ff00Path does not exist or target has no path|r");
297 handler->
PSendSysMessage(
"|cff00ff00Path does not exist or target has no path|r");
304 handler->
PSendSysMessage(
"|cff00ff00DEBUG: .wp modify del, PathId: |r|cff00ffff%u|r, NodeId: |r|cff00ffff%u|r", path->
Id, node->
Id);
318 handler->
PSendSysMessage(
"|cff00ff00DEBUG: .wp modify move, PathId: |r|cff00ffff%u|r, NodeId: |r|cff00ffff%u|r", path->
Id, node->
Id);
374 handler->
PSendSysMessage(
"|cff00ff00Path does not exist or target has no path|r");
382 handler->
PSendSysMessage(
"|cff00ff00Path does not exist or target has no path|r");
388 handler->
PSendSysMessage(
"|cff00ff00Show info: Path Id: |r|cff00ffff%u|r", path->
Id);
391 handler->
PSendSysMessage(
"|cff00ff00Show info: Node Id: |r|cff00ffff%u|r", node->
Id);
392 handler->
PSendSysMessage(
"|cff00ff00Show info: Node Delay: |r|cff00ffff%u|r", node->
Id);
401 handler->
PSendSysMessage(
"|cff00ff00Path does not exist: id %u|r", *pathid);
405 if (path->
Nodes.empty())
407 handler->
PSendSysMessage(
"|cff00ff00Path does not have any nodes: id %u|r", *pathid);
420 handler->
PSendSysMessage(
"|cff00ff00Path with id %u is already showing.|r", *pathid);
424 handler->
PSendSysMessage(
"|cff00ff00Showing path with id %u.|r", *pathid);
432 handler->
PSendSysMessage(
"|cff00ff00Path does not exist: id %u|r", *pathid);
442 handler->
PSendSysMessage(
"|cffff33ffDEBUG: .wp show - no valid command found|r");
std::shared_ptr< PreparedResultSet > PreparedQueryResult
DatabaseWorkerPool< WorldDatabaseConnection > WorldDatabase
Accessor to the world database.
@ LANG_WAYPOINT_CREATSELECTED
@ LANG_WAYPOINT_VP_ALLREMOVED
@ LANG_WAYPOINT_VP_SELECT
std::optional< T > Optional
Optional helper class to wrap optional values within.
Role Based Access Control related classes definition.
constexpr std::underlying_type< E >::type AsUnderlyingType(E enumValue)
@ WORLD_INS_CREATURE_ADDON
@ WORLD_SEL_CREATURE_ADDON_BY_GUID
@ WORLD_INS_WAYPOINT_PATH_NODE
@ WORLD_INS_WAYPOINT_PATH
@ WORLD_UPD_CREATURE_MOVEMENT_TYPE
@ WORLD_UPD_CREATURE_ADDON_PATH
@ WORLD_DEL_CREATURE_ADDON
@ WORLD_SEL_WAYPOINT_PATH_NODE_MAX_NODEID
@ WORLD_SEL_WAYPOINT_PATH_NODE_MAX_PATHID
ObjectGuid const & GetGUID() const
Creature * getSelectedCreature()
void SetSentErrorMessage(bool val)
Player * GetPlayer() const
void PSendSysMessage(char const *fmt, Args &&... args)
virtual void SendSysMessage(std::string_view str, bool escapeCharacters=false)
void UpdateCurrentWaypointInfo(uint32 nodeId, uint32 pathId)
uint32 GetWaypointPathId() const
ObjectGuid::LowType GetSpawnId() const
void SetDefaultMovementType(MovementGeneratorType mgt)
void LoadPath(uint32 pathid)
constexpr std::underlying_type_t< T > AsUnderlyingType() const
void setString(uint8 index, std::string &&value)
void setUInt32(uint8 index, uint32 value)
void setFloat(uint8 index, float value)
void setUInt64(uint8 index, uint64 value)
void setUInt8(uint8 index, uint8 value)
void setNull(uint8 index)
virtual void Say(std::string_view text, Language language, WorldObject const *target=nullptr)
MotionMaster * GetMotionMaster()
uint32 GetDisplayId() const
static bool HandleWpShowCommand(ChatHandler *handler, Variant< EXACT_SEQUENCE("off"), EXACT_SEQUENCE("on"), EXACT_SEQUENCE("info")> show, Optional< uint32 > pathid)
std::span< ChatCommandBuilder const > GetCommands() const override
static bool HandleWpModifyCommand(ChatHandler *handler, Variant< EXACT_SEQUENCE("del"), EXACT_SEQUENCE("move")> show)
static bool HandleWpAddCommand(ChatHandler *handler, Optional< uint32 > pathid)
static bool HandleWpUnLoadCommand(ChatHandler *handler)
static bool HandleWpReloadCommand(ChatHandler *handler, uint32 id)
static bool HandleWpLoadCommand(ChatHandler *handler, uint32 pathid)
void AddSC_wp_commandscript()
ChatCommandBuilder const [] ChatCommandTable
@ RBAC_PERM_COMMAND_WP_SHOW
@ RBAC_PERM_COMMAND_WP_MODIFY
@ RBAC_PERM_COMMAND_WP_UNLOAD
@ RBAC_PERM_COMMAND_WP_LOAD
@ RBAC_PERM_COMMAND_WP_ADD
@ RBAC_PERM_COMMAND_WP_RELOAD
constexpr float GetPositionX() const
constexpr float GetPositionY() const
constexpr void GetPosition(float &x, float &y) const
constexpr float GetOrientation() const
constexpr float GetPositionZ() const
std::vector< WaypointNode > Nodes
EnumFlag< WaypointPathFlags > Flags
WaypointMoveType MoveType