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 @@
-