make sure nicks are always unique

This commit is contained in:
emerson 2022-02-01 16:32:16 -05:00
parent ac936f8c11
commit 0d91166f01

View file

@ -52,16 +52,24 @@ export class IRCUser {
if (maybeMatrixUser) {
return maybeMatrixUser;
}
let potentialNick = mxid.split(":")[0].substring(1);
const localPart = mxid.split(":")[0].substring(1)
if (!this.nickToMatrixUser.has(localPart)) {
const newMatrixUser = new MatrixUser(mxid, localPart);
this.matrixUsers.set(mxid, newMatrixUser);
this.nickToMatrixUser.set(localPart, newMatrixUser);
return newMatrixUser;
}
const homeserver = mxid.split(":")[1];
const homeserverArray = homeserver.split('.');
const baseDomainNum = homeserverArray.length - 2;
let potentialNick = `${localPart}-${homeserverArray[baseDomainNum]}`;
if (!this.nickToMatrixUser.has(potentialNick)) {
const newMatrixUser = new MatrixUser(mxid, potentialNick);
this.matrixUsers.set(mxid, newMatrixUser);
this.nickToMatrixUser.set(potentialNick, newMatrixUser);
return newMatrixUser;
}
const homeserverArray = mxid.split(":")[1].split('.');
const baseDomainNum = homeserverArray.length - 2;
potentialNick = `${potentialNick}-${homeserverArray[baseDomainNum]}`;
potentialNick = `${localPart}-${homeserver}`;
const newMatrixUser = new MatrixUser(mxid, potentialNick);
this.matrixUsers.set(mxid, newMatrixUser);
this.nickToMatrixUser.set(potentialNick, newMatrixUser);