#pragma once #include "AbstractBean.hpp" #include "V2RayStreamSettings.hpp" #include "Preset.hpp" namespace NekoGui_fmt { class VMessBean : public AbstractBean { public: QString uuid = ""; int aid = 0; QString security = "auto"; std::shared_ptr stream = std::make_shared(); VMessBean() : AbstractBean(0) { _add(new configItem("id", &uuid, itemType::string)); _add(new configItem("aid", &aid, itemType::integer)); _add(new configItem("sec", &security, itemType::string)); _add(new configItem("stream", dynamic_cast(stream.get()), itemType::jsonStore)); }; bool IsValid() { if (stream == nullptr) return true; return stream->isValid(); } QString DisplayType() override { return "VMess"; }; CoreObjOutboundBuildResult BuildCoreObjSingBox() override; bool TryParseLink(const QString &link); QString ToShareLink() override; }; } // namespace NekoGui_fmt