diff --git a/src/js/chat.js b/src/js/chat.js
index 4b6881a..59eeeb8 100644
--- a/src/js/chat.js
+++ b/src/js/chat.js
@@ -29,7 +29,10 @@ export default class Chat {
let usernameContainer = $('')
.text(matchedUsernames[i])
.css('color', this.getUsernameColor(matchedUsernames[i]));
- message = message.replace(matchedUsernames[i], usernameContainer.prop('outerHTML'));
+
+ // Match only the username
+ let matchedUsernameOnly = new RegExp('(' + matchedUsernames[i] + ')(?![^<]*>|[^<>]*<\/)', 'gm');
+ message = message.replace(matchedUsernameOnly, usernameContainer.prop('outerHTML'));
}
}
@@ -51,7 +54,7 @@ export default class Chat {
checkIfUsername(words) {
let matchedUsernames = [];
this.darkwire.users.forEach((user) => {
- let usernameMatch = new RegExp('^' + user.username + '$', 'g');
+ let usernameMatch = new RegExp('^' + user.username + '$');
for (let i = 0; i < words.length; i++) {
let exactMatch = words[i].match(usernameMatch) || false;
let usernameInMemory = this.usernamesInMemory.indexOf(words[i]) > -1;
@@ -241,7 +244,7 @@ export default class Chat {
if (commandToTrigger) {
expectedParams = commandToTrigger.paramaters.length;
if (expectedParams && trigger.params.length > expectedParams || expectedParams && trigger.params.length < expectedParams) {
- if (!commandToTrigger.multple && trigger.params.length < 1) {
+ if ((!commandToTrigger.multple && trigger.params.length < 1) || (trigger.params.length >= 1 && trigger.params[0] === '')) {
return this.log('Missing or too many paramater. Usage: ' + commandToTrigger.usage, {error: true});
}
}
diff --git a/src/js/main.js b/src/js/main.js
index fc7f8d0..fbc3954 100644
--- a/src/js/main.js
+++ b/src/js/main.js
@@ -104,7 +104,7 @@ $(function() {
socket.on('user update', (data) => {
darkwire.updateUser(data).then((oldUsername) => {
- chat.log(oldUsername + ' changed name to ' + data.username);
+ chat.log(oldUsername + ' changed name to ' + data.username);
renderParticipantsList();
});
});