aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Chat
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2020-08-28 00:11:16 +0200
committerShauren <shauren.trinity@gmail.com>2022-02-04 00:27:14 +0100
commit9f97fdd31a3b9a06b6acfa1101d105e43687e824 (patch)
tree027f81c18e7733fa3554cf1dd704a0900d254725 /src/server/game/Chat
parent6e45c371c4098942e0085a71577a07b17725ee93 (diff)
Core/Common: Tokenizer -> Trinity::Tokenize (PR: #25327)
(cherry picked from commit 534a2388b7c662c8796aabb1ec8cb424879799b6)
Diffstat (limited to 'src/server/game/Chat')
-rw-r--r--src/server/game/Chat/Channels/Channel.cpp6
-rw-r--r--src/server/game/Chat/Chat.cpp8
-rw-r--r--src/server/game/Chat/LanguageMgr.cpp9
3 files changed, 11 insertions, 12 deletions
diff --git a/src/server/game/Chat/Channels/Channel.cpp b/src/server/game/Chat/Channels/Channel.cpp
index 7f5a6cc8aec..46a4df0df76 100644
--- a/src/server/game/Chat/Channels/Channel.cpp
+++ b/src/server/game/Chat/Channels/Channel.cpp
@@ -31,6 +31,7 @@
#include "ObjectMgr.h"
#include "Player.h"
#include "SocialMgr.h"
+#include "StringConvert.h"
#include "World.h"
#include "WorldSession.h"
#include <sstream>
@@ -73,11 +74,10 @@ Channel::Channel(ObjectGuid const& guid, std::string const& name, uint32 team /*
_channelName(name),
_zoneEntry(nullptr)
{
- Tokenizer tokens(banList, ' ');
- for (auto const& token : tokens)
+ for (std::string_view guid : Trinity::Tokenize(banList, ' ', false))
{
// legacy db content might not have 0x prefix, account for that
- std::string bannedGuidStr(memcmp(token, "0x", 2) ? token + 2 : token);
+ std::string bannedGuidStr(guid.size() > 2 && guid.substr(0, 2) == "0x" ? guid.substr(2) : guid);
ObjectGuid banned;
banned.SetRawValue(uint64(strtoull(bannedGuidStr.substr(0, 16).c_str(), nullptr, 16)), uint64(strtoull(bannedGuidStr.substr(16).c_str(), nullptr, 16)));
if (!banned)
diff --git a/src/server/game/Chat/Chat.cpp b/src/server/game/Chat/Chat.cpp
index 3a0e77bd294..75acbffcbd3 100644
--- a/src/server/game/Chat/Chat.cpp
+++ b/src/server/game/Chat/Chat.cpp
@@ -180,7 +180,7 @@ void ChatHandler::SendSysMessage(const char *str, bool escapeCharacters)
// Replace every "|" with "||" in msg
if (escapeCharacters && msg.find('|') != std::string::npos)
{
- Tokenizer tokens{msg, '|'};
+ std::vector<std::string_view> tokens = Trinity::Tokenize(msg, '|', true);
std::ostringstream stream;
for (size_t i = 0; i < tokens.size() - 1; ++i)
stream << tokens[i] << "||";
@@ -190,7 +190,7 @@ void ChatHandler::SendSysMessage(const char *str, bool escapeCharacters)
}
WorldPackets::Chat::Chat packet;
- for (const auto& line : Tokenizer{msg, '\n'})
+ for (std::string_view line : Trinity::Tokenize(str, '\n', true))
{
packet.Initialize(CHAT_MSG_SYSTEM, LANG_UNIVERSAL, nullptr, nullptr, line);
m_session->SendPacket(packet.Write());
@@ -200,7 +200,7 @@ void ChatHandler::SendSysMessage(const char *str, bool escapeCharacters)
void ChatHandler::SendGlobalSysMessage(const char *str)
{
WorldPackets::Chat::Chat packet;
- for (const auto& line : Tokenizer{str, '\n'})
+ for (std::string_view line : Trinity::Tokenize(str, '\n', true))
{
packet.Initialize(CHAT_MSG_SYSTEM, LANG_UNIVERSAL, nullptr, nullptr, line);
sWorld->SendGlobalMessage(packet.Write());
@@ -210,7 +210,7 @@ void ChatHandler::SendGlobalSysMessage(const char *str)
void ChatHandler::SendGlobalGMSysMessage(const char *str)
{
WorldPackets::Chat::Chat packet;
- for (const auto& line : Tokenizer{str, '\n'})
+ for (std::string_view line : Trinity::Tokenize(str, '\n', true))
{
packet.Initialize(CHAT_MSG_SYSTEM, LANG_UNIVERSAL, nullptr, nullptr, line);
sWorld->SendGlobalGMMessage(packet.Write());
diff --git a/src/server/game/Chat/LanguageMgr.cpp b/src/server/game/Chat/LanguageMgr.cpp
index ec2a65f9013..c30cfa9b965 100644
--- a/src/server/game/Chat/LanguageMgr.cpp
+++ b/src/server/game/Chat/LanguageMgr.cpp
@@ -216,13 +216,12 @@ std::string LanguageMgr::Translate(std::string const& msg, uint32 language, Loca
std::string result;
result.reserve(textToTranslate.length());
- Tokenizer tokens(textToTranslate, ' ');
- for (char const* str : tokens)
+ for (std::string_view str : Trinity::Tokenize(textToTranslate, ' ', false))
{
- uint32 wordLen = std::min(18u, uint32(strlen(str)));
+ uint32 wordLen = std::min(18u, uint32(str.length()));
if (LanguageMgr::WordList const* wordGroup = FindWordGroup(language, wordLen))
{
- uint32 wordHash = SStrHash(str, true);
+ uint32 wordHash = SStrHash(str.data(), true);
uint8 idxInsideGroup = wordHash % wordGroup->size();
char const* replacementWord = (*wordGroup)[idxInsideGroup];
@@ -233,7 +232,7 @@ std::string LanguageMgr::Translate(std::string const& msg, uint32 language, Loca
case LOCALE_zhCN:
case LOCALE_zhTW:
{
- size_t length = std::min(strlen(str), strlen(replacementWord));
+ size_t length = std::min(str.length(), strlen(replacementWord));
for (size_t i = 0; i < length; ++i)
{
if (str[i] >= 'A' && str[i] <= 'Z')