diff --git a/build.properties b/build.properties
index f7c14f9..4ef2b33 100644
--- a/build.properties
+++ b/build.properties
@@ -1 +1,2 @@
-bukkit-version=1.6.4
+bukkit-version=1.7.2
+scriptcraft-version=2.0
diff --git a/build.xml b/build.xml
index 3f64ef4..b845ae4 100644
--- a/build.xml
+++ b/build.xml
@@ -90,7 +90,7 @@
-
+
[[version]]
diff --git a/src/main/javascript/lib/plugin.js b/src/main/javascript/lib/plugin.js
index 1cea02d..f9b1027 100644
--- a/src/main/javascript/lib/plugin.js
+++ b/src/main/javascript/lib/plugin.js
@@ -36,12 +36,13 @@ var _plugin = function(/* String */ moduleName, /* Object */ moduleObject, isPer
_plugins[moduleName] = pluginData;
if (isPersistent){
+ if (!moduleObject.store){
+ moduleObject.store = {};
+ }
var loadedStore = load(dataDir.canonicalPath + "/" + moduleName + "-store.json");
if (loadedStore){
- moduleObject.store = loadedStore;
- }else{
- if (!moduleObject.store){
- moduleObject.store = {};
+ for (var i in loadedStore){
+ moduleObject.store[i] = loadedStore[i];
}
}
}
diff --git a/src/main/javascript/lib/require.js b/src/main/javascript/lib/require.js
index d7b0c59..fd08ee4 100644
--- a/src/main/javascript/lib/require.js
+++ b/src/main/javascript/lib/require.js
@@ -54,10 +54,12 @@ module specification, the '.js' suffix is optional.
[cjsmodules]: http://wiki.commonjs.org/wiki/Modules/1.1.1.
***/
-( function (logger, evaluator, verbose, rootDir) {
+( function (logger, evaluator, verbose, rootDir, modulePaths) {
- if (verbose)
+ if (verbose){
logger.info("Setting up 'require' module system. Root Directory: " + rootDir);
+ logger.info("Module paths: " + JSON.stringify(modulePaths));
+ }
var File = java.io.File;
@@ -84,9 +86,6 @@ module specification, the '.js' suffix is optional.
}
};
- var LIB_DIR = rootDir + '/lib/';
- var MODULE_DIR = rootDir + '/modules/';
-
var resolveModuleToFile = function(moduleName, parentDir) {
/**********************************************************************
## When resolving module names to file paths, ScriptCraft uses the following rules...
@@ -120,6 +119,7 @@ module specification, the '.js' suffix is optional.
3.2 if no package.json file exists then look for an index.js file in the directory
***/
+
var file = new File(moduleName);
var fileExists = function(file) {
@@ -137,41 +137,19 @@ module specification, the '.js' suffix is optional.
if (moduleName.match(/^[^\.\/]/)){
// it's a module named like so ... 'events' , 'net/http'
//
-
- var resolvedFile = new File(LIB_DIR + moduleName);
- if (resolvedFile.exists()){
-
- return fileExists(resolvedFile);
- } else{
-
- // try appending a .js to the end
- resolvedFile = new File(LIB_DIR + moduleName + '.js');
+ var resolvedFile;
+ for (var i = 0;i < modulePaths.length; i++){
+ resolvedFile = new File(modulePaths[i] + moduleName);
if (resolvedFile.exists()){
-
- return resolvedFile;
+ return fileExists(resolvedFile);
}else{
-
- if (verbose){
- logger.info("File not found in " + LIB_DIR + ': ' + resolvedFile.canonicalPath);
- }
-
- resolvedFile = new File(MODULE_DIR + moduleName);
- if (resolvedFile.exists()){
- return fileExists(resolvedFile);
- }else {
- if (verbose){
- logger.info("File not found in " + MODULE_DIR + ': ' + resolvedFile.canonicalPath);
- }
- resolvedFile = new File(MODULE_DIR + moduleName + '.js');
- if (resolvedFile.exists())
- return resolvedFile;
- else{
-
- if (verbose){
- logger.info("File not found in " + MODULE_DIR + ': ' + resolvedFile.canonicalPath);
- }
- }
- }
+ // try appending a .js to the end
+ resolvedFile = new File(modulePaths[i] + moduleName + '.js');
+ if (resolvedFile.exists())
+ return resolvedFile;
+ }
+ if (verbose){
+ logger.info("Module " + moduleName + " not found in " + modulePaths[i]);
}
}
} else {
diff --git a/src/main/javascript/lib/scriptcraft.js b/src/main/javascript/lib/scriptcraft.js
index 50ec87e..143fd0d 100644
--- a/src/main/javascript/lib/scriptcraft.js
+++ b/src/main/javascript/lib/scriptcraft.js
@@ -740,7 +740,16 @@ See [issue #69][issue69] for more information.
global.addUnloadHandler = _addUnloadHandler;
var fnRequire = load(jsPluginsRootDirName + '/lib/require.js',true);
- global.require = fnRequire(__plugin.logger, __engine, config.verbose, jsPluginsRootDirName);
+ /*
+ setup paths to search for modules
+ */
+ var modulePaths = [jsPluginsRootDirName + '/lib/',
+ jsPluginsRootDirName + '/modules/'];
+ global.require = fnRequire(__plugin.logger,
+ __engine,
+ config.verbose,
+ jsPluginsRootDirName,
+ modulePaths);
var plugins = require('plugin');
diff --git a/src/main/javascript/plugins/classroom/classroom.js b/src/main/javascript/plugins/classroom/classroom.js
index 19feab4..42ef205 100644
--- a/src/main/javascript/plugins/classroom/classroom.js
+++ b/src/main/javascript/plugins/classroom/classroom.js
@@ -75,7 +75,7 @@ exports.classroom = classroom;
events.on('player.PlayerLoginEvent', function(listener, event) {
var player = event.player;
- if (classroom.store.enableScripting){
+ if (_store.enableScripting){
player.addAttachment(__plugin, "scriptcraft.*", true);
}
}, "HIGHEST");