From 25eeca6a5aba39ebd8c4fff39ce170c19de291a8 Mon Sep 17 00:00:00 2001 From: Big Bad Waffle Date: Fri, 22 Sep 2017 19:58:21 +0200 Subject: [PATCH] moved custom channel code to socialCommands --- src/client/js/components/components.js | 3 ++- src/client/ui/templates/messages/messages.js | 11 +++++++++-- src/server/components/auth.js | 4 +++- src/server/components/extensions/socialCommands.js | 10 ++++++++++ src/server/components/player.js | 2 +- src/server/components/social.js | 7 +++++-- 6 files changed, 30 insertions(+), 7 deletions(-) diff --git a/src/client/js/components/components.js b/src/client/js/components/components.js index b1d3d0d0..0a02180f 100644 --- a/src/client/js/components/components.js +++ b/src/client/js/components/components.js @@ -30,7 +30,8 @@ var components = [ 'trade', 'prophecies', 'reputation', - 'serverActions' + 'serverActions', + 'social' ].map(function(c) { return 'js/components/' + c; }); diff --git a/src/client/ui/templates/messages/messages.js b/src/client/ui/templates/messages/messages.js index ed5f02ca..7c229e40 100644 --- a/src/client/ui/templates/messages/messages.js +++ b/src/client/ui/templates/messages/messages.js @@ -30,7 +30,8 @@ define([ this.onEvent('onGetMessages', this.onGetMessages.bind(this)); this.onEvent('onDoWhisper', this.onDoWhisper.bind(this)); this.onEvent('onJoinChannel', this.onJoinChannel.bind(this)); - this.onEvent('onLeaveChannel', this.onJoinChannel.bind(this)); + this.onEvent('onLeaveChannel', this.onLeaveChannel.bind(this)); + this.onEvent('onGetCustomChatChannels', this.onGetCustomChatChannels.bind(this)); this.find('input') .on('keydown', this.sendChat.bind(this)) @@ -45,6 +46,12 @@ define([ this.onEvent('onKeyDown', this.onKeyDown.bind(this)); }, + onGetCustomChatChannels: function(channels) { + channels.forEach(function(c) { + this.onJoinChannel(c); + }, this); + }, + onJoinChannel: function(channel) { var container = this.find('.filters'); var newFilter = $(tplTab) @@ -57,7 +64,7 @@ define([ }, onLeaveChannel: function(channel) { - this.hoverFilter = hover; + this.find('.filters [filter="' + channel + '"]').remove(); }, onFilterHover: function(hover) { diff --git a/src/server/components/auth.js b/src/server/components/auth.js index 7fed4a2d..54ef34d3 100644 --- a/src/server/components/auth.js +++ b/src/server/components/auth.js @@ -222,7 +222,9 @@ define([ onGetCustomChannels: function(data, character, result) { this.customChannels = JSON.parse(result || '[]'); - + + character.components.find(c => (c.type == 'social')).customChannels = this.customChannels; + if (this.customChannels != null) data.callback(character); diff --git a/src/server/components/extensions/socialCommands.js b/src/server/components/extensions/socialCommands.js index dae864e0..29d90199 100644 --- a/src/server/components/extensions/socialCommands.js +++ b/src/server/components/extensions/socialCommands.js @@ -31,6 +31,11 @@ define([ roleLevel: null, init: function(blueprint) { + if (this.customChannels) { + this.customChannels = this.customChannels + .filter((c, i) => (this.customChannels.indexOf(c) == i)); + } + this.roleLevel = roles.getRoleLevel(this.obj); }, @@ -133,6 +138,11 @@ define([ value: JSON.stringify(channels) }); + obj.socket.emit('event', { + event: 'onLeaveChannel', + data: value + }); + this.obj.socket.emit('events', { onGetMessages: [{ messages: [{ diff --git a/src/server/components/player.js b/src/server/components/player.js index 1a7b8edc..b3af6228 100644 --- a/src/server/components/player.js +++ b/src/server/components/player.js @@ -66,7 +66,7 @@ define([ obj.addComponent('trade', character.components.find(c => c.type == 'trade')); obj.addComponent('reputation', character.components.find(c => c.type == 'reputation')); - obj.addComponent('social'); + obj.addComponent('social', character.components.find(c => c.type == 'social')); obj.social.init(); obj.addComponent('aggro', { faction: 'players' diff --git a/src/server/components/social.js b/src/server/components/social.js index c034a628..fa698683 100644 --- a/src/server/components/social.js +++ b/src/server/components/social.js @@ -12,14 +12,17 @@ define([ partyLeaderId: null, party: null, - init: function() { + customChannels: null, + + init: function(blueprint) { this.obj.extendComponent('social', 'socialCommands', {}); }, simplify: function() { return { type: 'social', - party: this.party + party: this.party, + customChannels: this.customChannels }; },