LiteLDev / LeviLamina

A lightweight, modular and versatile mod loader for Minecraft Bedrock Edition, formerly known as LiteLoaderBDS
https://levimc.org/software/levilamina
GNU Lesser General Public License v3.0
1.14k stars 117 forks source link

BaseLib.js 并不作用于nodejs #1206

Closed harry-xi closed 1 year ago

harry-xi commented 1 year ago

异常模块

LiteLoader (本体)

操作系统

Windows Server 2022

LiteLoader 版本

LiteLoaderBDS 2.12.3 46622be (可复现于当前正式版复现)

BDS 版本

1.19.73

发生了什么?

BaseLib.js中的声明在llse-nodejs引擎中无效

若为故意为之,则nodejs引擎的用于实现对旧插件的兼容的声明不应出现在其中。而应该实现在一处对nodejs有效的位置。

复现此问题的步骤

创建一个qjs插件 写入如下内容 test1.js

log(file)

创建一个nodejs插件,在入口文件中写入以下内容

log(file)

启动服务端

在加载qjs插件时,看到期待中的输出:18:31:26 INFO [test1] <Function>

在加载ndoejs插件时,出现以下报错

18:31:27 INFO [LiteLoader] 加载 Node.js 插件...
node:embedder_main_0:1
const __LLSE_PublicRequire = require('module').createRequire(process.cwd() + '/plugins/nodejs/test/');const __LLSE_PublicModule = require('module'); __LLSE_PublicModule.exports = {};ll.export = ll.exports; ll.import = ll.imports; (function (exports, require, module, __filename, __dirname) { log(file)
                                                                                                                                                                                                                                                                                                        ^

ReferenceError: file is not defined
    at node:embedder_main_0:1:297
    at node:embedder_main_0:3:3
18:31:27 INFO [LiteLoader] NodeJs plugin test exited.
18:31:27 ERROR [LiteLoader] Fail to load plugins\nodejs\test!

有关的日志/输出

18:31:26 INFO [LiteLoader] 依赖项 BaseLib.js 已加载。
18:31:26 INFO [LiteLoader] 加载 Js 插件...
18:31:26 INFO [test1] <Function>
18:31:26 INFO [LiteLoader] Js 插件 <index222> 已加载。
18:31:26 INFO [LiteLoader] 1 个 Js 插件已加载。
18:31:27 INFO [LiteLoader] 加载 Node.js 插件...
node:embedder_main_0:1
const __LLSE_PublicRequire = require('module').createRequire(process.cwd() + '/plugins/nodejs/test/');const __LLSE_PublicModule = require('module'); __LLSE_PublicModule.exports = {};ll.export = ll.exports; ll.import = ll.imports; (function (exports, require, module, __filename, __dirname) { log(file)
                                                                                                                                                                                                                                                                                                        ^

ReferenceError: file is not defined
    at node:embedder_main_0:1:297
    at node:embedder_main_0:3:3
18:31:27 INFO [LiteLoader] NodeJs plugin test exited.
18:31:27 ERROR [LiteLoader] Fail to load plugins\nodejs\test!
18:31:27 INFO [LiteLoader] 0 个 Node.js 插件已加载。

插件列表

18:36:43 INFO [Server] 插件列表 [6]
18:36:43 INFO [Server] - PermissionAPI [v2.9.0] (PermissionAPI.dll)
18:36:43 INFO [Server]   Builtin & Powerful permission API for LiteLoaderBDS
18:36:43 INFO [Server] - ScriptEngine-QuickJs [v2.12.3] (LiteLoader.Js.dll)
18:36:43 INFO [Server]   Javascript ScriptEngine for LiteLoaderBDS
18:36:43 INFO [Server] - ScriptEngine-Python [v2.12.3] (LiteLoader.Python.dll)
18:36:43 INFO [Server]   Python ScriptEngine for LiteLoaderBDS
18:36:43 INFO [Server] - test1 [v1.0.0] (test1.js)
18:36:43 INFO [Server]   test1
18:36:43 INFO [Server] - ScriptEngine-NodeJs [v2.12.3] (LiteLoader.NodeJs.dll)
18:36:43 INFO [Server]   Node.js ScriptEngine for LiteLoaderBDS
18:36:43 INFO [Server] - ScriptEngine-Lua [v2.12.3] (LiteLoader.Lua.dll)
18:36:43 INFO [Server]   Lua ScriptEngine for LiteLoaderBDS
18:36:43 INFO [Server]
18:36:43 INFO [Server]
18:36:43 INFO [Server] * 使用命令“ll list <Plugin Name>”来获取更多信息
harry-xi commented 1 year ago

有误:新的更改的兼容性内容声明确实有被实现在对nodejs引擎有效的位置