+ /** SQuit a server connected to this server, removing the given server and all servers behind it
+ * @param server Server to squit, must be directly below this server
+ * @param reason Reason for quitting the server, sent to opers and other servers
+ * @param error Whether the server is being squit because of an error.
+ */
+ void SQuitChild(TreeServer* server, const std::string& reason, bool error = false);
+
+ /** SQuit this server, removing this server and all servers behind it
+ * @param reason Reason for quitting the server, sent to opers and other servers
+ * @param error Whether the server is being squit because of an error.
+ */
+ void SQuit(const std::string& reason, bool error = false)
+ {
+ GetParent()->SQuitChild(this, reason, error);
+ }
+
+ static unsigned int QuitUsers(const std::string& reason);