58 lines
1.6 KiB
JavaScript
58 lines
1.6 KiB
JavaScript
/*************************************************************************
|
|
## console global variable
|
|
|
|
ScriptCraft provides a `console` global variable with the followng methods...
|
|
|
|
* log()
|
|
* info()
|
|
* warn()
|
|
* error()
|
|
|
|
The ScriptCraft console methods work like the Web API implementation.
|
|
|
|
### Example
|
|
|
|
console.log('Hello %s', 'world');
|
|
|
|
Basic variable substitution is supported (ScriptCraft's implementation
|
|
of console uses the Bukkit Plugin [Logger][lgr] under the hood and
|
|
uses [java.lang.String.format()][strfmt] for variable
|
|
substitution. All output will be sent to the server console (not
|
|
in-game).
|
|
|
|
[lgr]: http://jd.bukkit.org/beta/apidocs/org/bukkit/plugin/PluginLogger.html
|
|
[strfmt]: http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#format(java.lang.String, java.lang.Object...)
|
|
|
|
***/
|
|
var argsToArray = function(args){
|
|
var result = [];
|
|
for (var i =0;i < args.length; i++)
|
|
result.push(args[i]);
|
|
return result;
|
|
}
|
|
var log = function(level, restOfArgs){
|
|
var args = argsToArray(restOfArgs);
|
|
if (args.length > 1){
|
|
var msg = java.lang.String.format(args[0],args.slice(1));
|
|
logger['log(java.util.logging.Level,java.lang.String)'](level,msg);
|
|
}else{
|
|
logger['log(java.util.logging.Level,java.lang.String)'](level, args[0]);
|
|
}
|
|
};
|
|
|
|
var Level = java.util.logging.Level;
|
|
|
|
exports.log = function(){
|
|
log(Level.INFO, arguments);
|
|
};
|
|
|
|
exports.info = function(){
|
|
log(Level.INFO, arguments);
|
|
}
|
|
exports.warn = function(){
|
|
log(Level.WARNING, arguments);
|
|
};
|
|
exports.error = function(){
|
|
log(Level.SEVERE, arguments);
|
|
};
|