This repository has been archived on 2021-07-14. You can view files and clone it, but cannot push or open issues or pull requests.
scriptcraft/src/main/js/modules/slash.js
2016-12-20 16:38:20 +00:00

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;