19162c3688
Some of the plugins are not yet supported. If you're feeling brave you can build from source using ant.
79 lines
2.3 KiB
JavaScript
79 lines
2.3 KiB
JavaScript
'use strict';
|
|
/*************************************************************************
|
|
## 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][webcons].
|
|
|
|
### 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).
|
|
|
|
### Using string substitutions
|
|
|
|
ScriptCraft uses Java's [String.format()][strfmt] so any string substitution identifiers supported by
|
|
`java.lang.String.format()` are supported (e.g. %s , %d etc).
|
|
|
|
for (var i=0; i<5; i++) {
|
|
console.log("Hello, %s. You've called me %d times.", "Bob", i+1);
|
|
}
|
|
|
|
[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...)
|
|
[webcons]: https://developer.mozilla.org/en-US/docs/Web/API/console
|
|
|
|
***/
|
|
function argsToArray( args ) {
|
|
var result = [];
|
|
for ( var i =0; i < args.length; i++ ) {
|
|
result.push(args[i]);
|
|
}
|
|
return result;
|
|
}
|
|
function consMsg(params){
|
|
var args = argsToArray(params);
|
|
if ( args.length > 1 ) {
|
|
return java.lang.String.format( args[0], args.slice(1) );
|
|
} else {
|
|
return args[0];
|
|
}
|
|
}
|
|
|
|
module.exports = function(logger){
|
|
|
|
function bukkitLog( level, restOfArgs ) {
|
|
logger['log(java.util.logging.Level,java.lang.String)'](
|
|
java.util.logging.Level[level],
|
|
consMsg(restOfArgs)
|
|
);
|
|
}
|
|
|
|
if (__plugin.canary){
|
|
return {
|
|
log: function( ) { logger.info( consMsg(arguments) ); },
|
|
info: function( ) { logger.info( consMsg(arguments) ); },
|
|
warn: function( ) { logger.warn( consMsg(arguments) ); },
|
|
error: function( ) { logger.error( consMsg(arguments) ); }
|
|
};
|
|
} else {
|
|
return {
|
|
log: function() { bukkitLog('INFO', arguments ); },
|
|
info: function() { bukkitLog('INFO', arguments ); },
|
|
warn: function( ) { bukkitLog('WARNING', arguments ); },
|
|
error: function( ) { bukkitLog('SEVERE', arguments ); }
|
|
};
|
|
}
|
|
};
|