diff --git a/legacy-script-engine-lua/baselib/BaseLib.js b/legacy-script-engine-lua/baselib/BaseLib.js deleted file mode 100644 index a7dbc56..0000000 --- a/legacy-script-engine-lua/baselib/BaseLib.js +++ /dev/null @@ -1,417 +0,0 @@ -/* -cjs.js begin, see - -Copyright 2021 callstackexceed - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ -(function () { - if (typeof require != "undefined") { - log("require already exist"); - } - - let coreModules = new Map([]); - - let basePath = "plugins/"; - - let utilPath = { - normalize(path) { - let dirs = path.split("/"); - if (dirs[dirs.length - 1] === "") { - dirs.pop(); - } - let newDirs = dirs.reduce((newDirs, dir) => { - switch (dir) { - case ".": - /* no-op */ - break; - case "..": - if ( - newDirs.length === 0 || - newDirs[newDirs.length - 1] == ".." - ) { - newDirs.push(".."); - } else { - newDirs.pop(); - } - break; - default: - newDirs.push(dir); - break; - } - return newDirs; - }, []); - return newDirs.join("/"); - }, - join(...paths) { - let newPath = paths - .map((path) => { - return utilPath.normalize(path); - }) - .join("/"); - return utilPath.normalize(newPath); - }, - dirname(path) { - return path.replace(/\/[^\/]+$/, ""); - }, - split(path) { - return path.split("/"); - }, - }; - - let currentModule = createModule("", null); - - currentModule.path = basePath; - - /* - ** See https://nodejs.org/api/modules.html#modules_all_together - */ - - function resolveID(id) { - let currentPath = (currentModule && currentModule.path) || basePath; - let requestPaths = []; - let result; - if (coreModules.has(id)) { - return coreModules.get(id); - } - if (id.startsWith("/")) { - result = loadAsFile(id); - if (result != undefined) { - return result; - } - result = loadAsDirectory(id); - if (result != undefined) { - return result; - } - throw new Error(`${id} not found`); - } - if (id.startsWith("./") || id.startsWith("../")) { - result = loadAsFile(utilPath.join(currentPath, id)); - if (result != undefined) { - return result; - } - result = loadAsDirectory(utilPath.join(currentPath, id)); - if (result != undefined) { - return result; - } - throw new Error(`${utilPath.join(currentPath, id)} not found`); - } - if (id.startsWith("#")) { - result = loadPackageImports(id, currentPath); - if (result != undefined) { - return result; - } - } - result = loadPackageSelf(id, currentPath); - if (result != undefined) { - return result; - } - result = loadNodeModules(id, currentPath); - if (result != undefined) { - return result; - } - throw new Error( - `${id} not found, required by ${currentModule && currentModule.id}` - ); - - function tryFile(path) { - if (path.startsWith("../")) { - throw new Error("cannot require file out of root dir"); - } - path = path.replace(/^\//, ""); - let cjsSelf = "plugins/cjs.js"; - if (path === cjsSelf) { - throw new Error("cjs.js is trying to load itself"); - } - requestPaths.push(path); - let content = file.readFrom(path); - if (content == undefined) { - return undefined; - } - if (path.endsWith(".mjs")) { - throw new Error(`ERROR: cannot require a ESM file ${path}`); - } - if (path.endsWith(".json")) { - throw new Error(`ERROR: cannot require a JSON file ${path}`); - } - return { - path, - content, - requestPaths, - }; - } - - function loadAsFile(id) { - let result; - result = tryFile(id); - if (result != undefined) { - return result; - } - result = tryFile(`${id}.js`); - if (result != undefined) { - return result; - } - result = tryFile(`${id}.cjs`); - if (result != undefined) { - return result; - } - result = tryFile(`${id}.json`); - if (result != undefined) { - throw new Error(`cannot require a JSON file ${id}.mjs`); - } - result = tryFile(`${id}.mjs`); - if (result != undefined) { - throw new Error(`cannot require a ESM file ${id}.mjs`); - } - return undefined; - } - - function loadIndex(id) { - let result; - result = tryFile(utilPath.join(id, "index.js")); - if (result != undefined) { - return result; - } - result = tryFile(utilPath.join(id, "index.cjs")); - if (result != undefined) { - return result; - } - result = tryFile(utilPath.join(id, "index.json")); - if (result != undefined) { - throw new Error(`cannot require a JSON file ${id}.mjs`); - } - result = tryFile(utilPath.join(id, "index.mjs")); - if (result != undefined) { - throw new Error(`cannot require a ESM file ${id}.mjs`); - } - return undefined; - } - - function loadAsDirectory(id) { - let package = file.readFrom(utilPath.join(id, "package.json")); - if (package != undefined) { - let result; - package = JSON.parse(package); - if (!package || !package.main) { - return loadIndex(id); - } - let m = utilPath.join(id, package.main); - result = loadAsFile(m); - if (result != undefined) { - return result; - } - result = loadIndex(m); - if (result != undefined) { - return result; - } - throw new Error(`${m} not found`); - } - return loadIndex(id); - } - - function loadNodeModules(id, start) { - let dirs = node_modules_paths(start); - let result; - for (let dir of dirs) { - result = loadPackagExports(utilPath.join(dir, id)); - if (result != undefined) { - return result; - } - result = loadAsFile(utilPath.join(dir, id)); - if (result != undefined) { - return result; - } - result = loadAsDirectory(utilPath.join(dir, id)); - if (result != undefined) { - return result; - } - } - return undefined; - } - - function node_modules_paths(start) { - let parts = utilPath.split(start); - let dirs = [""]; - for (let i = parts.length; i >= 0; --i) { - if (parts[i - 1] === "node_modules") { - continue; - } - let dir = utilPath.join(...parts.slice(0, i), "node_modules"); - dirs.push(dir); - } - return dirs; - } - - function loadPackageImports(id) { - //TODO - let package = file.readFrom(utilPath.join(id, "package.json")); - if (package == undefined) { - return undefined; - } - package = JSON.parse(package); - if (package && package.imports) { - throw new Error(`cannot resolve imports field of ${id}`); - } - return undefined; - } - - function loadPackagExports(id) { - //TODO - let package = file.readFrom(utilPath.join(id, "package.json")); - if (package == undefined) { - return undefined; - } - package = JSON.parse(package); - if (package && package.exports) { - throw new Error(`cannot resolve exports field of ${id}`); - } - return undefined; - } - - function loadPackageSelf(id) { - return undefined; - } - } - - function createModule(id, parent) { - return { - children: [], - parent, - exports: {}, - filename: id, - id, - isPreloading: false, - loaded: false, - path: utilPath.dirname(id), - paths: undefined, - require: cjsRequire, - }; - } - - function cjsRequire(id) { - let parrentModule = currentModule; - let { path, content } = resolveID(id); - if (cjsRequire.cache[path] !== undefined) { - let thisModule = cjsRequire.cache[path]; - if (parrentModule && !parrentModule.children.includes(thisModule)) { - parrentModule.children.push(thisModule); - } - if (thisModule.loaded === false) { - //TODO - } - return thisModule.exports; - } - let moduleObject = createModule(path, parrentModule); - currentModule = moduleObject; - cjsRequire.cache[path] = moduleObject; - let code; - try { - code = new Function( - "exports", - "require", - "module", - "__filename", - "__dirname", - content - ); - } catch (e) { - e.stack = e.stack.replace( - "at new Function ()", - `at Object. (${moduleObject.id})` - ); - throw e; - } - Object.defineProperty(code, "name", { - value: `@file"${moduleObject.id}"`, - }); - try { - code.apply(moduleObject, [ - moduleObject.exports, - cjsRequire, - moduleObject, - path, - utilPath.dirname(path), - ]); - } catch (e) { - e.stack = e.stack - .replace( - /at Object\.@file"([^"]*)" \(eval at cjsRequire \(:\d+:\d+\), :(\d+):(\d+)\)/g, - (match, fileName, line, col) => { - return `at Object. (${fileName}:${line - 2 - }:${col})`; - } - ) - .replace( - /at (\w*) \(eval at cjsRequire \(:\d+:\d+\), :(\d+):(\d+)\)/g, - (match, functionName, line, col) => { - return `at ${functionName} (${line - 2}:${col})`; - } - ) - .replace(/ at cjsRequire \(:\d+:\d+\)\n/g, ""); - throw e; - } - currentModule.loaded = true; - currentModule = parrentModule; - return moduleObject.exports; - } - - cjsRequire.main = currentModule; - - cjsRequire.cache = { - "": currentModule, - }; - - cjsRequire.resolve = function resolve(request) { - let obj = resolveID(request); - return obj && obj.path; - }; - - cjsRequire.resolve.paths = function paths(request) { - let obj = resolveID(request); - return obj && obj.requestPaths; - }; - - globalThis.require = cjsRequire; -})(); - -/* -cjs.js end -*/ - -globalThis.exports = {}; -globalThis.module = { exports: {} }; - -/* -For Compatibility -*/ -globalThis.file = File; -globalThis.lxl = ll; -DirectionAngle.prototype.valueOf = DirectionAngle.prototype.toFacing; -globalThis.LXL_Block = LLSE_Block; -globalThis.LXL_BlockEntity = LLSE_BlockEntity; -globalThis.LXL_Container = LLSE_Container; -globalThis.LXL_Device = LLSE_Device; -globalThis.LXL_Entity = LLSE_Entity; -globalThis.LXL_SimpleForm = LLSE_SimpleForm; -globalThis.LXL_CustomForm = LLSE_CustomForm; -globalThis.LXL_Item = LLSE_Item; -globalThis.LXL_Player = LLSE_Player; -globalThis.LXL_Objective = LLSE_Objective; -ll.export = ll.exports; -ll.import = ll.imports; diff --git a/legacy-script-engine-lua/baselib/BaseLib.py b/legacy-script-engine-lua/baselib/BaseLib.py deleted file mode 100644 index 4421d1f..0000000 --- a/legacy-script-engine-lua/baselib/BaseLib.py +++ /dev/null @@ -1,20 +0,0 @@ -def _llse_python_base_lib_handle(event): - def wrapper(func): - __builtins__.mc.listen(event, func) - return func - - return wrapper - - -def _llse_python_base_lib_command_handle(self, func=None): - def wrapper(func): - self.setCallback(func) - return func - - if func: - return wrapper(func) - return wrapper - - -setattr(__builtins__, "handle", _llse_python_base_lib_handle) -setattr(__builtins__.LLSE_Command, "handle", _llse_python_base_lib_command_handle) diff --git a/legacy-script-engine-lua/legacy-script-engine-lua.dll b/legacy-script-engine-lua/legacy-script-engine-lua.dll index 62ec6f9..1ae9990 100644 Binary files a/legacy-script-engine-lua/legacy-script-engine-lua.dll and b/legacy-script-engine-lua/legacy-script-engine-lua.dll differ diff --git a/legacy-script-engine-lua/manifest.json b/legacy-script-engine-lua/manifest.json index a9ca3da..7f96c56 100644 --- a/legacy-script-engine-lua/manifest.json +++ b/legacy-script-engine-lua/manifest.json @@ -1,19 +1,19 @@ -{ - "name": "legacy-script-engine-lua", - "entry": "legacy-script-engine-lua.dll", - "type": "native", - "description": "A plugin engine for running LLSE plugins on LeviLamina", - "author": "LiteLDev", - "version": "0.8.20", - "dependencies": [ - { - "name": "LegacyMoney" - }, - { - "name": "LegacyParticleAPI" - }, - { - "name": "LegacyRemoteCall" - } - ] -} +{ + "name": "legacy-script-engine-lua", + "entry": "legacy-script-engine-lua.dll", + "version": "0.9.0", + "type": "native", + "description": "A plugin engine for running LLSE plugins on LeviLamina", + "author": "LiteLDev", + "dependencies": [ + { + "name": "LegacyMoney" + }, + { + "name": "LegacyParticleAPI" + }, + { + "name": "LegacyRemoteCall" + } + ] +} diff --git a/tooth.json b/tooth.json index 748ede2..3974138 100644 --- a/tooth.json +++ b/tooth.json @@ -1,30 +1,30 @@ { - "format_version": 2, - "tooth": "gitea.litebds.com/LiteLDev/legacy-script-engine-lua", - "version": "0.8.20", - "info": { - "name": "LegacyScriptEngine with Lua backend", - "description": "A plugin engine for running LLSE plugins on LeviLamina", - "author": "LiteLDev", - "tags": [ - "levilamina", - "plugin-engine" - ] - }, - "dependencies": { - "github.com/LiteLDev/LegacyRemoteCall": "0.8.x", - "github.com/LiteLDev/LegacyParticleAPI": "0.8.x", - "github.com/LiteLDev/LegacyMoney": "0.8.x" - }, - "prerequisites": { - "github.com/LiteLDev/LeviLamina": ">=0.13.4 <0.14.0" - }, - "files": { - "place": [ - { - "src": "legacy-script-engine-lua/*", - "dest": "plugins/legacy-script-engine-lua/" - } - ] - } + "format_version": 2, + "tooth": "gitea.litebds.com/LiteLDev/legacy-script-engine-lua", + "version": "0.9.0-rc.1", + "info": { + "name": "LegacyScriptEngine with Lua backend", + "description": "A plugin engine for running LLSE plugins on LeviLamina", + "author": "LiteLDev", + "tags": [ + "levilamina", + "plugin-engine" + ] + }, + "dependencies": { + "github.com/LiteLDev/LegacyRemoteCall": "0.9.0-rc.3", + "github.com/LiteLDev/LegacyParticleAPI": "0.9.0-rc.3", + "github.com/LiteLDev/LegacyMoney": "0.9.0-rc.3" + }, + "prerequisites": { + "github.com/LiteLDev/LeviLamina": "1.0.0-rc.2" + }, + "files": { + "place": [ + { + "src": "legacy-script-engine-lua/*", + "dest": "plugins/legacy-script-engine-lua/" + } + ] + } }