+/* Handle MODE_AUDITORIUM changes
+ * set Delayed for all hidden users on MODE_DEL
+ * part all nonoped users on MODE_ADD
+ */
+static void audit_chan_users(struct ParseState *state, ulong64 *flag_p) {
+ struct Membership *member;
+ if (state->dir == MODE_ADD) {
+ for(member = state->chptr->members; member; member = member->next_member) {
+ if(!IsChanOp(member) && !HasVoice(member)) {
+ sendcmdto_channel_butserv_butone(member->user, CMD_PART, member->channel, member->user, SKIP_OPS, "%H :%s", member->channel, "mode +u set.");
+ }
+ }
+ } else {
+ for(member = state->chptr->members; member; member = member->next_member) {
+ if(!IsChanOp(member) && !HasVoice(member)) {
+ sendcmdto_channel_butserv_butone(member->user, CMD_JOIN, member->channel, member->user, SKIP_OPS, ":%H", member->channel);
+ }
+ }
+ }
+}
+
+