66 lines
1.6 KiB
JavaScript
66 lines
1.6 KiB
JavaScript
'use strict';
|
|
/*global module, require, server, __plugin*/
|
|
var _ = require('underscore');
|
|
/************************************************************************
|
|
## The slash Module
|
|
|
|
This module provides a single function which makes it easy to execute
|
|
minecraft commands via javascript.
|
|
|
|
### The slash() function
|
|
|
|
This function makes it easy to execute one or more minecraft commands.
|
|
|
|
#### Parameters
|
|
|
|
* commands : A String or Array of strings - each string is a command to be executed.
|
|
* sender: (optional) The player on whose behalf the commands should be executed. If not specified the commands will be executed as the server console user.
|
|
|
|
#### Examples
|
|
|
|
Invoke the `/defaultgamemode creative` command (as server).
|
|
|
|
```javascript
|
|
var slash = require('slash');
|
|
slash('defaultgamemode creative');
|
|
```
|
|
|
|
Set the time of day to Midday and toggle downfall (as player 'JohnDoe'):
|
|
|
|
```javascript
|
|
var slash = require('slash'),
|
|
utils = require('utils');
|
|
var johnDoe = utils.player('John_Doe');
|
|
|
|
slash([
|
|
'time set 6000',
|
|
'toggledownfall'
|
|
], johnDoe);
|
|
```
|
|
|
|
***/
|
|
function slash( commands, sender ){
|
|
if (_.isArray(commands)){
|
|
_.each(commands, function(command){
|
|
slash(command, sender);
|
|
});
|
|
return;
|
|
}
|
|
if (__plugin.canary){
|
|
if (sender === server){
|
|
server.consoleCommand( commands );
|
|
} else {
|
|
server.consoleCommand( commands, sender );
|
|
}
|
|
}
|
|
if (__plugin.bukkit){
|
|
if (!sender){
|
|
// if sender is not specified assume server console
|
|
server.dispatchCommand(server.consoleSender, commands);
|
|
} else {
|
|
server.dispatchCommand(sender, commands);
|
|
}
|
|
}
|
|
}
|
|
module.exports = slash;
|