aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Chat/ChatCommands
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-05-07 15:41:41 +0200
committerOvahlord <dreadkiller@gmx.de>2025-05-11 11:46:06 +0200
commit412c5416f9406548c5b59569fbbcf47438f72f07 (patch)
treee36a9e9b50f689fa0627f9bc390d86bcb6445cd1 /src/server/game/Chat/ChatCommands
parent18436298f43372edef32587ed1bf6e6f625c200c (diff)
Core/Misc: Minor compile time improving changes
(cherry picked from commit b5c99939a82ed956cd185cd7a2ede838e2fdf23e) # Conflicts: # src/server/game/Entities/Item/Item.cpp # src/server/game/Entities/Item/Item.h # src/server/game/Entities/Player/Player.cpp # src/server/game/Entities/Player/Player.h
Diffstat (limited to 'src/server/game/Chat/ChatCommands')
-rw-r--r--src/server/game/Chat/ChatCommands/ChatCommandTags.cpp15
-rw-r--r--src/server/game/Chat/ChatCommands/ChatCommandTags.h14
2 files changed, 18 insertions, 11 deletions
diff --git a/src/server/game/Chat/ChatCommands/ChatCommandTags.cpp b/src/server/game/Chat/ChatCommands/ChatCommandTags.cpp
index 9caf55b9723..bc64636319c 100644
--- a/src/server/game/Chat/ChatCommands/ChatCommandTags.cpp
+++ b/src/server/game/Chat/ChatCommands/ChatCommandTags.cpp
@@ -29,6 +29,21 @@
using namespace Trinity::Impl::ChatCommands;
+ChatCommandResult Trinity::Impl::ChatCommands::TryConsumExactSequencee(std::string_view sequence, ChatHandler const* handler, std::string_view args)
+{
+ if (args.empty())
+ return std::nullopt;
+ std::string_view start = args.substr(0, sequence.length());
+ if (StringEqualI(start, sequence))
+ {
+ auto [remainingToken, tail] = Trinity::Impl::ChatCommands::tokenize(args.substr(sequence.length()));
+ if (remainingToken.empty()) // if this is not empty, then we did not consume the full token
+ return tail;
+ start = args.substr(0, sequence.length() + remainingToken.length());
+ }
+ return Trinity::Impl::ChatCommands::FormatTrinityString(handler, LANG_CMDPARSER_EXACT_SEQ_MISMATCH, STRING_VIEW_FMT_ARG(sequence), STRING_VIEW_FMT_ARG(start));
+}
+
ChatCommandResult Trinity::ChatCommands::QuotedString::TryConsume(ChatHandler const* handler, std::string_view args)
{
if (args.empty())
diff --git a/src/server/game/Chat/ChatCommands/ChatCommandTags.h b/src/server/game/Chat/ChatCommands/ChatCommandTags.h
index ed627a50111..c84d85c671f 100644
--- a/src/server/game/Chat/ChatCommands/ChatCommandTags.h
+++ b/src/server/game/Chat/ChatCommands/ChatCommandTags.h
@@ -65,6 +65,8 @@ namespace Trinity::Impl::ChatCommands
// this creates always 25 elements - "abc" -> 'a', 'b', 'c', '\0', '\0', ... up to 25
#define CHATCOMMANDS_IMPL_SPLIT_LITERAL(strliteral) CHATCOMMANDS_IMPL_SPLIT_LITERAL_CONSTRAINED(25, strliteral)
+
+ TC_GAME_API ChatCommandResult TryConsumExactSequencee(std::string_view sequence, ChatHandler const* handler, std::string_view args);
}
namespace Trinity::ChatCommands
@@ -90,17 +92,7 @@ namespace Trinity::ChatCommands
ChatCommandResult TryConsume(ChatHandler const* handler, std::string_view args) const
{
- if (args.empty())
- return std::nullopt;
- std::string_view start = args.substr(0, _string.length());
- if (StringEqualI(start, _string))
- {
- auto [remainingToken, tail] = Trinity::Impl::ChatCommands::tokenize(args.substr(_string.length()));
- if (remainingToken.empty()) // if this is not empty, then we did not consume the full token
- return tail;
- start = args.substr(0, _string.length() + remainingToken.length());
- }
- return Trinity::Impl::ChatCommands::FormatTrinityString(handler, LANG_CMDPARSER_EXACT_SEQ_MISMATCH, STRING_VIEW_FMT_ARG(_string), STRING_VIEW_FMT_ARG(start));
+ return Trinity::Impl::ChatCommands::TryConsumExactSequencee(_string, handler, args);
}
private: