@@ -45,7 +45,8 @@ define([ | |||
'onClickFilter', | |||
'onGetCustomChatChannels', | |||
'onKeyDown', | |||
'onKeyUp' | |||
'onKeyUp', | |||
'beforeInventoryLinkItem' | |||
].forEach(e => this.onEvent(e, this[e].bind(this))); | |||
this.find('.filter:not(.channel)').on('click', this.onClickFilter.bind(this)); | |||
@@ -170,6 +171,20 @@ define([ | |||
elInput[0].setSelectionRange(0, 7); | |||
}, | |||
beforeInventoryLinkItem: function (msg) { | |||
//code for linking items from inventory | |||
client.request({ | |||
cpn: 'social', | |||
method: 'chat', | |||
data: { | |||
message: '{' + msg.item.name + '}', | |||
item: msg.item, | |||
type: this.currentChannel, | |||
subType: this.currentSubChannel | |||
} | |||
}); | |||
}, | |||
//Remember private and custom channels used | |||
trackHistory: function (msg) { | |||
const { subType, source, target, channel } = msg; | |||
@@ -211,8 +226,12 @@ define([ | |||
} | |||
if (m.item) { | |||
let source = message.split(':')[0]; | |||
message = source + ': <span class="q' + (m.item.quality || 0) + '">' + message.replace(source + ': ', '') + '</span>'; | |||
let parts = message.split(':'); | |||
//assuming item names will never have a colon in them | |||
let source = parts.slice(0, -1); | |||
let rest = parts[parts.length - 1]; | |||
message = source.join(':') + ': <span class="q' + (m.item.quality || 0) + '">' + rest.trim() + '</span>'; | |||
} | |||
let el = $('<div class="list-message ' + m.class + '">' + message + '</div>') | |||
@@ -38,22 +38,25 @@ const sendPartyMessage = ({ party, obj }, msg) => { | |||
return; | |||
} | |||
let charname = obj.auth.charname; | |||
let message = msg.data.message; | |||
const sendMessage = `(party: ${obj.auth.charname}): ${message}`; | |||
const eventData = { | |||
onGetMessages: [{ | |||
messages: [{ | |||
class: 'color-tealC', | |||
message: sendMessage, | |||
item: msg.data.item, | |||
type: 'chat', | |||
source: obj.name | |||
}] | |||
}] | |||
}; | |||
party.forEach(p => { | |||
let player = cons.players.find(c => c.id === p); | |||
player.socket.emit('events', { | |||
onGetMessages: [{ | |||
messages: [{ | |||
class: 'color-tealC', | |||
message: '(party: ' + charname + '): ' + message, | |||
type: 'chat', | |||
source: obj.name | |||
}] | |||
}] | |||
}); | |||
player.socket.emit('events', eventData); | |||
}); | |||
}; | |||
@@ -84,6 +87,7 @@ const sendCustomChannelMessage = (cpnSocial, msg) => { | |||
messages: [{ | |||
class: 'color-grayB', | |||
message: sendMessage, | |||
item: msg.data.item, | |||
type: 'chat', | |||
subType: 'custom', | |||
channel: channel.trim(), | |||
@@ -116,6 +120,7 @@ const sendPrivateMessage = ({ obj: { name: sourceName, socket } }, msg) => { | |||
messages: [{ | |||
class: 'color-yellowB', | |||
message: '(you to ' + targetName + '): ' + message, | |||
item: msg.data.item, | |||
type: 'chat', | |||
subType: 'privateOut', | |||
target: targetName | |||
@@ -129,6 +134,7 @@ const sendPrivateMessage = ({ obj: { name: sourceName, socket } }, msg) => { | |||
messages: [{ | |||
class: 'color-yellowB', | |||
message: '(' + sourceName + ' to you): ' + message, | |||
item: msg.data.item, | |||
type: 'chat', | |||
subType: 'privateIn', | |||
source: sourceName | |||