Skip to content

Commit a08cf76

Browse files
committed
refactor: code clean
1 parent c6b81ad commit a08cf76

File tree

1 file changed

+25
-73
lines changed

1 file changed

+25
-73
lines changed

src/legacy/api/CommandAPI.cpp

Lines changed: 25 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -443,54 +443,40 @@ Local<Value> CommandClass::optional(const Arguments& args) {
443443
Local<Value> CommandClass::addOverload(const Arguments& args) {
444444
try {
445445
if (args.size() == 0) return Boolean::newBoolean(true);
446-
auto cmd = get().runtimeOverload(getEngineOwnData()->plugin);
447-
if (args[0].isNumber()) {
448-
for (int i = 0; i < args.size(); ++i) {
449-
CHECK_ARG_TYPE(args[i], ValueKind::kNumber);
450-
std::string paramName = std::to_string(args[i].asNumber().toInt32());
451-
auto& paramList = getEngineOwnData()->plugin->registeredCommands[commandName];
452-
for (auto& info : paramList) {
453-
if (info.name == paramName || info.enumName == paramName) {
454-
if (info.optional) {
455-
if (info.type == ParamKind::Kind::Enum || info.type == ParamKind::Kind::SoftEnum) {
456-
cmd.optional(info.enumName, info.type, info.enumName).option(info.option);
457-
} else {
458-
cmd.optional(info.name, info.type).option(info.option);
459-
}
446+
auto cmd = get().runtimeOverload(getEngineOwnData()->plugin);
447+
auto overloadFunc = [](RuntimeOverload& cmd, std::string const& commandName, std::string const& paramName) {
448+
auto& paramList = getEngineOwnData()->plugin->registeredCommands[commandName];
449+
for (auto& info : paramList) {
450+
if (info.name == paramName || info.enumName == paramName) {
451+
if (info.optional) {
452+
if (info.type == ParamKind::Kind::Enum || info.type == ParamKind::Kind::SoftEnum) {
453+
cmd.optional(info.enumName, info.type, info.enumName).option(info.option);
454+
} else {
455+
cmd.optional(info.name, info.type).option(info.option);
456+
}
457+
} else {
458+
if (info.type == ParamKind::Kind::Enum || info.type == ParamKind::Kind::SoftEnum) {
459+
cmd.required(info.enumName, info.type, info.enumName).option(info.option);
460460
} else {
461-
if (info.type == ParamKind::Kind::Enum || info.type == ParamKind::Kind::SoftEnum) {
462-
cmd.required(info.enumName, info.type, info.enumName).option(info.option);
463-
} else {
464-
cmd.required(info.name, info.type).option(info.option);
465-
}
461+
cmd.required(info.name, info.type).option(info.option);
466462
}
467463
}
468464
}
469465
}
466+
};
467+
if (args[0].isNumber()) {
468+
for (int i = 0; i < args.size(); ++i) {
469+
CHECK_ARG_TYPE(args[i], ValueKind::kNumber);
470+
std::string paramName = std::to_string(args[i].asNumber().toInt32());
471+
overloadFunc(cmd, commandName, paramName);
472+
}
470473
cmd.execute(onExecute);
471474
return Boolean::newBoolean(true);
472475
} else if (args[0].isString()) {
473476
for (int i = 0; i < args.size(); ++i) {
474477
CHECK_ARG_TYPE(args[i], ValueKind::kString);
475478
std::string paramName = args[0].asString().toString();
476-
auto& paramList = getEngineOwnData()->plugin->registeredCommands[commandName];
477-
for (auto& info : paramList) {
478-
if (info.name == paramName || info.enumName == paramName) {
479-
if (info.optional) {
480-
if (info.type == ParamKind::Kind::Enum || info.type == ParamKind::Kind::SoftEnum) {
481-
cmd.optional(info.enumName, info.type, info.enumName).option(info.option);
482-
} else {
483-
cmd.optional(info.name, info.type).option(info.option);
484-
}
485-
} else {
486-
if (info.type == ParamKind::Kind::Enum || info.type == ParamKind::Kind::SoftEnum) {
487-
cmd.required(info.enumName, info.type, info.enumName).option(info.option);
488-
} else {
489-
cmd.required(info.name, info.type).option(info.option);
490-
}
491-
}
492-
}
493-
}
479+
overloadFunc(cmd, commandName, paramName);
494480
}
495481
cmd.execute(onExecute);
496482
return Boolean::newBoolean(true);
@@ -501,49 +487,15 @@ Local<Value> CommandClass::addOverload(const Arguments& args) {
501487
for (int i = 0; i < arr.size(); ++i) {
502488
CHECK_ARG_TYPE(arr.get(i), ValueKind::kNumber);
503489
std::string paramName = std::to_string(arr.get(i).asNumber().toInt32());
504-
auto& paramList = getEngineOwnData()->plugin->registeredCommands[commandName];
505-
for (auto& info : paramList) {
506-
if (info.name == paramName || info.enumName == paramName) {
507-
if (info.optional) {
508-
if (info.type == ParamKind::Kind::Enum || info.type == ParamKind::Kind::SoftEnum) {
509-
cmd.optional(info.enumName, info.type, info.enumName).option(info.option);
510-
} else {
511-
cmd.optional(info.name, info.type).option(info.option);
512-
}
513-
} else {
514-
if (info.type == ParamKind::Kind::Enum || info.type == ParamKind::Kind::SoftEnum) {
515-
cmd.required(info.enumName, info.type, info.enumName).option(info.option);
516-
} else {
517-
cmd.required(info.name, info.type).option(info.option);
518-
}
519-
}
520-
}
521-
}
490+
overloadFunc(cmd, commandName, paramName);
522491
}
523492
cmd.execute(onExecute);
524493
return Boolean::newBoolean(true);
525494
} else if (arr.get(0).isString()) {
526495
for (int i = 0; i < arr.size(); ++i) {
527496
CHECK_ARG_TYPE(arr.get(i), ValueKind::kString);
528497
std::string paramName = arr.get(i).asString().toString();
529-
auto& paramList = getEngineOwnData()->plugin->registeredCommands[commandName];
530-
for (auto& info : paramList) {
531-
if (info.name == paramName || info.enumName == paramName) {
532-
if (info.optional) {
533-
if (info.type == ParamKind::Kind::Enum || info.type == ParamKind::Kind::SoftEnum) {
534-
cmd.optional(info.enumName, info.type, info.enumName).option(info.option);
535-
} else {
536-
cmd.optional(info.name, info.type).option(info.option);
537-
}
538-
} else {
539-
if (info.type == ParamKind::Kind::Enum || info.type == ParamKind::Kind::SoftEnum) {
540-
cmd.required(info.enumName, info.type, info.enumName).option(info.option);
541-
} else {
542-
cmd.required(info.name, info.type).option(info.option);
543-
}
544-
}
545-
}
546-
}
498+
overloadFunc(cmd, commandName, paramName);
547499
}
548500
cmd.execute(onExecute);
549501
return Boolean::newBoolean(true);

0 commit comments

Comments
 (0)