fix: 修复路径导致的插件加载失败
This commit is contained in:
parent
7e2bb0a73a
commit
898872a88f
2
pom.xml
2
pom.xml
@ -3,7 +3,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>pw.yumc</groupId>
|
<groupId>pw.yumc</groupId>
|
||||||
<artifactId>MiaoScript</artifactId>
|
<artifactId>MiaoScript</artifactId>
|
||||||
<version>1.1.1</version>
|
<version>1.1.2</version>
|
||||||
<developers>
|
<developers>
|
||||||
<developer>
|
<developer>
|
||||||
<id>502647092</id>
|
<id>502647092</id>
|
||||||
|
@ -14,7 +14,7 @@ var disable;
|
|||||||
}
|
}
|
||||||
load(root + '/core/init.js');
|
load(root + '/core/init.js');
|
||||||
try {
|
try {
|
||||||
init(root, plugin);
|
init(root);
|
||||||
} catch (ex) {
|
} catch (ex) {
|
||||||
log.w("MiaoScript 初始化失败! %s", ex);
|
log.w("MiaoScript 初始化失败! %s", ex);
|
||||||
throw ex;
|
throw ex;
|
||||||
|
@ -4,8 +4,15 @@
|
|||||||
var String = Java.type("java.lang.String");
|
var String = Java.type("java.lang.String");
|
||||||
var File = Java.type("java.io.File");
|
var File = Java.type("java.io.File");
|
||||||
var Files = Java.type("java.nio.file.Files");
|
var Files = Java.type("java.nio.file.Files");
|
||||||
|
var separatorChar = File.separatorChar;
|
||||||
var StandardCopyOption = Java.type("java.nio.file.StandardCopyOption");
|
var StandardCopyOption = Java.type("java.nio.file.StandardCopyOption");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用文件分割符合并路径
|
||||||
|
*/
|
||||||
|
exports.concat = function () {
|
||||||
|
return Array.prototype.join.call(arguments, separatorChar);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 获得文件
|
* 获得文件
|
||||||
* @constructor(file)
|
* @constructor(file)
|
||||||
|
@ -3,12 +3,13 @@ var global = this;
|
|||||||
/*global base*/
|
/*global base*/
|
||||||
|
|
||||||
// noinspection JSUnusedLocalSymbols
|
// noinspection JSUnusedLocalSymbols
|
||||||
function init(root, plugin) {
|
function init(root) {
|
||||||
global.root = root;
|
global.root = root;
|
||||||
loadCore();
|
loadCore();
|
||||||
loadRequire();
|
loadRequire();
|
||||||
|
loadPatch();
|
||||||
loadLib4Bukkit();
|
loadLib4Bukkit();
|
||||||
loadPlugins(plugin);
|
loadPlugins();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -18,8 +19,6 @@ function loadCore() {
|
|||||||
// 加载基础模块
|
// 加载基础模块
|
||||||
load(root + '/core/ext.js');
|
load(root + '/core/ext.js');
|
||||||
load(root + '/core/console.js');
|
load(root + '/core/console.js');
|
||||||
// 加载补丁和扩展
|
|
||||||
load(root + '/core/patch.js');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -30,6 +29,17 @@ function loadRequire() {
|
|||||||
global.require = load(root + '/core/require.js')(root);
|
global.require = load(root + '/core/require.js')(root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 加载补丁
|
||||||
|
*/
|
||||||
|
function loadPatch() {
|
||||||
|
// 加载补丁和扩展
|
||||||
|
load(root + '/core/patch.js');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 加载Bukkit的类库
|
||||||
|
*/
|
||||||
function loadLib4Bukkit() {
|
function loadLib4Bukkit() {
|
||||||
require('modules/event');
|
require('modules/event');
|
||||||
var task = require('modules/task');
|
var task = require('modules/task');
|
||||||
@ -50,14 +60,14 @@ function loadLib4Bukkit() {
|
|||||||
/**
|
/**
|
||||||
* 加载JS插件
|
* 加载JS插件
|
||||||
*/
|
*/
|
||||||
function loadPlugins(plugin) {
|
function loadPlugins() {
|
||||||
// 初始化本体插件
|
// 初始化本体插件
|
||||||
global.pluginManager = require('modules/plugin');
|
global.manager = require('modules/plugin');
|
||||||
pluginManager.init(plugin, root + '/plugins');
|
manager.init(base.plugin, 'plugins');
|
||||||
// 只有当在正式环境运行的时候才加载
|
// 只有当在正式环境运行的时候才加载
|
||||||
if (pluginManager.$) {
|
if (manager.$) {
|
||||||
pluginManager.load();
|
manager.load();
|
||||||
pluginManager.enable();
|
manager.enable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -66,7 +76,7 @@ function loadPlugins(plugin) {
|
|||||||
* 关闭插件Hook
|
* 关闭插件Hook
|
||||||
*/
|
*/
|
||||||
function disablePlugins() {
|
function disablePlugins() {
|
||||||
if (pluginManager.$) {
|
if (manager.$) {
|
||||||
pluginManager.disable();
|
manager.disable();
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -2,8 +2,11 @@
|
|||||||
* 补丁和方法扩展
|
* 补丁和方法扩展
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
(function(){
|
||||||
// JSON快捷方法
|
// JSON快捷方法
|
||||||
Object.prototype.toJson = function(){ return JSON.stringify(this); }
|
Object.prototype.toJson = function(){ return JSON.stringify(this); }
|
||||||
|
|
||||||
// YAML快速生成
|
// YAML快速生成
|
||||||
Object.prototype.toYaml = function(){ return require('modules/yaml').safeDump(this); }
|
var yaml = require('modules/yaml');
|
||||||
|
Object.prototype.toYaml = function(){ return yaml.safeDump(this); }
|
||||||
|
})();
|
||||||
|
@ -6,7 +6,8 @@
|
|||||||
(function (parent) {
|
(function (parent) {
|
||||||
'use strict';
|
'use strict';
|
||||||
var File = Java.type("java.io.File");
|
var File = Java.type("java.io.File");
|
||||||
var paths = [parent, '', parent + '/core', parent + '/modules'];
|
var separatorChar = File.separatorChar;
|
||||||
|
var paths = [parent, '', parent + separatorChar + 'core', parent + separatorChar + 'modules'];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 解析模块名称为文件
|
* 解析模块名称为文件
|
||||||
@ -137,7 +138,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function _cacheFile(file) {
|
function _cacheFile(file) {
|
||||||
return cacheDir + "/" + file.name;
|
return cacheDir + separatorChar + file.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -176,7 +177,7 @@
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
var cacheDir = parent + "/runtime";
|
var cacheDir = parent + separatorChar + "runtime";
|
||||||
|
|
||||||
// 等于 undefined 说明 parent 是一个字符串 需要转成File
|
// 等于 undefined 说明 parent 是一个字符串 需要转成File
|
||||||
// 可能有更加准确的方案
|
// 可能有更加准确的方案
|
||||||
|
@ -15,15 +15,15 @@ var permission = require('./permission');
|
|||||||
* 载入插件
|
* 载入插件
|
||||||
* @param path
|
* @param path
|
||||||
*/
|
*/
|
||||||
function loadPlugins(path) {
|
function loadPlugins(dir) {
|
||||||
var plugin = fs.file(path);
|
var plugin = fs.file(root, dir);
|
||||||
if (!plugin) {
|
if (!plugin) {
|
||||||
log.i("首次加载 创建文件夹 %s ...", path);
|
log.i("首次加载 创建文件夹 %s ...", plugin);
|
||||||
} else {
|
} else {
|
||||||
log.i("开始扫描 %s 下的插件 ...", path);
|
log.i("开始扫描 %s 下的插件 ...", plugin);
|
||||||
createUpdate(path);
|
createUpdate(plugin);
|
||||||
var files = [];
|
var files = [];
|
||||||
fs.list(path).forEach(function (file) {
|
fs.list(plugin).forEach(function (file) {
|
||||||
files.push(file.toFile());
|
files.push(file.toFile());
|
||||||
});
|
});
|
||||||
loadZipPlugins(files);
|
loadZipPlugins(files);
|
||||||
|
Loading…
Reference in New Issue
Block a user