diff --git a/src/main/javascript/core/_primitives.js b/src/main/javascript/core/_primitives.js index d298e26..7a34bc6 100644 --- a/src/main/javascript/core/_primitives.js +++ b/src/main/javascript/core/_primitives.js @@ -42,33 +42,13 @@ var global = this; if (typeof metadata == "undefined") metadata = 0; - - var world = (__self instanceof org.bukkit.entity.Player)?__self.location.world:(__self instanceof org.bukkit.command.BlockCommandSender)?__self.block.location.world:null; - + var pl = org.bukkit.entity.Player; + var cs = org.bukkit.command.BlockCommandSender; + var world = (__self instanceof pl)?__self.location.world:(__self instanceof cs)?__self.block.location.world:null; var block = world.getBlockAt(x,y,z); -/* - if (blockId === 6){ - var treeType = null; - switch (metadata){ - case 0: - treeType = org.bukkit.TreeType.BIG_TREE; - break; - case 1: - treeType = org.bukkit.TreeType.REDWOOD; - break; - case 2: - treeType = org.bukkit.TreeType.BIRCH; - break; - case 3: - treeType = org.bukkit.TreeType.JUNGLE; - break; - } - return world.generateTree(block.location,treeType); - }else{ -*/ - if (block.typeId != blockId || block.data != metadata) - block.setTypeIdAndData(blockId,metadata,false); - // } + if (block.typeId != blockId || block.data != metadata) + block.setTypeIdAndData(blockId,metadata,false); + }; var _putSign = function(texts, x, y, z, blockId, meta){ diff --git a/src/main/javascript/core/_scriptcraft.js b/src/main/javascript/core/_scriptcraft.js index 233d315..cb48d41 100644 --- a/src/main/javascript/core/_scriptcraft.js +++ b/src/main/javascript/core/_scriptcraft.js @@ -38,6 +38,7 @@ var verbose = verbose || false; var jsPluginsRootDirName = _canonize(jsPluginsRootDir); + var _loaded = {}; /* Load the contents of the file and evaluate as javascript */ @@ -45,8 +46,12 @@ var verbose = verbose || false; { var result = null; var file = new java.io.File(filename); - var canonizedFilename = _canonize(file); + // + // wph 20130123 don't load the same file more than once. + // + if (_loaded[canonizedFilename]) + return; if (verbose) print("loading " + canonizedFilename); @@ -58,6 +63,7 @@ var verbose = verbose || false; __engine.put("__folder",(parent?_canonize(parent):"")+"/"); try{ result = __engine.eval(reader); + _loaded[canonizedFilename] = true; }catch (e){ __plugin.logger.severe("Error evaluating " + filename + ", " + e ); } @@ -95,6 +101,7 @@ var verbose = verbose || false; */ var _reload = function(pluginDir) { + _loaded = []; var jsFiles = []; _listJsFiles(jsFiles,pluginDir); // @@ -107,9 +114,11 @@ var verbose = verbose || false; // then it's assumed that _myMiniGame_currency.js and _myMiniGame_events.js will be loaded // as dependencies by myMiniGame.js and do not need to be loaded via js reload // - for (var i = 0;i < jsFiles.length; i++){ + var len = jsFiles.length; + for (var i = 0;i < len; i++){ load(_canonize(jsFiles[i]),true); } + print("Loaded " + len + " javascript files"); }; /*