diff --git a/src/chat.ts b/src/chat.ts index 9b2206e..1a47ae6 100644 --- a/src/chat.ts +++ b/src/chat.ts @@ -9,6 +9,7 @@ const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); var ircClient; var xmppIgnore: Array = []; +var xmppJoined: Array = []; var twitchClient; var twitchArr: Array = []; var discordClient; @@ -276,10 +277,12 @@ async function normalizeDiscordMsg(msg): Promise{ } function xmppJoin(room: string): void{ - var stanza = new xmpp.Element('presence', {"to": room+'/'+config['chat']['xmpp']['nickname']}).c('x', { xmlns: 'http://jabber.org/protocol/muc' }).c('history', { maxstanzas: 0, seconds: 1}); + if(xmppJoined.findIndex((e) => { return e === room }) !== -1) return; + var stanza = new xmpp.Element('presence', {"to": room+'/'+config['chat']['xmpp']['nickname']}).c('x', { xmlns: 'http://jabber.org/protocol/muc' }).c('history', { maxstanzas: 0, seconds: 0}); xmpp.conn.send(stanza); xmppIgnore = xmppIgnore.concat([room]); xmpp.join(room+'/'+config['chat']['xmpp']['nickname']); + xmppJoined = xmppJoined.concat([room]); sleep(4000).then(() => { xmppIgnore = xmppIgnore.filter((item) => { return item !== room; @@ -288,7 +291,6 @@ function xmppJoin(room: string): void{ } function updateXmppChan(): void{ - //simple-xmpp will ignore duplicate joins by itself so we can join repeatedly for(var i=0;i