aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Chat/ChatCommands
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2020-09-03 22:16:57 +0200
committerShauren <shauren.trinity@gmail.com>2022-02-05 00:24:39 +0100
commit6fded37e86bc77cd54be63139fb434708223da98 (patch)
treea5885743bf8996f9d6adff4882cbbd95afc62270 /src/server/game/Chat/ChatCommands
parentda8a66a05e86189511393110be29b5c09fae9b30 (diff)
Scripts/Commands: Convert argument parsing of gameobject commands
(cherry picked from commit 35b3ba90b03143f2dc700cc4baeb88a58089c102)
Diffstat (limited to 'src/server/game/Chat/ChatCommands')
-rw-r--r--src/server/game/Chat/ChatCommands/ChatCommand.h2
-rw-r--r--src/server/game/Chat/ChatCommands/ChatCommandArgs.h2
-rw-r--r--src/server/game/Chat/ChatCommands/ChatCommandTags.h3
3 files changed, 5 insertions, 2 deletions
diff --git a/src/server/game/Chat/ChatCommands/ChatCommand.h b/src/server/game/Chat/ChatCommands/ChatCommand.h
index dac914485d0..616b4984460 100644
--- a/src/server/game/Chat/ChatCommands/ChatCommand.h
+++ b/src/server/game/Chat/ChatCommands/ChatCommand.h
@@ -55,7 +55,7 @@ namespace Trinity::Impl::ChatCommands
{
if constexpr (I < N)
{
- if (Optional<std::string_view> next = ArgInfo<std::variant_alternative_t<I, V>>::TryConsume(val.template emplace<I>(), args))
+ if (Optional<std::string_view> next = SingleConsumer<std::variant_alternative_t<I, V>>::TryConsumeTo(val.template emplace<I>(), args))
return next;
else
return TryAtIndex<I+1>(val, args);
diff --git a/src/server/game/Chat/ChatCommands/ChatCommandArgs.h b/src/server/game/Chat/ChatCommands/ChatCommandArgs.h
index aba41baddda..bdd0be0aace 100644
--- a/src/server/game/Chat/ChatCommands/ChatCommandArgs.h
+++ b/src/server/game/Chat/ChatCommands/ChatCommandArgs.h
@@ -43,7 +43,7 @@ namespace Trinity::Impl::ChatCommands
|* *|
\****************************************************************************************/
template <typename T, typename = void>
-struct ArgInfo { static_assert(!std::is_same_v<T,T>, "Invalid command parameter type - see ChatCommandArgs.h for possible types"); };
+struct ArgInfo { static_assert(Trinity::dependant_false_v<T>, "Invalid command parameter type - see ChatCommandArgs.h for possible types"); };
// catch-all for number types
template <typename T>
diff --git a/src/server/game/Chat/ChatCommands/ChatCommandTags.h b/src/server/game/Chat/ChatCommands/ChatCommandTags.h
index 9255ef18fd3..3c8c778d5ea 100644
--- a/src/server/game/Chat/ChatCommands/ChatCommandTags.h
+++ b/src/server/game/Chat/ChatCommands/ChatCommandTags.h
@@ -193,6 +193,9 @@ namespace Trinity::ChatCommands
return operator*();
}
+ template <bool C = have_operators>
+ std::enable_if_t<C, bool> operator!() const { return !**this; }
+
template <typename T>
Variant& operator=(T&& arg) { base::operator=(std::forward<T>(arg)); return *this; }