move code to inject section

This commit is contained in:
JWo1F 2015-10-11 07:11:36 +03:00
parent 75f974ecc8
commit 19b5c9a9cc

View file

@ -1,9 +1,10 @@
var Vec3 = require('vec3'); var Vec3 = require('vec3');
module.exports = inject; module.exports = inject;
var hash = {}; function inject(serv, player, options) {
var hash = {};
class Command { class Command {
constructor(params, parent) { constructor(params, parent) {
this.params = params; this.params = params;
this.parent = parent; this.parent = parent;
@ -29,7 +30,7 @@ class Command {
return res; return res;
} }
static use(command, serv, player, options) { static use(command) {
var res = this.find(command); var res = this.find(command);
if(res) { if(res) {
@ -48,7 +49,7 @@ class Command {
res[1].shift(); res[1].shift();
} }
res = res[0].params.action(res[1], serv, player, options); res = res[0].params.action(res[1]);
if(res) player.chat('' + res); if(res) player.chat('' + res);
} else { } else {
player.chat('Command not found'); player.chat('Command not found');
@ -83,15 +84,15 @@ class Command {
var first = !(this.parent && this.parent.parent); var first = !(this.parent && this.parent.parent);
return this.params.merged || (!end && first) ? '' : ' '; return this.params.merged || (!end && first) ? '' : ' ';
} }
} }
var base = new Command({ basic: true }); var base = new Command({ basic: true });
base.add({ base.add({
base: 'help', base: 'help',
info: 'for show all commands', info: 'for show all commands',
usage: '/help [command]', usage: '/help [command]',
action(params, serv, player, options) { action(params) {
var c = params[0]; var c = params[0];
if(c) { if(c) {
@ -116,9 +117,9 @@ base.add({
} }
} }
} }
}); });
base.add({ base.add({
base: 'gamemode', base: 'gamemode',
aliases: ['gm'], aliases: ['gm'],
info: 'for change game mode', info: 'for change game mode',
@ -128,12 +129,12 @@ base.add({
if(mode < 0 || mode > 3) return false; if(mode < 0 || mode > 3) return false;
else return mode; else return mode;
}, },
action(mode, serv, player) { action(mode) {
player.setGameMode(mode); player.setGameMode(mode);
} }
}); });
base.add({ base.add({
base: 'setblock', base: 'setblock',
info: 'for put block', info: 'for put block',
usage: '/setblock <x> <y> <z> <id>', usage: '/setblock <x> <y> <z> <id>',
@ -143,7 +144,7 @@ base.add({
if(!results) return false; if(!results) return false;
else return results; else return results;
}, },
action(params, serv, player) { action(params) {
var res = params.map(function (num, i) { // parseInt paramaters var res = params.map(function (num, i) { // parseInt paramaters
if (num.indexOf('~') == 0) { if (num.indexOf('~') == 0) {
return (player.entity.position[['', 'x', 'y', 'z'][i]] >> 5) + parseInt(num.slice(1) || 0); return (player.entity.position[['', 'x', 'y', 'z'][i]] >> 5) + parseInt(num.slice(1) || 0);
@ -154,9 +155,9 @@ base.add({
serv.setBlock(new Vec3(res[1], res[2], res[3]), res[4]); serv.setBlock(new Vec3(res[1], res[2], res[3]), res[4]);
} }
}); });
base.add({ base.add({
base: 'kick', base: 'kick',
info: 'for kick a player', info: 'for kick a player',
usage: '/kick <player> [reason]', usage: '/kick <player> [reason]',
@ -173,7 +174,7 @@ base.add({
return res; return res;
}, },
action(params, serv, player) { action(params) {
var username = params[0]; var username = params[0];
var reason = params[1]; var reason = params[1];
@ -185,9 +186,9 @@ base.add({
kickPlayer.emit("kicked", player, reason); kickPlayer.emit("kicked", player, reason);
} }
} }
}); });
base.add({ base.add({
base: 'ban', base: 'ban',
info: 'for ban a player', info: 'for ban a player',
usage: '/ban <player> [reason]', usage: '/ban <player> [reason]',
@ -204,7 +205,7 @@ base.add({
return res; return res;
}, },
action(params, serv, player) { action(params) {
var username = params[0]; var username = params[0];
var reason = params[1]; var reason = params[1];
@ -222,9 +223,9 @@ base.add({
serv.emit("banned", player, username, reason); serv.emit("banned", player, username, reason);
} }
} }
}); });
base.add({ base.add({
base: 'pardon', base: 'pardon',
info: 'for pardon a player', info: 'for pardon a player',
usage: '/pardon <player>', usage: '/pardon <player>',
@ -237,14 +238,14 @@ base.add({
return res; return res;
}, },
action(nick, serv, player) { action(nick) {
serv.pardonUsername(nick) serv.pardonUsername(nick)
.then(()=> player.chat(nick + " is unbanned")) .then(()=> player.chat(nick + " is unbanned"))
.catch(err => player.chat(nick + " is not banned")); .catch(err => player.chat(nick + " is not banned"));
} }
}); });
base.add({ base.add({
base: 'time', base: 'time',
info: 'for change a time', info: 'for change a time',
usage: '/time <add|query|set> <value>', usage: '/time <add|query|set> <value>',
@ -258,7 +259,7 @@ base.add({
return [data[1], data[2]]; return [data[1], data[2]];
}, },
action(params, serv, player) { action(params) {
var action = params[0]; var action = params[0];
var value = params[1] !== undefined ? parseInt(params[1]) : null; var value = params[1] !== undefined ? parseInt(params[1]) : null;
@ -277,22 +278,22 @@ base.add({
serv.setTime(newTime); serv.setTime(newTime);
} }
} }
}); });
base.add({ base.add({
base: 'day', base: 'day',
info: 'for change a time to day', info: 'for change a time to day',
usage: '/day', usage: '/day',
action(params, serv, player) { action(params) {
player.handleCommand('time set day'); player.handleCommand('time set day');
} }
}); });
base.add({ base.add({
base: 'ping', base: 'ping',
info: 'for pong!', info: 'for pong!',
usage: '/ping [number]', usage: '/ping [number]',
action(params, serv, player) { action(params) {
var num = params[0] * 1 + 1; var num = params[0] * 1 + 1;
var str = 'pong'; var str = 'pong';
@ -300,45 +301,44 @@ base.add({
player.chat(str + '!'); player.chat(str + '!');
} }
}); });
base.add({ base.add({
base: 'night', base: 'night',
info: 'for change a time to night', info: 'for change a time to night',
usage: '/night', usage: '/night',
action(params, serv, player) { action(params) {
player.handleCommand('time set night'); player.handleCommand('time set night');
} }
}); });
base.add({ base.add({
base: 'modpe', base: 'modpe',
info: 'for modpe commands', info: 'for modpe commands',
usage: '/modpe <params>', usage: '/modpe <params>',
parse(str) { return str ? str : false }, parse(str) { return str ? str : false },
action(str, serv, player) { action(str) {
player.emit("modpe", str); player.emit("modpe", str);
} }
}); });
base.add({ base.add({
base: 'version', base: 'version',
info: 'for get version of the server', info: 'for get version of the server',
action() { action() {
return 'This server is running flying-squid version 0.1.0'; return 'This server is running flying-squid version 0.1.0';
} }
}); });
base.add({ base.add({
base: 'bug', base: 'bug',
info: 'for bug report', info: 'for bug report',
action() { action() {
return 'Report bugs / issues here: https://github.com/mhsjlw/flying-squid/issues'; return 'Report bugs / issues here: https://github.com/mhsjlw/flying-squid/issues';
} }
}); });
function inject(serv, player, options) { serv.commands = base;
player.handleCommand = function(str) {
return Command.use(str, serv, player, options); player.handleCommand = Command.use.bind(Command);
};
} }