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:
14
state.js
14
state.js
@@ -670,12 +670,16 @@ export const State = {
|
||||
let members = new irc.CaseMapMap(buf.members);
|
||||
|
||||
irc.forEachChannelModeUpdate(msg, client.isupport, (mode, add, arg) => {
|
||||
if (prefixByMode.has(mode)) {
|
||||
let nick = arg;
|
||||
let membership = members.get(nick);
|
||||
let letter = prefixByMode.get(mode);
|
||||
members.set(nick, updateMembership(membership, letter, add, client));
|
||||
if (!prefixByMode.has(mode)) {
|
||||
return;
|
||||
}
|
||||
let nick = arg;
|
||||
let membership = members.get(nick);
|
||||
if (membership === undefined) {
|
||||
return;
|
||||
}
|
||||
let letter = prefixByMode.get(mode);
|
||||
members.set(nick, updateMembership(membership, letter, add, client));
|
||||
});
|
||||
|
||||
return { members };
|
||||
|
||||
Reference in New Issue
Block a user