From 01744df3cd92d7eaa340646511c32ec026a524df Mon Sep 17 00:00:00 2001 From: knotteye Date: Sat, 17 Oct 2020 22:07:30 -0500 Subject: [PATCH] Fix a bug where XMPP bridge would repeatedly ignore channels --- src/chat.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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