I have not checked the bot out, but I had this discussion with iago, and I believe this is what JavaOp2 does:
When a user joins, do not display anything they say within, say, 300ms. If that person joins, [says something], then leaves, do not show any of it (even the join/leave messages). This will render flooding completely useless, you won't even know they were there (might want to do soemthing to the channel list code, too
)