From fdc031e660353dcf6872f8de430e922e2add822a Mon Sep 17 00:00:00 2001 From: shugen002 Date: Mon, 1 Feb 2016 17:38:35 +0800 Subject: [PATCH] add new feature: show position , health ,weather and food --- app/client/controllers/playersController.js | 34 ++++++++++++++++++++ app/server/bot/events/death.js | 10 ++++++ app/server/bot/events/health.js | 12 +++++++ app/server/bot/events/move.js | 24 ++++++++++++++ app/server/bot/events/rain.js | 13 ++++++++ app/server/bot/index.js | 10 +++++- public/Thumbs.db | Bin 0 -> 3584 bytes public/templates/windows/chat.html | 5 +++ 8 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 app/server/bot/events/death.js create mode 100644 app/server/bot/events/health.js create mode 100644 app/server/bot/events/move.js create mode 100644 app/server/bot/events/rain.js create mode 100644 public/Thumbs.db diff --git a/app/client/controllers/playersController.js b/app/client/controllers/playersController.js index 509c0dc..c9e0ac6 100644 --- a/app/client/controllers/playersController.js +++ b/app/client/controllers/playersController.js @@ -1,6 +1,8 @@ module.exports = function($scope, socket) { $scope.players = []; + $scope.food=0; + $scope.health=0; // request player list every 5000ms setInterval(function() { @@ -26,6 +28,11 @@ module.exports = function($scope, socket) { socket.on('disconnect', function() { $scope.$apply(function() { $scope.players = []; + $scope.posx = 'no'; + $scope.posy = 'no'; + $scope.posz = 'no'; + $scope.food=0; + $scope.health=0; }); }); @@ -33,7 +40,34 @@ module.exports = function($scope, socket) { socket.on('bot:disconnect', function() { $scope.$apply(function() { $scope.players = []; + $scope.posx = 'no'; + $scope.posy = 'no'; + $scope.posz = 'no'; + $scope.food=0; + $scope.health=0; }); }); + socket.on('bot:move', function(data) { + $scope.$apply(function() { + $scope.posx=data.x; + $scope.posy=data.y; + $scope.posz=data.z; + }); + }); + + socket.on('bot:forcedMove', function(data) { + $scope.$apply(function() { + $scope.posx=data.x; + $scope.posy=data.y; + $scope.posz=data.z; + }); + }); + + socket.on('bot:health',function(data){ + $scope.$apply(function() { + $scope.health=data.health; + $scope.food=data.food; + }); + }) }; diff --git a/app/server/bot/events/death.js b/app/server/bot/events/death.js new file mode 100644 index 0000000..d679ccc --- /dev/null +++ b/app/server/bot/events/death.js @@ -0,0 +1,10 @@ +export default (socket) => { + + let ondeath = () => { + var pos = socket.mcbot.entity.position; + socket.emit('buffer:info', `You have been dead in X:${pos.x}, Y:${pos.y}, Z:${pos.z} `); + }; + + socket.mcbot.on('death', ondeath); + +}; diff --git a/app/server/bot/events/health.js b/app/server/bot/events/health.js new file mode 100644 index 0000000..86b9fd4 --- /dev/null +++ b/app/server/bot/events/health.js @@ -0,0 +1,12 @@ +export default (socket) => { + + let onHealth = () => { + var health = socket.mcbot.health || 0; + var food = socket.mcbot.food||0; + var foodSaturation = socket.mcbot.foodSaturation||0; + socket.emit('bot:health', {health:health,food:food,foodSaturation:foodSaturation}); + }; + + socket.mcbot.on('health', onHealth); + +}; diff --git a/app/server/bot/events/move.js b/app/server/bot/events/move.js new file mode 100644 index 0000000..2c94133 --- /dev/null +++ b/app/server/bot/events/move.js @@ -0,0 +1,24 @@ +export default (socket) => { + + let onmove = () => { + var pos = socket.mcbot.entity.position; + if(movingornot(socket.mcbot.entity.velocity)){ + socket.emit('bot:move', {x:pos.x.toFixed(2),y:pos.y.toFixed(2),z:pos.z.toFixed(2)}); + } + }; + + socket.mcbot.on('move', onmove); + + let onforcedMove = () => { + var pos = socket.mcbot.entity.position; + socket.emit('bot:forcedMove', {x:pos.x.toFixed(2),y:pos.y.toFixed(2),z:pos.z.toFixed(2)}); + }; + + socket.mcbot.on('forcedMove', onforcedMove); + + function movingornot(v){ + if(v.x!=0) return true; + if(v.y!=0) return true; + if(v.z!=0) return true; + } +}; diff --git a/app/server/bot/events/rain.js b/app/server/bot/events/rain.js new file mode 100644 index 0000000..a250184 --- /dev/null +++ b/app/server/bot/events/rain.js @@ -0,0 +1,13 @@ +export default (socket) => { + + let onRain = () => { + if (socket.mcbot.entity.isRaining){ + socket.emit('buffer:info', `It started raining.`); + }else{ + socket.emit('buffer:info', `It stopped raining. `); + } + }; + + socket.mcbot.on('spawn', onRain); + +}; diff --git a/app/server/bot/index.js b/app/server/bot/index.js index d2be10b..6e8adfe 100644 --- a/app/server/bot/index.js +++ b/app/server/bot/index.js @@ -3,6 +3,10 @@ import login from './events/login'; import spawn from './events/spawn'; import message from './events/message'; import end from './events/end'; +import death from './events/death'; +import rain from './events/rain'; +import health from './events/health'; +import move from './events/move'; // bind all listeners to the bot export default (socket) => { @@ -12,5 +16,9 @@ export default (socket) => { spawn(socket); message(socket); end(socket); - + death(socket); + rain(socket); + move(socket); + health(socket); + }; diff --git a/public/Thumbs.db b/public/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..61c901a3a8c4294b5e05dbd751607a54468eca33 GIT binary patch literal 3584 zcmca`Uhu)fjZzO8(10BSGsD0CoD6J8;*3Bx2!nwD0|OI~0pkDr|NlQkkbwcn90fxt z1pWfu3W`4vW&uVbD>OcbkQYXsN;Sr0E8 zaOh0f*XVFD<{~3AP`&|_(15@YLXl0fFfcKK><5)aAevZ%IH2}BGb93ioyd>_425)J zH6y7L0G5Ivdtm@c3MW$(C}V|FmUIc2-5{D&-Jm!Fg&inPVEG?Z=CcDa2M}`tF&7YX z12GQ}^8zs+5c2~uunJ%h1Y#i|76xJwAcmDC$Zi^C58e;}#VIHa`~gP({~P}wFbH_L zdAcz$GBPqG03pNw+YHVO%uGxm1OzNV#LB_S%EH3R#m>&g!NbMF!_CFb&C4ewz{@Ad z$IUGuCLky*A}T7%!!Ir&CL$puA}RthgpnDjhlQ1sm6cP3mz!6FWbpq0gCGa6oKj$B zRAOKfWMmd({C|W&9_V~lpld-6h5|+=pc~oPIXJnvfeN+)b0{M-GZPCl$kjmAwLp0W z7C}}aMMFn6;lM<8r9u&-#)%6#l$|yn6b-ugLB%+!sELzHOk6@zN>xo=LsQGd)Xdz% z(#qMz)y>_*(KX88wf9D@XN$<|$+#C9s6Z0JgLZ_r!LaK@!TPg;|k$V z>yPN)s`j~%IORv!je8#FlFg^HUXoqpAakTSr-!rb+#kV)Mw1>wkRz*5`-C zuB=9=uCjTJ0MwUKFrLeQ>+DDAtZseN%?6%>h+Iy$AM{ zJv}|m2Vl{-*lF>-*TE*QUEm)$Mq||8}oNhu&>gKbZ!X<|l!ln;d>G z^*8;Xe{}r~`A7PPI#qUFnpQ7eQO!I1t(Z>i5&mgxzkMcI8p#|>Vc^+z@o07EijeN2 zXtUZ@sV`5a#J!Z~=XRZ#!YY>CI&-^$%I1laC*4U_ko)ub-oEy~jq&Ag%Rjso=jtvj z`xnF~GTZalgJcPdKdV>#5d6=;^7_Zdj}`9K>yGT_uQAs)to%Ada=nT~0Z-U`?SfNt zP9?JloQf!@cdKKnJG!5{K7GE{dxs0hmOm0v?e8$1yIs6t?qS2Z3l)FHtbcdaThCm~ z=DM#{QLb5$-;$t0_y0Fxg$Jp$0I;S6l{^VhtOcaOB~iofUl)LFoit$EqKqMvAsN`d T$YaoBC;*b=v@?Ll(gXkik1nMX literal 0 HcmV?d00001 diff --git a/public/templates/windows/chat.html b/public/templates/windows/chat.html index 52afeb0..a0d05b6 100644 --- a/public/templates/windows/chat.html +++ b/public/templates/windows/chat.html @@ -1,6 +1,11 @@