1414#include < string>
1515#include < vector>
1616
17- namespace lse ::fake_command {
18- void registerFakeCommand (
17+ namespace lse ::legacy_command {
18+ void registerLegacyCommand (
1919 std::string const & name,
2020 std::string const & description,
2121 CommandPermissionLevel const level,
@@ -25,7 +25,8 @@ void registerFakeCommand(
2525) {
2626 using namespace ll ::command;
2727
28- auto & plugin = getEngineData (engine)->plugin ;
28+ EngineScope enter (engine.get ());
29+ auto & plugin = getEngineData (engine)->plugin ;
2930
3031 auto cmdParas = ll::string_utils::splitByPattern (name, " " );
3132 auto & command =
@@ -42,7 +43,7 @@ void registerFakeCommand(
4243 consoleFunc,
4344 engine](CommandOrigin const & origin, CommandOutput& output, RuntimeCommand const & command) {
4445 if (!engine) return ;
45- EngineScope enter (engine.get ());
46+ EngineScope enterInner (engine.get ());
4647 if (!playerFunc && !consoleFunc) return ;
4748 Local<Array> params = Array::newArray ();
4849 if (command[" args" ].hold (ParamKind::RawText)) {
@@ -64,7 +65,7 @@ void registerFakeCommand(
6465 });
6566}
6667
67- void newFakeCommand (
68+ void newLegacyCommand (
6869 bool isPlayer,
6970 std::string name,
7071 std::string const & description,
@@ -100,13 +101,18 @@ void newFakeCommand(
100101 }
101102}
102103
103- void registerFakeCommands () {
104+ void registerLegacyCommands () {
104105 for (auto & [name, data] : localShareData->fakeCommandsMap ) {
105- registerFakeCommand (name, data.description , data.level , data.engine , data.playerFunc , data.consoleFunc );
106+ try {
107+ registerLegacyCommand (name, data.description , data.level , data.engine , data.playerFunc , data.consoleFunc );
108+ } catch (...) {
109+ LegacyScriptEngine::getLogger ().error (" Failed to register legacy command: {}" _tr (name));
110+ ll::error_utils::printCurrentException (LegacyScriptEngine::getLogger ());
111+ }
106112 }
107113 localShareData->fakeCommandsMap .clear ();
108114}
109- } // namespace lse::fake_command
115+ } // namespace lse::legacy_command
110116
111117Local<Value> McClass::regPlayerCmd (Arguments const & args) {
112118 CHECK_ARGS_COUNT (args, 3 );
@@ -123,7 +129,7 @@ Local<Value> McClass::regPlayerCmd(Arguments const& args) {
123129 if (newLevel >= 0 && newLevel <= 5 ) level = newLevel;
124130 }
125131
126- lse::fake_command::newFakeCommand (
132+ lse::legacy_command::newLegacyCommand (
127133 true ,
128134 args[0 ].asString ().toString (),
129135 args[1 ].asString ().toString (),
@@ -142,7 +148,7 @@ Local<Value> McClass::regConsoleCmd(Arguments const& args) {
142148 CHECK_ARG_TYPE (args[2 ], ValueKind::kFunction );
143149
144150 try {
145- lse::fake_command::newFakeCommand (
151+ lse::legacy_command::newLegacyCommand (
146152 false ,
147153 args[0 ].asString ().toString (),
148154 args[1 ].asString ().toString (),
0 commit comments