#include "CommandOriginAPI.h" #include "NbtAPI.h" #include "EntityAPI.h" #include "APIHelp.h" #include "BaseAPI.h" #include "BlockAPI.h" #include "EntityAPI.h" #include "ItemAPI.h" #include "PlayerAPI.h" #include "McAPI.h" #include "ContainerAPI.h" #include "NbtAPI.h" #include #include #include #include #include #include #include #include #include //////////////////// Class Definition //////////////////// ClassDefine OriginTypeStaticBuilder = EnumDefineBuilder::build("OriginType"); ClassDefine CommandOriginClassBuilder = defineClass("LLSE_CommandOrigin") .constructor(nullptr) .instanceProperty("type", &CommandOriginClass::getOriginType) .instanceProperty("typeName", &CommandOriginClass::getOriginTypeName) .instanceProperty("name", &CommandOriginClass::getOriginName) .instanceProperty("pos", &CommandOriginClass::getPosition) .instanceProperty("blockPos", &CommandOriginClass::getBlockPosition) .instanceProperty("entity", &CommandOriginClass::getEntity) .instanceProperty("player", &CommandOriginClass::getPlayer) // .instanceFunction("getNbt", &CommandOriginClass::getNbt) .instanceFunction("toString", &CommandOriginClass::toString) .build(); //////////////////// APIs //////////////////// CommandOriginClass::CommandOriginClass(CommandOrigin const* p) : ScriptClass(ScriptClass::ConstructFromCpp{}) , ptr(p){}; Local CommandOriginClass::newCommandOrigin(CommandOrigin const* p) { auto newp = new CommandOriginClass(p); return newp->getScriptObject(); } Local CommandOriginClass::getOriginType() { try { return Number::newNumber((int)get()->getOriginType()); } CATCH("Fail in getOriginType!"); } Local CommandOriginClass::getOriginTypeName() { try { return String::newString(magic_enum::enum_name((OriginType)get()->getOriginType())); } CATCH("Fail in getOriginTypeName!"); } Local CommandOriginClass::getOriginName() { try { return String::newString(get()->getName()); } CATCH("Fail in getOriginName!"); } Local CommandOriginClass::getBlockPosition() { try { auto dim = get()->getDimension(); return IntPos::newPos(get()->getBlockPosition(), dim ? (int)dim->getDimensionId() : 0); } CATCH("Fail in getBlockPosition!"); } Local CommandOriginClass::getPosition() { try { auto dim = get()->getDimension(); return FloatPos::newPos(get()->getWorldPosition(), dim ? (int)dim->getDimensionId() : 0); } CATCH("Fail in getPosition!"); } Local CommandOriginClass::getEntity() { try { auto entity = get()->getEntity(); if (!entity) return Local(); return EntityClass::newEntity(entity); } CATCH("Fail in getEntity!"); } Local CommandOriginClass::getPlayer() { try { auto player = get()->getPlayer(); if (!player) return Local(); return PlayerClass::newPlayer((Player*)player); } CATCH("Fail in getPlayer!"); } //Local CommandOriginClass::getNbt(const Arguments& args) { // try { // return NbtCompoundClass::pack(std::make_unique(get()->serialize_1())); // } // CATCH("Fail in getNbt!"); //} Local CommandOriginClass::toString() { try { return String::newString(""); } CATCH("Fail in toString!"); }