#include "CommandOutputAPI.h" //////////////////// Class Definition //////////////////// ClassDefine CommandOutputClassBuilder = defineClass("LLSE_CommandOutput") .constructor(nullptr) .instanceProperty("empty", &CommandOutputClass::empty) //.instanceProperty("type", &CommandOutputClass::getType) .instanceProperty("successCount", &CommandOutputClass::getSuccessCount) .instanceFunction("success", &CommandOutputClass::success) .instanceFunction("error", &CommandOutputClass::error) .instanceFunction("addMessage", &CommandOutputClass::addMessage) .instanceFunction("toString", &CommandOutputClass::toString) .build(); //////////////////// APIs //////////////////// CommandOutputClass::CommandOutputClass(CommandOutput* p) : ScriptClass(ScriptClass::ConstructFromCpp{}) , ptr(p){}; Local CommandOutputClass::newCommandOutput(CommandOutput* p) { auto newp = new CommandOutputClass(p); return newp->getScriptObject(); } // MCAPI bool empty() const; Local CommandOutputClass::empty() { try { return Boolean::newBoolean(get()->empty()); } CATCH("Fail in empty!"); } // MCAPI int getSuccessCount() const; Local CommandOutputClass::getSuccessCount() { try { return Number::newNumber(get()->getSuccessCount()); } CATCH("Fail in getSuccessCount!"); }; // MCAPI enum CommandOutputType getType() const; // Local CommandOutputClass::getType() //{ // try // { // return String::newString(magic_enum::enum_name(get()->getType())); // } // CATCH("Fail in getType!"); // }; // MCAPI void success(std::string const&, std::vector const&); // MCAPI void success(); Local CommandOutputClass::success(const Arguments& args) { try { if (args.size() == 0) { get()->success(); return Boolean::newBoolean(true); } CHECK_ARG_TYPE(args[0], ValueKind::kString); auto msg = args[0].toStr(); get()->success(msg); return Boolean::newBoolean(true); } CATCH("Fail in success!"); }; Local CommandOutputClass::addMessage(const Arguments& args) { try { CHECK_ARG_TYPE(args[0], ValueKind::kString); auto msg = args[0].toStr(); get()->addMessage(msg); return Boolean::newBoolean(true); } CATCH("Fail in addMessage!"); }; // MCAPI void error(std::string const&, std::vector const&); Local CommandOutputClass::error(const Arguments& args) { CHECK_ARGS_COUNT(args, 1); CHECK_ARG_TYPE(args[0], ValueKind::kString); try { auto msg = args[0].toStr(); get()->error(msg); return Boolean::newBoolean(true); } CATCH("Fail in error!"); }; Local CommandOutputClass::toString(const Arguments& args) { try { return String::newString(""); } CATCH("Fail in toString!"); };