Skip to content

Stop banned and kicked users from speaking - #44

Merged
iconidentify merged 1 commit into
mainfrom
fix/channel-send
Sep 29, 2026
Merged

iconidentify merged 1 commit into
mainfrom
fix/channel-send

Conversation

@iconidentify

Copy link
Copy Markdown
Owner

Summary

  • A +b mask now blocks PRIVMSG and NOTICE, not only JOIN. +e still overrides it. This is what let biff keep talking in #lobby after eggbot banned and kicked him: the nick left the names list, and the messages were delivered anyway.
  • +n blocks people who are not in the channel. Members can still speak. Previously +n would have silenced everyone, including ops.
  • +m and +i use the same send check. A refused PRIVMSG is 404; NOTICE stays silent. A refused line is not relayed to a linked server.

Test plan

  • cargo test --release --locked -- --test-threads=1 (0 failed; ircv3 now 29, including ban_and_kick_stop_channel_messages)
  • CI on this PR

A channel ban was checked only at JOIN, and +n rejected every sender
instead of outsiders. Kick removed the nick, but PRIVMSG still reached
the channel, so a flood ban did not stop the lines. Speech now honors
+b (unless +e), and +n, +m, and +i apply to sending the same way they
do on other ircds. A refused line is not relayed to a linked server.
NOTICE stays silent on the refusal.
@iconidentify
iconidentify merged commit 329c52d into main Sep 29, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant