diff options
| author | Treeston <treeston.mmoc@gmail.com> | 2020-08-28 00:11:16 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2022-02-04 00:27:14 +0100 |
| commit | 9f97fdd31a3b9a06b6acfa1101d105e43687e824 (patch) | |
| tree | 027f81c18e7733fa3554cf1dd704a0900d254725 /src/server/game/Chat | |
| parent | 6e45c371c4098942e0085a71577a07b17725ee93 (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.cpp | 6 | ||||
| -rw-r--r-- | src/server/game/Chat/Chat.cpp | 8 | ||||
| -rw-r--r-- | src/server/game/Chat/LanguageMgr.cpp | 9 |
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') |
