1 files changed, 9 insertions, 2 deletions
diff --git a/src/EventAccessors.cpp b/src/EventAccessors.cpp
index 869687f4..24e2f35b 100644
--- a/src/EventAccessors.cpp
+++ b/src/EventAccessors.cpp
@@ -37,8 +37,15 @@ struct EventMsgType
template<class T>
mtx::events::MessageType operator()(const mtx::events::Event<T> &e)
{
- if constexpr (is_detected<msgtype_t, T>::value)
- return mtx::events::getMessageType(e.content.msgtype);
+ if constexpr (is_detected<msgtype_t, T>::value) {
+ if constexpr (std::is_same_v<std::optional<std::string>,
+ std::remove_cv_t<decltype(e.content.msgtype)>>)
+ return mtx::events::getMessageType(e.content.msgtype.value());
+ else if constexpr (std::is_same_v<
+ std::string,
+ std::remove_cv_t<decltype(e.content.msgtype)>>)
+ return mtx::events::getMessageType(e.content.msgtype);
+ }
return mtx::events::MessageType::Unknown;
}
};
|