@@ -52,7 +52,7 @@ using ll::event::ServerStartedEvent;
5252// ////////////////// Class Definition ////////////////////
5353
5454ClassDefine<void > PermissionStaticBuilder = EnumDefineBuilder<OldCommandPermissionLevel>::build(" PermType" );
55- ClassDefine<void > ParamTypeStaticBuilder = EnumDefineBuilder<ParamKind::Kind >::build(" ParamType" );
55+ ClassDefine<void > ParamTypeStaticBuilder = EnumDefineBuilder<OldParameterType >::build(" ParamType" );
5656ClassDefine<void > ParamOptionStaticBuilder = EnumDefineBuilder<CommandParameterOption>::build(" ParamOption" );
5757
5858ClassDefine<CommandClass> CommandClassBuilder =
@@ -370,12 +370,14 @@ void onExecute(CommandOrigin const& origin, CommandOutput& output, RuntimeComman
370370 }
371371 for (auto & info : registeredCommands[commandName]) {
372372 try {
373- if (info.type == ParamKind::Kind::Enum || info.type == ParamKind::Kind::SoftEnum) {
374- auto & param = runtime[info.enumName ];
375- args.set (info.name , convertResult (param, origin, output));
376- } else {
377- auto & param = runtime[info.name ];
378- args.set (info.name , convertResult (param, origin, output));
373+ if (!info.name .empty ()) {
374+ if (info.type == ParamKind::Kind::Enum || info.type == ParamKind::Kind::SoftEnum) {
375+ auto & param = runtime[info.enumName ];
376+ args.set (info.name , convertResult (param, origin, output));
377+ } else {
378+ auto & param = runtime[info.name ];
379+ args.set (info.name , convertResult (param, origin, output));
380+ }
379381 }
380382 } catch (std::out_of_range&) {
381383 continue ;
@@ -395,7 +397,7 @@ Local<Value> CommandClass::newParameter(const Arguments& args) {
395397 CHECK_ARG_TYPE (args[0 ], ValueKind::kString );
396398 try {
397399 auto name = args[0 ].asString ().toString ();
398- ParamKind::Kind type = parseEnum< ParamKind::Kind>(args[1 ]);
400+ ParamKind::Kind type = ( ParamKind::Kind)parseEnum<OldParameterType >(args[1 ]);
399401 std::string enumName = " " ;
400402 bool optional = false ;
401403 std::string identifier = " " ;
@@ -423,7 +425,7 @@ Local<Value> CommandClass::mandatory(const Arguments& args) {
423425 CHECK_ARG_TYPE (args[0 ], ValueKind::kString );
424426 try {
425427 auto name = args[0 ].asString ().toString ();
426- ParamKind::Kind type = parseEnum< ParamKind::Kind>(args[1 ]);
428+ ParamKind::Kind type = ( ParamKind::Kind)parseEnum<OldParameterType >(args[1 ]);
427429 std::string enumName = " " ;
428430 std::string identifier = " " ;
429431 size_t index = 2 ;
@@ -449,7 +451,7 @@ Local<Value> CommandClass::optional(const Arguments& args) {
449451 CHECK_ARG_TYPE (args[0 ], ValueKind::kString );
450452 try {
451453 auto name = args[0 ].asString ().toString ();
452- ParamKind::Kind type = parseEnum< ParamKind::Kind>(args[1 ]);
454+ ParamKind::Kind type = ( ParamKind::Kind)parseEnum<OldParameterType >(args[1 ]);
453455 std::string enumName = " " ;
454456 std::string identifier = " " ;
455457 size_t index = 2 ;
@@ -472,7 +474,6 @@ Local<Value> CommandClass::optional(const Arguments& args) {
472474// vector<index>
473475Local<Value> CommandClass::addOverload (const Arguments& args) {
474476 try {
475- if (args.size () == 0 ) return Boolean::newBoolean (true );
476477 auto overloadFunc = [e (EngineScope::currentEngine ()
477478 )](RuntimeOverload& cmd, std::string const & commandName, std::string const & paramName) {
478479 auto & paramList = getEngineData (e)->plugin ->registeredCommands [commandName];
@@ -552,13 +553,15 @@ Local<Value> CommandClass::addOverload(const Arguments& args) {
552553 if (ll::getGamingStatus () == ll::GamingStatus::Starting) {
553554 EventBus::getInstance ().emplaceListener <ServerStartedEvent>(
554555 [commandName (commandName), e (EngineScope::currentEngine ())](ServerStartedEvent&) {
556+ getEngineData (e)->plugin ->registeredCommands [commandName].push_back ({});
555557 auto cmd = ll::command::CommandRegistrar::getInstance ()
556558 .getOrCreateCommand (commandName)
557559 .runtimeOverload (getEngineData (e)->plugin );
558560 cmd.execute (onExecute);
559561 }
560562 );
561563 } else {
564+ getEngineOwnData ()->plugin ->registeredCommands [commandName].push_back ({});
562565 auto cmd = get ().runtimeOverload (getEngineOwnData ()->plugin );
563566 cmd.execute (onExecute);
564567 }
@@ -602,7 +605,7 @@ Local<Value> CommandClass::addOverload(const Arguments& args) {
602605 return Boolean::newBoolean (true );
603606 }
604607 }
605- LOG_WRONG_ARG_TYPE ();
608+ LOG_WRONG_ARG_TYPE (__FUNCTION__ );
606609 return Local<Value>();
607610 }
608611 CATCH (" Fail in addOverload!" )
0 commit comments