diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..c9fe8ba --- /dev/null +++ b/.eslintrc @@ -0,0 +1,19 @@ +{ + "env": { + "browser": true, + "node": true, + "es6": true + }, + "rules": { + "quotes": [2, "single"], + "strict": [2, "never"], + "no-multi-spaces": false, + "no-alert": false, + "key-spacing": false, + "curly": false, + "no-octal-escape": false + }, + "globals": { + "$": true + } +} \ No newline at end of file diff --git a/Gruntfile.js b/Gruntfile.js index f4ed5b0..a5605b6 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -50,6 +50,10 @@ module.exports = function(grunt) { watch: ['app/server'] } } + }, + + eslint: { + src: ["app"] } }); @@ -58,6 +62,7 @@ module.exports = function(grunt) { grunt.loadNpmTasks('grunt-nodemon'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-watch'); + grunt.loadNpmTasks('grunt-contrib-eslint'); grunt.registerTask('build', ['browserify:pro', 'uglify']); grunt.registerTask('debug', ['browserify:dev']); diff --git a/app/client/app.js b/app/client/app.js index bb90224..c1da718 100755 --- a/app/client/app.js +++ b/app/client/app.js @@ -1,3 +1,5 @@ +var angular = angular; + // initialize angular application var app = angular.module('chat', []); diff --git a/app/client/controllers/connectController.js b/app/client/controllers/connectController.js index dd99e82..7e1e102 100644 --- a/app/client/controllers/connectController.js +++ b/app/client/controllers/connectController.js @@ -7,7 +7,7 @@ module.exports = function($scope, socket, servers) { $scope.servers = servers.get(); $scope.select = function(id) { - $scope.ip = servers.select(id).ip; + $scope.ip = servers.select(id).ip; $scope.port = servers.select(id).port; if ($scope.username.length > 0 && $scope.password.length > 0) { @@ -27,8 +27,6 @@ module.exports = function($scope, socket, servers) { password: $scope.password, hostname: $scope.ip, port: $scope.port || 25565 - }, function(response) { - }); } else { diff --git a/app/client/controllers/playersController.js b/app/client/controllers/playersController.js index cd8d291..509c0dc 100644 --- a/app/client/controllers/playersController.js +++ b/app/client/controllers/playersController.js @@ -36,4 +36,4 @@ module.exports = function($scope, socket) { }); }); -}; \ No newline at end of file +}; diff --git a/app/client/services/servers.js b/app/client/services/servers.js index 82dc068..9f6286d 100644 --- a/app/client/services/servers.js +++ b/app/client/services/servers.js @@ -1,26 +1,16 @@ module.exports = function() { // initialize servers store if doesn't exist - localStorage.servers = localStorage.servers || "[]"; + localStorage.servers = localStorage.servers || '[]'; - // function to save servers into localStorage - function save() { - localStorage.servers = JSON.stringify(servers); - } - - // default servers - var defaultServers = [ - {name: 'LattyCraft', ip: 'us.latty.info', port: 25565} - ]; // load servers from localstorage var servers = JSON.parse(localStorage.servers); - // if no servers are saved, load the default ones - if (!servers || servers.length === 0) { - servers = defaultServers; - save(); + // function to save servers into localStorage + function save() { + localStorage.servers = JSON.stringify(servers); } @@ -41,4 +31,4 @@ module.exports = function() { } }; -}; \ No newline at end of file +}; diff --git a/app/client/services/socket.js b/app/client/services/socket.js index 8b2173e..f0e2d62 100644 --- a/app/client/services/socket.js +++ b/app/client/services/socket.js @@ -4,6 +4,8 @@ module.exports = function() { + var io = io; + var socket = io(window.location.host); return socket; diff --git a/app/client/services/sound.js b/app/client/services/sound.js index fcf28c8..1c8f9ae 100644 --- a/app/client/services/sound.js +++ b/app/client/services/sound.js @@ -1,9 +1,10 @@ module.exports = function() { - var connected = "connected"; - var error = "error"; + var createjs = createjs; - createjs.Sound.registerSound("/sounds/connected.mp3", connected); + var connected = 'connected'; + + createjs.Sound.registerSound('/sounds/connected.mp3', connected); return { connected: function() { diff --git a/app/server/bot/events/message.js b/app/server/bot/events/message.js index e906bf6..de97af6 100644 --- a/app/server/bot/events/message.js +++ b/app/server/bot/events/message.js @@ -41,7 +41,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.replace(/ /g, ' ')+''; + return '' + msg.replace(/ /g, ' ') + ''; }); // send line back to the client diff --git a/app/server/parsers/vanilla.js b/app/server/parsers/vanilla.js index 86e3cdb..2701f6e 100644 --- a/app/server/parsers/vanilla.js +++ b/app/server/parsers/vanilla.js @@ -3,7 +3,7 @@ var parseExtra = require('../parsers/extra'); module.exports = function(jsonMsg) { - var buffer = ''; + var username, msg, sender, broadcast, connected, max, current, pages, player, victim, killer, achievement; var color = stringToCode(jsonMsg.color); switch (jsonMsg.translate) { @@ -11,13 +11,13 @@ module.exports = function(jsonMsg) { case 'chat.type.text': username = jsonMsg.with[0].text; msg = jsonMsg.with[1]; - return '§' + color + '<'+username+'> ' + msg; + return '§' + color + '<' + username + '> ' + msg; case 'chat.type.announcement': sender = jsonMsg.with[0]; broadcast = parseExtra(jsonMsg.with[1].extra); - return '§' + color + '['+sender+'] ' + broadcast; + return '§' + color + '[' + sender + '] ' + broadcast; case 'commands.generic.notFound': @@ -27,13 +27,13 @@ module.exports = function(jsonMsg) { case 'commands.players.list': connected = jsonMsg.with[0]; max = jsonMsg.with[1]; - return '§' + color + 'There are '+connected+'/'+max+' players online:'; + return '§' + color + 'There are ' + connected + '/' + max + ' players online:'; case 'commands.help.header': current = jsonMsg.with[0]; pages = jsonMsg.with[1]; - return '§' + color + '--- Showing help page '+current+' of '+pages+' (/help ) ---'; + return '§' + color + '--- Showing help page ' + current + ' of ' + pages + ' (/help ) ---'; case 'commands.generic.usage': @@ -81,7 +81,7 @@ module.exports = function(jsonMsg) { case 'chat.type.achievement': player = jsonMsg.with[0].text; achievement = jsonMsg.with[1].extra[0].translate; - return '§' + color + player + ' has just earned the achievement ' + '§a['+parseAchievement(achievement)+']' ; + return '§' + color + player + ' has just earned the achievement ' + '§a[' + parseAchievement(achievement) + ']'; } @@ -95,6 +95,8 @@ module.exports = function(jsonMsg) { function parseAdmin(command) { + var player, gamemode; + switch (command.translate) { case 'commands.downfall.success': @@ -278,4 +280,4 @@ function parseCommandUsage(commandId) { return commands[commandId] || 'Unknown command usage'; -} \ No newline at end of file +} diff --git a/app/server/sockets/events/chat.js b/app/server/sockets/events/chat.js index 97036a9..df69200 100644 --- a/app/server/sockets/events/chat.js +++ b/app/server/sockets/events/chat.js @@ -6,4 +6,4 @@ module.exports = function(socket) { } }); -}; \ No newline at end of file +}; diff --git a/app/server/sockets/events/connection.js b/app/server/sockets/events/connection.js index f64838f..cd03662 100644 --- a/app/server/sockets/events/connection.js +++ b/app/server/sockets/events/connection.js @@ -3,7 +3,7 @@ var events = require('../../bot'); module.exports = function(socket) { - socket.on('server:connect', function(data, response) { + socket.on('server:connect', function(data) { if (socket.mcbot) { socket.emit('buffer:error', 'Pleae disconnect before connecting again'); diff --git a/app/server/sockets/events/disconnection.js b/app/server/sockets/events/disconnection.js index 4f4cdc5..388f564 100644 --- a/app/server/sockets/events/disconnection.js +++ b/app/server/sockets/events/disconnection.js @@ -17,4 +17,4 @@ module.exports = function(socket) { }); -}; \ No newline at end of file +}; diff --git a/app/server/sockets/events/players.js b/app/server/sockets/events/players.js index 2fb3385..19779d2 100644 --- a/app/server/sockets/events/players.js +++ b/app/server/sockets/events/players.js @@ -6,4 +6,4 @@ module.exports = function(socket) { } }); -}; \ No newline at end of file +}; diff --git a/app/server/utils/escapeHtml.js b/app/server/utils/escapeHtml.js index 482ddaa..2fe8b72 100644 --- a/app/server/utils/escapeHtml.js +++ b/app/server/utils/escapeHtml.js @@ -1,8 +1,8 @@ module.exports = function escapeHtml(unsafe) { return unsafe - .replace(/&/g, "&") - .replace(//g, ">") - .replace(/"/g, """) - .replace(/'/g, "'"); + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); }; diff --git a/app/server/utils/index.js b/app/server/utils/index.js index 400d9c5..e77327a 100644 --- a/app/server/utils/index.js +++ b/app/server/utils/index.js @@ -1,2 +1,2 @@ exports.escapeHtml = require('./escapeHtml'); -exports.stringToCode = require('./stringToCode'); \ No newline at end of file +exports.stringToCode = require('./stringToCode'); diff --git a/circle.yml b/circle.yml new file mode 100644 index 0000000..730393a --- /dev/null +++ b/circle.yml @@ -0,0 +1,6 @@ +machine: + node: + version: 0.10.32 +dependencies: + pre: + - npm install grunt-cli -g \ No newline at end of file diff --git a/package.json b/package.json index 098fab7..b54b304 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "express": "^4.12.3", "grunt": "^0.4.5", "grunt-browserify": "^3.7.0", + "grunt-contrib-eslint": "0.0.5", "grunt-contrib-uglify": "^0.9.1", "grunt-contrib-watch": "^0.6.1", "grunt-nodemon": "^0.4.0", @@ -18,7 +19,7 @@ }, "devDependencies": {}, "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", + "test": "grunt eslint", "start": "node app/server" }, "repository": {