From 1dd55367e944806535a91956c04855ae5303529f Mon Sep 17 00:00:00 2001
From: Simon Ser <contact@emersion.fr>
Date: Tue, 21 Sep 2021 18:31:11 +0200
Subject: [PATCH] Send WHO queries for saved user buffers after ISUPPORT

This allows WHOX to be used.
---
 components/app.js | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/components/app.js b/components/app.js
index 2e47e2c..620d6b0 100644
--- a/components/app.js
+++ b/components/app.js
@@ -584,15 +584,6 @@ export default class App extends Component {
 				});
 			}
 
-			// Restore opened user query buffers
-			for (let buf of this.bufferStore.list(client.params)) {
-				if (buf.name === "*" || client.isChannel(buf.name)) {
-					continue;
-				}
-				this.createBuffer(serverID, buf.name);
-				this.whoUserBuffer(buf.name, serverID);
-			}
-
 			let lastReceipt = this.latestReceipt(ReceiptType.DELIVERED);
 			if (lastReceipt && lastReceipt.time && client.enabledCaps["draft/chathistory"] && (!client.enabledCaps["soju.im/bouncer-networks"] || client.params.bouncerNetwork)) {
 				let now = irc.formatDate(new Date());
@@ -605,6 +596,18 @@ export default class App extends Component {
 				});
 			}
 			break;
+		case irc.RPL_ENDOFMOTD:
+		case irc.ERR_NOMOTD:
+			// These messages are used to indicate the end of the ISUPPORT list
+
+			// Restore opened user query buffers
+			for (let buf of this.bufferStore.list(client.params)) {
+				if (buf.name === "*" || client.isChannel(buf.name)) {
+					continue;
+				}
+				this.createBuffer(serverID, buf.name);
+				this.whoUserBuffer(buf.name, serverID);
+			}
 		case "MODE":
 			target = msg.params[0];
 			if (client.isChannel(target)) {