Skip to content

Commit 3c4ba8c

Browse files
committed
refactor: rename FakeCommand to LegacyCommand
fix: fix LegacyCommand registration
1 parent 85bb770 commit 3c4ba8c

File tree

5 files changed

+32
-27
lines changed

5 files changed

+32
-27
lines changed

src/legacy/api/CommandCompatibleAPI.h

Lines changed: 0 additions & 7 deletions
This file was deleted.

src/legacy/api/EventAPI.cpp

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
1-
#include "EventAPI.h"
1+
#include "legacy/api/EventAPI.h"
22

3-
#include "BaseAPI.h"
4-
#include "BlockAPI.h"
5-
#include "CommandCompatibleAPI.h"
6-
#include "EntityAPI.h"
7-
#include "ItemAPI.h"
83
#include "legacy/api/APIHelp.h"
4+
#include "legacy/api/BaseAPI.h"
5+
#include "legacy/api/BlockAPI.h"
6+
#include "legacy/api/EntityAPI.h"
7+
#include "legacy/api/ItemAPI.h"
8+
#include "legacy/api/LegacyCommandAPI.h"
99
#include "legacy/api/McAPI.h"
1010
#include "legacy/api/PlayerAPI.h"
1111
#include "legacy/engine/EngineManager.h" // IWYU pragma: keep
1212
#include "legacy/engine/EngineOwnData.h"
1313
#include "legacy/engine/GlobalShareData.h"
14-
#include "legacy/engine/LocalShareData.h"
1514
#include "legacy/main/BuiltinCommands.h" // IWYU pragma: keep
1615
#include "legacy/main/Global.h"
1716
#include "ll/api/chrono/GameChrono.h"
@@ -868,9 +867,9 @@ void InitBasicEventListeners() {
868867
CallEvent(EVENT_TYPES::onServerStarted); // Not cancellable
869868
}
870869
IF_LISTENED_END(EVENT_TYPES::onServerStarted);
871-
}).launch(ll::thread::ServerThreadExecutor::getDefault());
872870

873-
lse::fake_command::registerFakeCommands();
871+
lse::legacy_command::registerLegacyCommands();
872+
}).launch(ll::thread::ServerThreadExecutor::getDefault());
874873
});
875874

876875
// 植入tick
Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
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

111117
Local<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(),

src/legacy/api/LegacyCommandAPI.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#pragma once
2+
3+
namespace lse::legacy_command {
4+
// 处理命令延迟注册
5+
void registerLegacyCommands();
6+
}
7+

src/lse/api/MoreGlobal.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include "MoreGlobal.h"
1+
#include "lse/api/MoreGlobal.h"
22

33
#include "mc/dataloadhelper/DefaultDataLoadHelper.h"
44

0 commit comments

Comments
 (0)