diff --git a/LiteLoader/Header/MC/Command.hpp b/LiteLoader/Header/MC/Command.hpp index ab0563c..fd59693 100644 --- a/LiteLoader/Header/MC/Command.hpp +++ b/LiteLoader/Header/MC/Command.hpp @@ -48,7 +48,7 @@ class Command { #define AFTER_EXTRA // Add Member There - +#define DISABLE_CONSTRUCTOR_PREVENTION_COMMAND protected: int version; // 8 CommandRegistry* registry; // 16 @@ -68,18 +68,16 @@ public: return sym(a, b); } std::string getCommandName() const{ - return this->registry->symbolToString(this->symbol); + return registry->symbolToString(symbol); }; - Command(){ - CommandFlag mflag; - mflag.value = CommandFlagValue::None; - *(void**)this = dlsym("??_7Command@@6B@"); - this->version = 0; - this->registry = 0LL; - this->symbol = -1; - this->permission = CommandPermissionLevel(5); - this->flag = mflag; - } +// Command(){ +// this->version = 0; +// this->registry = 0LL; +// this->symbol = -1; +// this->permission = CommandPermissionLevel(5); +// this->flag.value = CommandFlagValue::None; +// this->unk = 0; +// } #undef AFTER_EXTRA #ifndef DISABLE_CONSTRUCTOR_PREVENTION_COMMAND diff --git a/LiteLoader/Kernel/Command/DynamicCommandAPI.cpp b/LiteLoader/Kernel/Command/DynamicCommandAPI.cpp index 85a33f5..b1172d0 100644 --- a/LiteLoader/Kernel/Command/DynamicCommandAPI.cpp +++ b/LiteLoader/Kernel/Command/DynamicCommandAPI.cpp @@ -395,7 +395,8 @@ inline char DynamicCommand::builderCallbackHanler(DCCallback* cb, DCArgs* args, DCValue* result, void* userdata) { DynamicCommandInstance& command = *(DynamicCommandInstance*)userdata; auto arg1 = (std::unique_ptr*)dcbArgPointer(args); - DynamicCommand::commandBuilder(arg1, command.getCommandName()); + arg1->release(); + result->p = DynamicCommand::commandBuilder(arg1, command.getCommandName()); return 'p'; } @@ -503,7 +504,7 @@ #ifdef USE_PARSE_ENUM_STRING Global->addEnumValuesInternal(fixedView.data(), values, typeid_t::count++, &CommandRegistry::parseEnumStringAndInt).val; #else - Global->_addEnumValuesInternal(fixedView.data(), values, typeid_t::count++, &CommandRegistry::parseEnum).val; + Global->addEnumValuesInternal(fixedView.data(), values, typeid_t::count++, &CommandRegistry::parseEnum).val; #endif // USE_PARSE_ENUM_STRING } commandInstance->enumRanges.swap(convertedEnumRanges);