Implement difficulty

* added some code to set the difficulty of the server

* Add difficulty variable
 Added difficulty to default-settings.json
 changed difficulty: 0 to difficulty: serv.difficulty in
 -respawn.js
 -world.js
 -login.js

* set server diff
* added setting serv difficulty on server start in settings.js
* added serv in module.exports.player=function(player, serv) in player.js and in respawn.js
This commit is contained in:
Dylan 2016-04-30 19:25:12 -04:00 committed by Romain Beaumont
parent e3acaf8555
commit 3b563b64ce
6 changed files with 31 additions and 11 deletions

View file

@ -5,6 +5,7 @@
"online-mode": true, "online-mode": true,
"logging": true, "logging": true,
"gameMode": 1, "gameMode": 1,
"difficulty": 1,
"worldFolder":"world", "worldFolder":"world",
"generation": { "generation": {
"name": "diamond_square", "name": "diamond_square",

View file

@ -56,7 +56,7 @@ module.exports.player=function(player,serv,settings)
levelType: 'default', levelType: 'default',
gameMode: player.gameMode, gameMode: player.gameMode,
dimension: 0, dimension: 0,
difficulty: 0, difficulty: serv.difficulty,
reducedDebugInfo: false, reducedDebugInfo: false,
maxPlayers: serv._server.maxPlayers maxPlayers: serv._server.maxPlayers
}); });

View file

@ -13,7 +13,7 @@ module.exports.server=function(serv)
}; };
}; };
module.exports.player=function(player){ module.exports.player=function(player, serv){
player.commands.add({ player.commands.add({
base: 'gamemode', base: 'gamemode',
aliases: ['gm'], aliases: ['gm'],
@ -30,4 +30,22 @@ module.exports.player=function(player){
player.setGameMode(mode); player.setGameMode(mode);
} }
}); });
player.commands.add({
base: 'difficulty',
aliases: ['diff'],
info: 'Sets the difficulty level',
usage: '/difficulty <difficulty>',
op: true,
parse(str){
let results;
if(!(results = str.match(/^([0-3])$/)))
return false;
return parseInt(str);
},
action(diff){
serv._writeAll('difficulty', {difficulty: diff});
serv.difficulty = diff;
}
});
}; };

View file

@ -1,11 +1,11 @@
module.exports.player=function(player) module.exports.player=function(player, serv)
{ {
player._client.on("client_command", ({payload}) => { player._client.on("client_command", ({payload}) => {
if(payload == 0) { if(payload == 0) {
player.behavior('requestRespawn', {}, () => { player.behavior('requestRespawn', {}, () => {
player._client.write("respawn",{ player._client.write("respawn",{
dimension:0, dimension:0,
difficulty:0, difficulty:serv.difficulty,
gamemode:player.gameMode, gamemode:player.gameMode,
levelType:'default' levelType:'default'
}); });

View file

@ -8,6 +8,7 @@ function randomInt (low, high) {
module.exports.server=function(serv,settings) module.exports.server=function(serv,settings)
{ {
serv.gameMode=settings.gameMode; serv.gameMode=settings.gameMode;
serv.difficulty=settings.difficulty;
async function findSpawnZone(world,initialPoint) async function findSpawnZone(world,initialPoint)
{ {

View file

@ -184,7 +184,7 @@ module.exports.player=function(player,serv,settings) {
if (typeof opt.gamemode != 'undefined') player.gameMode = opt.gamemode; if (typeof opt.gamemode != 'undefined') player.gameMode = opt.gamemode;
player._client.write("respawn",{ player._client.write("respawn",{
dimension: opt.dimension || 0, dimension: opt.dimension || 0,
difficulty: opt.difficulty || 0, difficulty: opt.difficulty || serv.difficulty,
gamemode: opt.gamemode || player.gameMode, gamemode: opt.gamemode || player.gameMode,
levelType:'default' levelType:'default'
}); });