more es6 refactoring : use destructing and more arrow functions

This commit is contained in:
Romain Beaumont 2015-10-26 01:53:07 +01:00
parent a50642967b
commit 1a58da904c
27 changed files with 118 additions and 173 deletions

View file

@ -67,9 +67,7 @@ class Command {
}
add(params) {
var command = new Command(params, this);
return command;
return new Command(params, this);
}
space(end) {

View file

@ -2,12 +2,11 @@ module.exports=inject;
function inject(serv, player)
{
player._client.on("arm_animation", function(packet) {
player._client.on("arm_animation", () =>
player._writeOthersNearby("animation", {
entityId: player.entity.id,
animation: 0
});
});
}));
function setMetadata(metadata)
{
@ -18,15 +17,15 @@ function inject(serv, player)
});
}
player._client.on("entity_action", function(packet) {
if(packet.actionId == 3) {
player._client.on("entity_action", ({actionId} = {}) => {
if(actionId == 3) {
setMetadata([{"key":0,"type":0,"value": 0x08}]);
} else if(packet.actionId == 4) {
} else if(actionId == 4) {
setMetadata([{"key":0,"type":0,"value": 0x00}]);
} else if(packet.actionId == 0) {
} else if(actionId == 0) {
setMetadata([{"key":0,"type":0,"value": 0x02}]);
player.entity.crouching = true;
} else if(packet.actionId == 1) {
} else if(actionId == 1) {
setMetadata([{"key":0,"type":0,"value": 0x00}]);
player.entity.crouching = false;
}

View file

@ -19,9 +19,10 @@ function inject(serv,player)
player.setBlock = (position,blockType) =>
{
serv.players.filter(p => p.world==player.world).forEach(function(player){
player.sendBlock(position, blockType);
});
serv.players
.filter(p => p.world==player.world)
.forEach(player => player.sendBlock(position, blockType));
return player.world.setBlockType(position,blockType);
};
}

View file

@ -2,14 +2,14 @@ module.exports=inject;
function inject(serv, player)
{
player._client.on('chat', function (packet) {
if(packet.message[0]=="/") {
var command = packet.message.slice(1);
player._client.on('chat', ({message} = {}) => {
if(message[0]=="/") {
var command = message.slice(1);
player.handleCommand(command);
}
else {
serv.broadcast('<' + player.username + '>' + ' ' + packet.message);
player.emit("chat",packet.message);
serv.broadcast('<' + player.username + '>' + ' ' + message);
player.emit("chat",message);
}
});

View file

@ -4,8 +4,8 @@ module.exports=inject;
function inject(serv, player)
{
player._client.on('block_place', async function (packet) {
var referencePosition=new vec3(packet.location.x,packet.location.y,packet.location.z);
player._client.on('block_place', async ({location} = {}) => {
var referencePosition=new vec3(location.x,location.y,location.z);
if (player.entity.crouching) return;
try {
var id = await player.world.getBlockType(referencePosition);

View file

@ -2,27 +2,21 @@ module.exports=inject;
function inject(serv,player)
{
player._writeOthers= (packetName, packetFields) => {
player.getOthers().forEach(function (otherPlayer) {
otherPlayer._client.write(packetName, packetFields);
});
};
player._writeOthers= (packetName, packetFields) =>
player
.getOthers()
.forEach((otherPlayer) => otherPlayer._client.write(packetName, packetFields));
player._writeOthersNearby = (packetName, packetFields) => {
player._writeOthersNearby = (packetName, packetFields) =>
serv._writeArray(packetName, packetFields, player.nearbyPlayers);
};
player.getOthers = () => {
return serv.players.filter(function (otherPlayer) {
return otherPlayer != player;
});
};
player.getOthers = () => serv.players.filter((otherPlayer) => otherPlayer != player);
player.getNearby = () => {
return serv.getNearby({
player.getNearby = () => serv
.getNearby({
world: player.world,
position: player.entity.position,
radius: player.playerViewDistance*32
}).filter((p) => p != player);
}
})
.filter((p) => p != player);
}

View file

@ -4,19 +4,19 @@ module.exports=inject;
function inject(serv,player)
{
player._client.on("block_dig",function(packet){
var pos=new Vec3(packet.location);
player._client.on("block_dig",({location,status} = {}) => {
var pos=new Vec3(location);
player.world.getBlock(pos)
.then(block => {
currentlyDugBlock=block;
if(currentlyDugBlock.type==0) return;
if(packet.status==0 && player.gameMode!=1)
if(status==0 && player.gameMode!=1)
startDigging(pos);
else if(packet.status==2)
else if(status==2)
completeDigging(pos);
else if(packet.status==1)
else if(status==1)
cancelDigging(pos);
else if(packet.status==0 && player.gameMode==1)
else if(status==0 && player.gameMode==1)
creativeDigging(pos);
})
.catch((err)=> setTimeout(function(){throw err;},0));

View file

@ -2,12 +2,11 @@
function inject(serv, player)
{
player.playerlistUpdateText = (header, footer) => {
player.playerlistUpdateText = (header, footer) =>
player._client.write('playerlist_header', {
header: JSON.stringify(header),
footer: JSON.stringify(footer)
});
};
player.playerlistUpdateText("Flying squid", "Test server");
}

View file

@ -6,8 +6,8 @@ function inject(serv, player)
player.heldItem=0;
player.inventory=new Array(44);
player._client.on("held_item_slot", function (packet) {
player.heldItemSlot = packet.slotId;
player._client.on("held_item_slot", ({slotId} = {}) => {
player.heldItemSlot = slotId;
if(player.inventory[36+player.heldItemSlot]===undefined){
player.inventory[36+player.heldItemSlot]={
blockId:-1
@ -21,37 +21,37 @@ function inject(serv, player)
});
});
player._client.on("set_creative_slot", function (packet) {
player.inventory[packet.slot]=packet.item;
if (packet.slot==36)
player._client.on("set_creative_slot", ({slot,item} ={}) => {
player.inventory[slot]=item;
if (slot==36)
player._writeOthersNearby("entity_equipment",{
entityId:player.entity.id,
slot:0,
item:packet.item
item:item
});
if (packet.slot==5)
if (slot==5)
player._writeOthersNearby("entity_equipment",{
entityId:player.entity.id,
slot:4,
item:packet.item
item:item
});
if (packet.slot==6)
if (slot==6)
player._writeOthersNearby("entity_equipment",{
entityId:player.entity.id,
slot:3,
item:packet.item
item:item
});
if (packet.slot==7)
if (slot==7)
player._writeOthersNearby("entity_equipment",{
entityId:player.entity.id,
slot:2,
item:packet.item
item:item
});
if (packet.slot==8)
if (slot==8)
player._writeOthersNearby("entity_equipment",{
entityId:player.entity.id,
slot:1,
item:packet.item
item:item
});
});

View file

@ -3,29 +3,17 @@ module.exports=inject;
function inject(serv,player)
{
player.on("connected",function(){
serv.log("[INFO]: " + player.username + ' connected');
});
player.on("connected",() => serv.log("[INFO]: " + player.username + ' connected'));
player.on("spawned",function(){
serv.log("[INFO]: position written, player spawning...");
});
player.on("spawned",() => serv.log("[INFO]: position written, player spawning..."));
player.on("disconnected",function(){
serv.log("[INFO]: " + player.username + ' disconnected');
});
player.on("disconnected",() => serv.log("[INFO]: " + player.username + ' disconnected'));
player.on("error",function(error){
serv.log('[ERR]: Client: ' + error.stack);
});
player.on("error", error => serv.log('[ERR]: Client: ' + error.stack));
player.on("chat",function(message){
message = '<' + player.username + '>' + ' ' + message;
serv.log("[INFO] " + message);
});
player.on("chat", message => serv.log("[INFO] " + '<' + player.username + '>' + ' ' + message));
player.on("kicked",function(kicker,reason){
serv.log(kicker.username + " kicked " + player.username + (reason ? " (" + reason + ")" : ""));
})
player.on("kicked",(kicker,reason) =>
serv.log(kicker.username + " kicked " + player.username + (reason ? " (" + reason + ")" : "")));
}

View file

@ -43,7 +43,7 @@ function inject(serv,player)
function sendPlayersWhenMove()
{
player.on("positionChanged",function(){
player.on("positionChanged",() => {
if(player.entity.position.distanceTo(player.lastPositionPlayersUpdated)>2*32)
player.updateAndSpawnNearbyPlayers();
});
@ -66,7 +66,7 @@ function inject(serv,player)
function sendChunkWhenMove()
{
player.on("positionChanged",function(){
player.on("positionChanged", () => {
if(!player.sendingChunks && player.entity.position.distanceTo(player.lastPositionChunkUpdated)>16*32)
player.sendRestMap();
});

View file

@ -8,7 +8,7 @@ function inject(serv,player)
});
};
player._client.on('end', function () {
player._client.on('end', () => {
if(player.entity) {
serv.broadcast(player.username + ' quit the game.', "yellow");
player._writeOthers('player_info', {
@ -29,7 +29,5 @@ function inject(serv,player)
});
player._client.on('error', function (error) {
player.emit('error',error);
});
player._client.on('error', error => player.emit('error',error));
}

View file

@ -18,8 +18,5 @@ function inject(serv,player)
serv.ban(uuid, reason);
};
player.pardon = () => {
var uuid=player._client.uuid;
return serv.pardon(uuid);
};
player.pardon = () => serv.pardon(player._client.uuid);
}

View file

@ -4,14 +4,14 @@ module.exports=inject;
function inject(serv,player)
{
player._client.on("block_place",function(packet){
if(packet.direction==-1 || packet.heldItem.blockId==-1) return;
var referencePosition=new vec3(packet.location.x,packet.location.y,packet.location.z);
var directionVector=directionToVector[packet.direction];
player._client.on("block_place",({direction,heldItem,location} = {}) => {
if(direction==-1 || heldItem.blockId==-1) return;
var referencePosition=new vec3(location.x,location.y,location.z);
var directionVector=directionToVector[direction];
var placedPosition=referencePosition.plus(directionVector);
if(packet.heldItem.blockId!=323){
player.changeBlock(placedPosition,packet.heldItem.blockId);
}else if(packet.direction==1){
if(heldItem.blockId!=323){
player.changeBlock(placedPosition,heldItem.blockId);
}else if(direction==1){
player.setBlock(placedPosition, 63);
player._client.write('open_sign_entity', {
location:placedPosition

View file

@ -30,10 +30,9 @@ function inject(serv, player)
});
}
player._client.on("use_entity", function(packet) {
if(packet.mouse == 1) {
attackEntity(packet.target);
}
player._client.on("use_entity", ({mouse,target} = {}) => {
if(mouse == 1)
attackEntity(target);
});
}

View file

@ -2,8 +2,8 @@ module.exports=inject;
function inject(serv, player)
{
player._client.on("client_command", function(packet) {
if(packet.payload == 0) {
player._client.on("client_command", ({payload}) => {
if(payload == 0) {
player._client.write("respawn",{
dimension:0,
difficulty:0,

View file

@ -2,8 +2,8 @@ module.exports=inject;
function inject(serv, player)
{
player._client.on('client_command', function (packet) {
if(packet.payload==1){
player._client.on('client_command', ({payload} = {}) => {
if(payload==1){
//WIP: dummy
player.system ("WIP, press ESC");
}

View file

@ -8,9 +8,7 @@ vec3.Vec3.prototype.toFixedPosition=function() {
function inject(serv,player)
{
player._client.on('look', function(packet) {
sendLook(packet.yaw,packet.pitch,packet.onGround)
});
player._client.on('look', ({yaw,pitch,onGround} = {}) => sendLook(yaw,pitch,onGround));
// float (degrees) --> byte (1/256 "degrees")
function conv(f){
@ -39,17 +37,12 @@ function inject(serv,player)
});
}
player._client.on('position', function (packet) {
var position = new vec3(packet.x, packet.y, packet.z);
var onGround = packet.onGround;
sendRelativePositionChange(position.toFixedPosition(), onGround);
});
player._client.on('position', ({x,y,z,onGround} = {}) =>
sendRelativePositionChange((new vec3(x, y, z)).toFixedPosition(), onGround));
player._client.on('position_look', function (packet) {
var position = new vec3(packet.x, packet.y, packet.z);
var onGround = packet.onGround;
sendRelativePositionChange(position.toFixedPosition(), onGround);
sendLook(packet.yaw,packet.pitch,packet.onGround);
player._client.on('position_look', ({x,y,z,onGround,yaw,pitch} = {}) => {
sendRelativePositionChange((new vec3(x, y, z)).toFixedPosition(), onGround);
sendLook(yaw,pitch,onGround);
});
function sendRelativePositionChange(newPosition, onGround) {

View file

@ -17,7 +17,7 @@ function inject(serv, player) {
currentItem: 0,
metadata: spawnedPlayer.entity.metadata
});
}
};
player.sendChunk = (chunkX,chunkZ,column) =>
{

View file

@ -2,13 +2,9 @@ module.exports=inject;
function inject(serv)
{
serv.broadcast = (message, color) => {
serv.players.forEach(function(player){
var msg = {
"text": message,
"color": color
};
player.chat(msg);
});
};
serv.broadcast = (message, color) =>
serv.players.forEach(player => player.chat({
"text": message,
"color": color
}));
}

View file

@ -2,25 +2,17 @@ module.exports=inject;
function inject(serv,settings)
{
serv._writeAll= (packetName, packetFields) => {
serv.players.forEach(function (player) {
player._client.write(packetName, packetFields);
});
};
serv._writeAll= (packetName, packetFields) =>
serv.players.forEach((player) => player._client.write(packetName, packetFields));
serv._writeArray= (packetName, packetFields, players) => {
players.forEach(function(player) {
player._client.write(packetName, packetFields);
});
};
serv._writeArray= (packetName, packetFields, players) =>
players.forEach((player) =>player._client.write(packetName, packetFields));
serv._writeNearby= (packetName, packetFields, loc) => {
serv._writeNearby= (packetName, packetFields, loc) =>
serv._writeArray(packetName, packetFields, serv.getNearby(loc));
};
serv.getNearby= loc => {
return serv.players.filter(function(player) {
return player.world == loc.world && player.entity.position.distanceTo(loc.position) <= loc.radius;
});
};
serv.getNearby= loc => serv.players.filter( player =>
player.world == loc.world &&
player.entity.position.distanceTo(loc.position) <= loc.radius
);
}

View file

@ -14,7 +14,7 @@ function inject(serv, settings) {
serv.time = 0;
serv.on('tick', function(count) {
serv.on('tick', (count) => {
if (!serv.doDaylightCycle) return;
if (count % 20 == 0) {
serv.setTime((serv.time + 20) % 24000); // Vanilla only does it every second

View file

@ -8,21 +8,14 @@ module.exports=inject;
function inject(serv,settings)
{
serv.on("error",function(error){
serv.log('[ERR]: Server: '+error.stack);
});
serv.on("error", error => serv.log('[ERR]: Server: '+error.stack));
serv.on("listening",function(port){
serv.log('[INFO]: Server listening on port '+port);
});
serv.on("listening", port => serv.log('[INFO]: Server listening on port '+port));
serv.on("banned",function(banner,bannedUsername,reason){
serv.log(banner.username + " banned " + bannedUsername + (reason ? " (" + reason + ")" : ""));
});
serv.on("banned", (banner,bannedUsername,reason) =>
serv.log(banner.username + " banned " + bannedUsername + (reason ? " (" + reason + ")" : "")));
serv.on("seed",function(seed){
serv.log("seed: "+seed);
});
serv.on("seed", (seed) => serv.log("seed: "+seed));
var logFile=path.join("logs",timeStarted + ".log");
@ -30,14 +23,14 @@ function inject(serv,settings)
message=moment().format('MMMM Do YYYY, HH:mm:ss')+" "+message;
console.log(message);
if (!settings.logging) return;
fs.appendFile(logFile, message + "\n",function(err){
fs.appendFile(logFile, message + "\n", (err) => {
if (err) console.log(err);
});
};
serv.createLog = () => {
if (!settings.logging) return;
mkdirp("logs", function(err) {
mkdirp("logs", (err) => {
if(err)
{
console.log(err);
@ -45,7 +38,7 @@ function inject(serv,settings)
}
fs.writeFile(logFile, "[INFO]: Started logging...\n",
function (err) {
(err) => {
if (err) console.log(err);
});
});

View file

@ -8,7 +8,7 @@ module.exports = inject;
function inject(serv,options)
{
serv._server.on('login', async function (client) {
serv._server.on('login', async (client) => {
if(!options["online-mode"])
client.uuid=UUID.v3({
namespace: UUID.namespace.dns,
@ -18,15 +18,15 @@ function inject(serv,options)
client.compressionThreshold = 256;
var player=new Player();
player._client=client;
for(var pluginName in playerPlugins) {
playerPlugins[pluginName](serv, player, options);
}
Object.keys(playerPlugins)
.forEach(pluginName => playerPlugins[pluginName](serv, player, options));
serv.emit("newPlayer",player);
try {
await player.login();
}
catch(err){
setTimeout(function(){throw err;},0)
setTimeout(() => {throw err;},0)
}
});
}

View file

@ -11,7 +11,5 @@ function inject(serv,settings)
{
serv.gameMode=settings.gameMode;
serv.getSpawnPoint = () => {
return new vec3(randomInt(5,20),81,randomInt(5,20));
};
serv.getSpawnPoint = () => new vec3(randomInt(5,20),81,randomInt(5,20));
}

View file

@ -8,7 +8,7 @@ function inject(serv, settings) {
serv.setTickInterval = ticksPerSecond => {
serv.stopTickInterval();
serv.tickInterval = setInterval(function() {
serv.tickInterval = setInterval(() => {
serv.tickCount++;
serv.emit('tick', serv.tickCount);
}, 1000/ticksPerSecond);

View file

@ -10,7 +10,7 @@ function DiamondSquare(size, roughness, seed) {
var opCount = 0;
// private field
var data = new Array();
var data = [];
// public methods
this.value = function(x, y, v) {
@ -20,16 +20,16 @@ function DiamondSquare(size, roughness, seed) {
val(x, y, v);
else
return val(x, y);
}
};
this.clear = function() {
data = new Array();
}
data = [];
};
this.opCount = function(v) {
if (typeof(v) != 'undefined')
opCount = v;
else
return opCount;
}
};
// private methods
function val(x, y, v) {