18#ifndef TRINITYCORE_CHAT_H
19#define TRINITYCORE_CHAT_H
23#include <fmt/printf.h>
41 bool IsConsole()
const {
return (m_session ==
nullptr); }
48 static char* LineFromMessage(
char*& pos);
52 virtual void SendSysMessage(std::string_view str,
bool escapeCharacters =
false);
54 void SendSysMessage(
uint32 entry);
56 template<
typename... Args>
59 SendSysMessage(fmt::sprintf(
fmt, std::forward<Args>(args)...));
62 template<
typename... Args>
65 SendSysMessage(PGetParseString(entry, std::forward<Args>(args)...).c_str());
68 template<
typename... Args>
74 bool _ParseCommands(std::string_view text);
75 virtual bool ParseCommands(std::string_view text);
77 void SendGlobalSysMessage(
const char *str);
81 virtual bool HasPermission(
uint32 permission)
const;
82 virtual std::string GetNameLink()
const;
83 virtual bool needReportToTarget(
Player* chr)
const;
88 bool HasLowerSecurityAccount(
WorldSession* target,
uint32 account,
bool strong =
false);
90 void SendGlobalGMSysMessage(
const char *str);
91 Player* getSelectedPlayer();
93 Unit* getSelectedUnit();
96 Player* getSelectedPlayerOrSelf();
98 char* extractKeyFromLink(
char* text,
char const* linkType,
char** something1 =
nullptr);
99 char* extractKeyFromLink(
char* text,
char const*
const* linkTypes,
int* found_idx,
char** something1 =
nullptr);
100 char* extractQuotedArg(
char* args);
102 bool GetPlayerGroupAndGUIDByName(
const char* cname,
Player*& player,
Group*& group,
ObjectGuid& guid,
bool offline =
false);
103 std::string extractPlayerNameFromLink(
char* text);
105 bool extractPlayerTarget(
char* args,
Player** player,
ObjectGuid* player_guid =
nullptr, std::string* player_name =
nullptr);
107 std::string playerLink(std::string
const& name)
const;
108 std::string GetNameLink(
Player* chr)
const;
116 explicit ChatHandler() : m_session(nullptr), sentErrorMessage(false) { }
128 using Print = void(
void*, std::string_view);
129 explicit CliHandler(
void* callbackArg,
Print* zprint) : m_callbackArg(callbackArg), m_print(zprint) { }
134 void SendSysMessage(std::string_view,
bool escapeCharacters)
override;
135 bool ParseCommands(std::string_view str)
override;
136 std::string GetNameLink()
const override;
137 bool needReportToTarget(
Player* chr)
const override;
152 bool ParseCommands(std::string_view str)
override;
153 void SendSysMessage(std::string_view,
bool escapeCharacters)
override;
158 void Send(std::string
const& msg);
163 char const* echo =
nullptr;
165 bool humanReadable =
false;
static std::string const PREFIX
bool IsHumanReadable() const override
virtual bool IsHumanReadable() const
WorldSession * GetSession()
bool HasSentErrorMessage() const
ChatHandler(WorldSession *session)
std::string PGetParseString(uint32 entry, Args &&... args) const
void PSendSysMessage(const char *fmt, Args &&... args)
void SetSentErrorMessage(bool val)
WorldSession const * GetSession() const
virtual void SendSysMessage(std::string_view str, bool escapeCharacters=false)
void PSendSysMessage(uint32 entry, Args &&... args)
CliHandler(void *callbackArg, Print *zprint)
void(void *, std::string_view) Print
bool HasPermission(uint32) const override
Player session in the World.
TC_GAME_API Player * GetPlayer(Map const *, ObjectGuid const &guid)
TC_GAME_API char const * GetTrinityString(ChatHandler const *handler, TrinityStrings which)