Fix crash when sending '/ '

This commit is contained in:
Guangcong Luo
2014-09-04 16:19:20 -04:00
parent f99b4fe751
commit 34f9137d69

View File

@@ -167,6 +167,10 @@ var parse = exports.parse = function (message, room, user, connection, levelsDee
if (Config.emergencylog && (user.userid === 'pindapinda' || connection.ip === '62.195.195.62' || connection.ip === '86.141.154.222' || connection.ip === '189.134.175.221')) {
Config.emergencylog.write('<' + user.name + '@' + connection.ip + '> ' + message + '\n');
}
} else {
if (levelsDeep > MAX_PARSE_RECURSION) {
return connection.sendTo(room, "Error: Too much recursion");
}
}
if (message.substr(0, 3) === '>> ') {
@@ -177,7 +181,7 @@ var parse = exports.parse = function (message, room, user, connection, levelsDee
message = '/evalbattle ' + message.substr(4);
}
if (message.substr(0, 2) !== '//' && message.substr(0, 1) === '/') {
if (message.charAt(0) === '/' && message.charAt(1) !== '/') {
var spaceIndex = message.indexOf(' ');
if (spaceIndex > 0) {
cmd = message.substr(1, spaceIndex - 1);
@@ -186,7 +190,7 @@ var parse = exports.parse = function (message, room, user, connection, levelsDee
cmd = message.substr(1);
target = '';
}
} else if (message.substr(0, 1) === '!') {
} else if (message.charAt(0) === '!') {
var spaceIndex = message.indexOf(' ');
if (spaceIndex > 0) {
cmd = message.substr(0, spaceIndex);
@@ -293,9 +297,6 @@ var parse = exports.parse = function (message, room, user, connection, levelsDee
return true;
},
parse: function (message) {
if (levelsDeep > MAX_PARSE_RECURSION) {
return this.sendReply("Error: Too much recursion");
}
return parse(message, room, user, connection, levelsDeep + 1);
},
canTalk: function (message, relevantRoom) {
@@ -369,6 +370,9 @@ var parse = exports.parse = function (message, room, user, connection, levelsDee
}
}
if (message.charAt(0) === '/' && message.charAt(1) !== '/') {
message = '/'+message;
}
message = canTalk(user, room, connection, message);
if (!message) return false;
if (message.charAt(0) === '/' && message.charAt(1) !== '/') {