aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Chat/Channels/Channel.cpp4
-rw-r--r--src/server/game/Chat/Channels/Channel.h7
-rw-r--r--src/server/game/Chat/Chat.cpp5
-rw-r--r--src/server/game/Chat/Chat.h16
-rw-r--r--src/server/game/Chat/ChatCommands/ChatCommandHelpers.cpp5
-rw-r--r--src/server/game/Chat/ChatCommands/ChatCommandHelpers.h3
-rw-r--r--src/server/scripts/Commands/cs_character.cpp2
-rw-r--r--src/server/scripts/Commands/cs_lookup.cpp4
-rw-r--r--src/server/scripts/Commands/cs_titles.cpp6
9 files changed, 40 insertions, 12 deletions
diff --git a/src/server/game/Chat/Channels/Channel.cpp b/src/server/game/Chat/Channels/Channel.cpp
index f8a5340402f..0550f4ea931 100644
--- a/src/server/game/Chat/Channels/Channel.cpp
+++ b/src/server/game/Chat/Channels/Channel.cpp
@@ -94,6 +94,8 @@ Channel::Channel(ObjectGuid const& guid, std::string const& name, uint32 team /*
}
}
+Channel::~Channel() = default;
+
void Channel::GetChannelName(std::string& channelName, uint32 channelId, LocaleConstant locale, AreaTableEntry const* zoneEntry)
{
if (channelId)
@@ -104,7 +106,7 @@ void Channel::GetChannelName(std::string& channelName, uint32 channelId, LocaleC
if (channelEntry->GetFlags().HasFlag(ChatChannelFlags::LinkedChannel))
zoneEntry = ChannelMgr::SpecialLinkedArea;
- channelName = fmt::sprintf(channelEntry->Name[locale], ASSERT_NOTNULL(zoneEntry)->AreaName[locale]);
+ channelName = ChatHandler::PGetParseString(channelEntry->Name[locale], ASSERT_NOTNULL(zoneEntry)->AreaName[locale]);
}
else
channelName = channelEntry->Name[locale];
diff --git a/src/server/game/Chat/Channels/Channel.h b/src/server/game/Chat/Channels/Channel.h
index 2fdaa0f2655..8fff9ea3950 100644
--- a/src/server/game/Chat/Channels/Channel.h
+++ b/src/server/game/Chat/Channels/Channel.h
@@ -161,6 +161,13 @@ class TC_GAME_API Channel
Channel(ObjectGuid const& guid, uint32 channelId, uint32 team = 0, AreaTableEntry const* zoneEntry = nullptr); // built-in channel ctor
Channel(ObjectGuid const& guid, std::string const& name, uint32 team = 0, std::string const& banList = ""); // custom player channel ctor
+ Channel(Channel const&) = delete;
+ Channel(Channel&&) = delete;
+ Channel& operator=(Channel const&) = delete;
+ Channel& operator=(Channel&&) = delete;
+
+ ~Channel();
+
static void GetChannelName(std::string& channelName, uint32 channelId, LocaleConstant locale, AreaTableEntry const* zoneEntry);
std::string GetName(LocaleConstant locale = DEFAULT_LOCALE) const;
diff --git a/src/server/game/Chat/Chat.cpp b/src/server/game/Chat/Chat.cpp
index 4255cc1daad..55a49a13e1d 100644
--- a/src/server/game/Chat/Chat.cpp
+++ b/src/server/game/Chat/Chat.cpp
@@ -159,6 +159,11 @@ void ChatHandler::SendSysMessage(uint32 entry)
SendSysMessage(GetTrinityString(entry));
}
+std::string ChatHandler::StringVPrintf(std::string_view messageFormat, fmt::printf_args messageFormatArgs)
+{
+ return fmt::vsprintf<char>(messageFormat, messageFormatArgs);
+}
+
bool ChatHandler::_ParseCommands(std::string_view text)
{
if (Trinity::ChatCommands::TryExecuteCommand(*this, text))
diff --git a/src/server/game/Chat/Chat.h b/src/server/game/Chat/Chat.h
index 2d9b49fb6b5..296a2af197b 100644
--- a/src/server/game/Chat/Chat.h
+++ b/src/server/game/Chat/Chat.h
@@ -54,23 +54,31 @@ class TC_GAME_API ChatHandler
void SendSysMessage(uint32 entry);
template<typename... Args>
- void PSendSysMessage(const char* fmt, Args&&... args)
+ void PSendSysMessage(char const* fmt, Args&&... args)
{
- SendSysMessage(fmt::sprintf(fmt, std::forward<Args>(args)...));
+ SendSysMessage(StringVPrintf(fmt, fmt::make_printf_args(std::forward<Args>(args)...)));
}
template<typename... Args>
void PSendSysMessage(uint32 entry, Args&&... args)
{
- SendSysMessage(PGetParseString(entry, std::forward<Args>(args)...).c_str());
+ SendSysMessage(PGetParseString(entry, std::forward<Args>(args)...));
+ }
+
+ template<typename... Args>
+ static std::string PGetParseString(std::string_view fmt, Args&&... args)
+ {
+ return StringVPrintf(fmt, fmt::make_printf_args(std::forward<Args>(args)...));
}
template<typename... Args>
std::string PGetParseString(uint32 entry, Args&&... args) const
{
- return fmt::sprintf(GetTrinityString(entry), std::forward<Args>(args)...);
+ return PGetParseString(GetTrinityString(entry), std::forward<Args>(args)...);
}
+ static std::string StringVPrintf(std::string_view messageFormat, fmt::printf_args messageFormatArgs);
+
bool _ParseCommands(std::string_view text);
virtual bool ParseCommands(std::string_view text);
diff --git a/src/server/game/Chat/ChatCommands/ChatCommandHelpers.cpp b/src/server/game/Chat/ChatCommands/ChatCommandHelpers.cpp
index ab64584a389..4963c5ad0b6 100644
--- a/src/server/game/Chat/ChatCommands/ChatCommandHelpers.cpp
+++ b/src/server/game/Chat/ChatCommands/ChatCommandHelpers.cpp
@@ -28,3 +28,8 @@ char const* Trinity::Impl::ChatCommands::GetTrinityString(ChatHandler const* han
{
return handler->GetTrinityString(which);
}
+
+std::string Trinity::Impl::ChatCommands::FormatTrinityString(std::string_view messageFormat, fmt::printf_args messageFormatArgs)
+{
+ return ChatHandler::StringVPrintf(messageFormat, messageFormatArgs);
+}
diff --git a/src/server/game/Chat/ChatCommands/ChatCommandHelpers.h b/src/server/game/Chat/ChatCommands/ChatCommandHelpers.h
index a7a5fe2d429..27bd1285fe9 100644
--- a/src/server/game/Chat/ChatCommands/ChatCommandHelpers.h
+++ b/src/server/game/Chat/ChatCommands/ChatCommandHelpers.h
@@ -123,10 +123,11 @@ namespace Trinity::Impl::ChatCommands
TC_GAME_API void SendErrorMessageToHandler(ChatHandler* handler, std::string_view str);
TC_GAME_API char const* GetTrinityString(ChatHandler const* handler, TrinityStrings which);
+ TC_GAME_API std::string FormatTrinityString(std::string_view messageFormat, fmt::printf_args messageFormatArgs);
template <typename... Ts>
std::string FormatTrinityString(ChatHandler const* handler, TrinityStrings which, Ts&&... args)
{
- return fmt::sprintf(GetTrinityString(handler, which), std::forward<Ts>(args)...);
+ return FormatTrinityString(GetTrinityString(handler, which), fmt::make_printf_args(std::forward<Ts>(args)...));
}
}
diff --git a/src/server/scripts/Commands/cs_character.cpp b/src/server/scripts/Commands/cs_character.cpp
index cd74bb7857e..9217a5c9f4b 100644
--- a/src/server/scripts/Commands/cs_character.cpp
+++ b/src/server/scripts/Commands/cs_character.cpp
@@ -267,7 +267,7 @@ public:
if (*target->m_playerData->PlayerTitle == titleInfo->MaskID)
activeStr = handler->GetTrinityString(LANG_ACTIVE);
- std::string titleName = fmt::sprintf(name, player->GetName());
+ std::string titleName = ChatHandler::PGetParseString(name, player->GetName());
// send title in "id (idx:idx) - [namedlink locale]" format
if (handler->GetSession())
diff --git a/src/server/scripts/Commands/cs_lookup.cpp b/src/server/scripts/Commands/cs_lookup.cpp
index 359b9651783..885ccf33f16 100644
--- a/src/server/scripts/Commands/cs_lookup.cpp
+++ b/src/server/scripts/Commands/cs_lookup.cpp
@@ -1252,7 +1252,7 @@ public:
continue;
LocaleConstant locale = handler->GetSessionDbcLocale();
- std::string name = (gender == GENDER_MALE ? titleInfo->Name : titleInfo->Name1)[locale];
+ std::string_view name = (gender == GENDER_MALE ? titleInfo->Name : titleInfo->Name1)[locale];
if (name.empty())
continue;
@@ -1288,7 +1288,7 @@ public:
? handler->GetTrinityString(LANG_ACTIVE)
: "";
- std::string titleNameStr = fmt::sprintf(name, targetName);
+ std::string titleNameStr = ChatHandler::PGetParseString(name, targetName);
// send title in "id (idx:idx) - [namedlink locale]" format
if (handler->GetSession())
diff --git a/src/server/scripts/Commands/cs_titles.cpp b/src/server/scripts/Commands/cs_titles.cpp
index 6d13b7fcaf6..4b79fe12b19 100644
--- a/src/server/scripts/Commands/cs_titles.cpp
+++ b/src/server/scripts/Commands/cs_titles.cpp
@@ -80,7 +80,7 @@ public:
}
std::string tNameLink = handler->GetNameLink(target);
- std::string titleNameStr = fmt::sprintf(target->GetNativeGender() == GENDER_MALE ? titleInfo->Name[handler->GetSessionDbcLocale()] : titleInfo->Name1[handler->GetSessionDbcLocale()], target->GetName());
+ std::string titleNameStr = ChatHandler::PGetParseString(target->GetNativeGender() == GENDER_MALE ? titleInfo->Name[handler->GetSessionDbcLocale()] : titleInfo->Name1[handler->GetSessionDbcLocale()], target->GetName());
target->SetTitle(titleInfo);
target->SetChosenTitle(titleInfo->MaskID);
@@ -113,7 +113,7 @@ public:
}
std::string tNameLink = handler->GetNameLink(target);
- std::string titleNameStr = fmt::sprintf(target->GetNativeGender() == GENDER_MALE ? titleInfo->Name[handler->GetSessionDbcLocale()] : titleInfo->Name1[handler->GetSessionDbcLocale()], target->GetName());
+ std::string titleNameStr = ChatHandler::PGetParseString(target->GetNativeGender() == GENDER_MALE ? titleInfo->Name[handler->GetSessionDbcLocale()] : titleInfo->Name1[handler->GetSessionDbcLocale()], target->GetName());
target->SetTitle(titleInfo);
handler->PSendSysMessage(LANG_TITLE_ADD_RES, *titleId, titleNameStr.c_str(), tNameLink.c_str());
@@ -146,7 +146,7 @@ public:
target->SetTitle(titleInfo, true);
std::string tNameLink = handler->GetNameLink(target);
- std::string titleNameStr = fmt::sprintf(target->GetNativeGender() == GENDER_MALE ? titleInfo->Name[handler->GetSessionDbcLocale()] : titleInfo->Name1[handler->GetSessionDbcLocale()], target->GetName());
+ std::string titleNameStr = ChatHandler::PGetParseString(target->GetNativeGender() == GENDER_MALE ? titleInfo->Name[handler->GetSessionDbcLocale()] : titleInfo->Name1[handler->GetSessionDbcLocale()], target->GetName());
handler->PSendSysMessage(LANG_TITLE_REMOVE_RES, *titleId, titleNameStr.c_str(), tNameLink.c_str());