The spam filter in the 0ad lobby client code is broken, because it blocks users that didn't spam but didn't block all users that did spam (see #3832).
Most recent report was yesterday:
treegb2: who is pinging me?
treegb2:some history message is lost when I get in lobby again
It is also highly broken because different users see a different subset of spammed messages. Hence some people respond to messages others don't see, then the others ask about message they didn't see and the spam will become reflected and amplified.
The spam filter is also incurably broken by concept, because the filtering must be done in the ejabberd server (otherwise moderators are still spammed).
Spam was rarely an actual problem. If someone spammed and wasn't kicked immediately, he got tired after 20-40 messages in every case so far.
Alternative ejabberd spamfiltering:
Filtering in the ejabberd server requires no controversial changes (like rP17941) in clientside code.
Spam filtering can be improved with the mod_block_strangers module which blocks unsubscribed clients.
The captcha_protected field could fight spambots in case that were an actual issue.
There is XEP-0016 Privacy Lists which allows people to selectively block others. But this seems like something we would want to avoid for the reason stated above.
mod_pres_counter prevents subscribe/unsubscribe spam.
There is the min_message_interval field:
This option defines the minimum interval between two messages send by an occupant in seconds. This option is global and valid for all rooms
This option defines the minimum of time between presence changes coming from a given occupant in seconds.
This option defines after how many users in the room, it is considered overcrowded
Only members of the room can enter.
mod_metrics can be used to find spammers statistically.
Few more modules are refered to here which partially don't seem implemented on ejabberd yet https://de.slideshare.net/mremond/fighting-xmpp-abuse-and-spam-with-ejabberd-ejabberd-workshop-1
It could also be implemented with a custom ejabberd modbot that kicks or bans people who spammed.
On the other hand:
If fixed, the spam filter is a non-expensive way to filter a part of the spam for part of the lobby users.