This commit is contained in:
janderedev 2022-05-08 12:29:48 +02:00
commit 53da0f4dbe
No known key found for this signature in database
GPG key ID: 5D5E18ACB990F57A
2 changed files with 0 additions and 50 deletions

View file

@ -1,49 +0,0 @@
// Quick and dirty hack for https://github.com/revoltchat/revite/issues/609
// We periodically poll the `ready` WS event by creating a new client and compare
// the cached server count. If a new server is found, the original client reconnects
// and emits the `member/join` event for itself afterwards.
import { Client } from "@janderedev/revolt.js";
import { client } from "../..";
import logger from "../logger";
import { awaitClient } from "../util";
awaitClient().then(async () => {
setInterval(async () => {
logger.debug('Checking for unknown servers');
const knownServers = Array.from(client.servers.keys());
const tmpClient = new Client({
...client.options,
});
tmpClient.loginBot(process.env['BOT_TOKEN']!);
tmpClient.once('ready', async () => {
const tmpServers = Array.from(tmpClient.servers.keys());
if (tmpServers.length != knownServers.length) {
logger.warn('New unknown server(s) detected');
client.websocket.disconnect();
client.websocket.connect();
client.once('connected', async () => {
console.info('Client reconnected');
for (const id of tmpServers) {
if (!knownServers.includes(id)) {
try {
const server = client.servers.get(id) || await client.servers.fetch(id);
const member = server.member;
if (!member) continue;
client.emit('member/join', member);
} catch(e) {
console.error(e);
}
}
}
});
}
tmpClient.websocket.disconnect();
});
}, 1000 * 15);
});

View file

@ -65,5 +65,4 @@ logger.info(`\
import('./bot/modules/metrics');
import('./bot/modules/bot_status');
import('./bot/modules/fetch_all');
import('./bot/modules/event_fix');
})();