45 bool IsConsole()
const {
return (m_session ==
nullptr); }
54 std::string
const& senderName =
"", std::string
const& receiverName =
"",
55 uint32 achievementId = 0,
bool gmMessage =
false, std::string
const& channelName =
"");
60 static char*
LineFromMessage(
char*& pos) {
char* start = strtok(pos,
"\n"); pos =
nullptr;
return start; }
63 virtual char const* GetTrinityString(
uint32 entry)
const;
64 virtual void SendSysMessage(std::string_view str,
bool escapeCharacters =
false);
66 void SendSysMessage(
uint32 entry);
68 template<
typename... Args>
71 SendSysMessage(StringVPrintf(
fmt, fmt::make_printf_args(args...)));
74 template<
typename... Args>
77 SendSysMessage(PGetParseString(entry, std::forward<Args>(args)...));
80 template<
typename... Args>
83 return StringVPrintf(
fmt, fmt::make_printf_args(args...));
86 template<
typename... Args>
89 return PGetParseString(GetTrinityString(entry), std::forward<Args>(args)...);
92 static std::string StringVPrintf(std::string_view messageFormat, fmt::printf_args messageFormatArgs);
94 bool _ParseCommands(std::string_view text);
95 virtual bool ParseCommands(std::string_view text);
97 void SendGlobalSysMessage(
const char *str);
101 virtual bool HasPermission(
uint32 permission)
const;
102 virtual std::string GetNameLink()
const;
103 virtual bool needReportToTarget(
Player* chr)
const;
105 virtual int GetSessionDbLocaleIndex()
const;
107 bool HasLowerSecurity(
Player* target,
ObjectGuid guid,
bool strong =
false);
108 bool HasLowerSecurityAccount(
WorldSession* target,
uint32 account,
bool strong =
false);
110 void SendGlobalGMSysMessage(
const char *str);
111 Player* getSelectedPlayer();
113 Unit* getSelectedUnit();
116 Player* getSelectedPlayerOrSelf();
118 char* extractKeyFromLink(
char* text,
char const* linkType,
char** something1 =
nullptr);
119 char* extractKeyFromLink(
char* text,
char const*
const* linkTypes,
int* found_idx,
char** something1 =
nullptr);
120 char* extractQuotedArg(
char* args);
122 bool GetPlayerGroupAndGUIDByName(
char const* cname,
Player*& player,
Group*& group,
ObjectGuid& guid,
bool offline =
false);
123 std::string extractPlayerNameFromLink(
char* text);
125 bool extractPlayerTarget(
char* args,
Player** player,
ObjectGuid* player_guid =
nullptr, std::string* player_name =
nullptr);
127 std::string
playerLink(std::string
const& name)
const {
return m_session ?
"|cffffffff|Hplayer:"+name+
"|h["+name+
"]|h|r" : name; }
128 std::string GetNameLink(
Player const* chr)
const;
136 explicit ChatHandler() : m_session(nullptr), sentErrorMessage(false) { }