diff --git a/app/client/controllers/bufferController.js b/app/client/controllers/bufferController.js index 27e1968..75cfd6e 100644 --- a/app/client/controllers/bufferController.js +++ b/app/client/controllers/bufferController.js @@ -13,9 +13,4 @@ module.exports = function($scope, socket, buffer) { buffer.append('---'); buffer.append('
'); - // buffer errors when received - socket.on('bot:error', function(error) { - buffer.error(error); - }); - }; diff --git a/app/client/controllers/index.js b/app/client/controllers/index.js index 15f6cb9..3047321 100644 --- a/app/client/controllers/index.js +++ b/app/client/controllers/index.js @@ -7,5 +7,6 @@ exports.register = function(app) { app.controller('connectController', require('./connectController')); app.controller('bufferController', require('./bufferController')); app.controller('chatController', require('./chatController')); + app.controller('navController', require('./navController')); }; diff --git a/app/client/controllers/navController.js b/app/client/controllers/navController.js new file mode 100644 index 0000000..88bb0a5 --- /dev/null +++ b/app/client/controllers/navController.js @@ -0,0 +1,30 @@ +/** + * Connect Controller + */ + +module.exports = function($scope, socket) { + + $scope.connected = false; + + socket.on('bot:connect', function(data) { + $scope.$apply(function() { + $scope.host = data.host; + $scope.port = data.port; + $scope.username = data.username; + $scope.connected = true; + }); + }); + + socket.on('bot:disconnect', function() { + $scope.$apply(function() { + $scope.connected = false; + }); + }) + + socket.on('disconnect', function() { + $scope.$apply(function() { + $scope.connected = false; + }); + }); + +}; diff --git a/app/client/services/buffer.js b/app/client/services/buffer.js index 255443e..e25e094 100644 --- a/app/client/services/buffer.js +++ b/app/client/services/buffer.js @@ -15,7 +15,7 @@ module.exports = function(socket) { }); socket.on('buffer:error', function(string) { - $('#buffer').append('[i] ' + error + '
') + $('#buffer').append('[i] ' + string + '
') $('#buffer').scrollTop($('#buffer').prop('scrollHeight')); }); diff --git a/app/server/bot/events/index.js b/app/server/bot/events/index.js index b2cfb96..065c7e1 100644 --- a/app/server/bot/events/index.js +++ b/app/server/bot/events/index.js @@ -30,7 +30,11 @@ module.exports = function(socket) { // login event bot.on('login', function() { socket.emit('buffer:success', 'Successfully logged in as ' + bot.username + ' with entity id ' + bot.entity.id); - socket.emit('bot:login') + socket.emit('bot:connect', { + host: socket.connectionParams.hostname, + port: socket.connectionParams.port, + username: socket.connectionParams.username + }); }); // spawn event @@ -69,7 +73,7 @@ module.exports = function(socket) { // format the buffer with the correct coloring buffer = buffer.replace(/§([0-9abcdef])([^§]*)/ig, function replace(regex, color, msg) { - return ''+msg+''; + return ''+msg.replace(' ', ' ')+''; }); // send line back to the client @@ -77,4 +81,14 @@ module.exports = function(socket) { }); + bot.on('end', function() { + socket.emit('buffer:error', 'Connection lost...'); + socket.emit('bot:disconnect'); + }); + + bot.on('kick', function(reason) { + console.log(reason); + socket.emit('buffer:error', 'Kicked for: ' + reason); + }); + }; \ No newline at end of file diff --git a/app/server/sockets/events/connection.js b/app/server/sockets/events/connection.js index 7d6fff0..8a0ca8e 100644 --- a/app/server/sockets/events/connection.js +++ b/app/server/sockets/events/connection.js @@ -16,9 +16,13 @@ module.exports = function(socket) { password: data.password }); + // store connection params in socket + socket.connectionParams = data; + // prepare for errors socket.mcbot.on('error', function(error) { socket.emit('buffer:error', error); + socket.mcbot = null; }); // bind bot events diff --git a/public/templates/windows/nav.html b/public/templates/windows/nav.html index 2891387..1c2850d 100644 --- a/public/templates/windows/nav.html +++ b/public/templates/windows/nav.html @@ -1,10 +1,11 @@ -