state: fix undefined membership when handling MODE
Happens when the server sends a MODE message which refers to a user who left the channel.
This commit is contained in:
@@ -670,12 +670,16 @@ export const State = {
|
|||||||
let members = new irc.CaseMapMap(buf.members);
|
let members = new irc.CaseMapMap(buf.members);
|
||||||
|
|
||||||
irc.forEachChannelModeUpdate(msg, client.isupport, (mode, add, arg) => {
|
irc.forEachChannelModeUpdate(msg, client.isupport, (mode, add, arg) => {
|
||||||
if (prefixByMode.has(mode)) {
|
if (!prefixByMode.has(mode)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
let nick = arg;
|
let nick = arg;
|
||||||
let membership = members.get(nick);
|
let membership = members.get(nick);
|
||||||
|
if (membership === undefined) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
let letter = prefixByMode.get(mode);
|
let letter = prefixByMode.get(mode);
|
||||||
members.set(nick, updateMembership(membership, letter, add, client));
|
members.set(nick, updateMembership(membership, letter, add, client));
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return { members };
|
return { members };
|
||||||
|
|||||||
Reference in New Issue
Block a user