Release v0.9.0-rc.1
This commit is contained in:
parent
b06fb94055
commit
5a142bef6c
@ -1,417 +0,0 @@
|
|||||||
/*
|
|
||||||
cjs.js begin, see <https://github.com/callstackexceed/cjs.js>
|
|
||||||
|
|
||||||
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 (<anonymous>)",
|
|
||||||
`at Object.<anonymous> (${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+\), <anonymous>:(\d+):(\d+)\)/g,
|
|
||||||
(match, fileName, line, col) => {
|
|
||||||
return `at Object.<anonymous> (${fileName}:${line - 2
|
|
||||||
}:${col})`;
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.replace(
|
|
||||||
/at (\w*) \(eval at cjsRequire \(:\d+:\d+\), <anonymous>:(\d+):(\d+)\)/g,
|
|
||||||
(match, functionName, line, col) => {
|
|
||||||
return `at ${functionName} (${line - 2}:${col})`;
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.replace(/ at cjsRequire \(<anonymous>:\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;
|
|
@ -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)
|
|
Binary file not shown.
@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "legacy-script-engine-lua",
|
"name": "legacy-script-engine-lua",
|
||||||
"entry": "legacy-script-engine-lua.dll",
|
"entry": "legacy-script-engine-lua.dll",
|
||||||
|
"version": "0.9.0",
|
||||||
"type": "native",
|
"type": "native",
|
||||||
"description": "A plugin engine for running LLSE plugins on LeviLamina",
|
"description": "A plugin engine for running LLSE plugins on LeviLamina",
|
||||||
"author": "LiteLDev",
|
"author": "LiteLDev",
|
||||||
"version": "0.8.20",
|
|
||||||
"dependencies": [
|
"dependencies": [
|
||||||
{
|
{
|
||||||
"name": "LegacyMoney"
|
"name": "LegacyMoney"
|
||||||
|
10
tooth.json
10
tooth.json
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"format_version": 2,
|
"format_version": 2,
|
||||||
"tooth": "gitea.litebds.com/LiteLDev/legacy-script-engine-lua",
|
"tooth": "gitea.litebds.com/LiteLDev/legacy-script-engine-lua",
|
||||||
"version": "0.8.20",
|
"version": "0.9.0-rc.1",
|
||||||
"info": {
|
"info": {
|
||||||
"name": "LegacyScriptEngine with Lua backend",
|
"name": "LegacyScriptEngine with Lua backend",
|
||||||
"description": "A plugin engine for running LLSE plugins on LeviLamina",
|
"description": "A plugin engine for running LLSE plugins on LeviLamina",
|
||||||
@ -12,12 +12,12 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"github.com/LiteLDev/LegacyRemoteCall": "0.8.x",
|
"github.com/LiteLDev/LegacyRemoteCall": "0.9.0-rc.3",
|
||||||
"github.com/LiteLDev/LegacyParticleAPI": "0.8.x",
|
"github.com/LiteLDev/LegacyParticleAPI": "0.9.0-rc.3",
|
||||||
"github.com/LiteLDev/LegacyMoney": "0.8.x"
|
"github.com/LiteLDev/LegacyMoney": "0.9.0-rc.3"
|
||||||
},
|
},
|
||||||
"prerequisites": {
|
"prerequisites": {
|
||||||
"github.com/LiteLDev/LeviLamina": ">=0.13.4 <0.14.0"
|
"github.com/LiteLDev/LeviLamina": "1.0.0-rc.2"
|
||||||
},
|
},
|
||||||
"files": {
|
"files": {
|
||||||
"place": [
|
"place": [
|
||||||
|
Loading…
Reference in New Issue
Block a user