Diagnosis\n\nRoot cause: Player-vs-player /bite feedback messages use send_player_message (kind: :info_player), which goes through spam detection. When biting the same target 3+ times in 30 seconds, the similar feedback messages ("You bite X for Y damage! (Z HP)") trigger the repeat spam detector and mute the player.\n\nWhy ECHO-89 didn't fully fix this:\nThe ECHO-89 fix added a bypass for kind: :action messages in the spam detector, but /bite's player combat feedback uses send_player_message which creates kind: :info_player messages. Only NPC bite messages use send_action_message and bypass spam detection.\n\nSolution:\nChange player-vs-player bite feedback messages to use send_action_message instead of send_player_message. This ensures command feedback bypasses spam detection while player-typed chat remains protected.\n\nFiles to modify:\n- lib/echo/chat/actions/bite.ex (lines ~460-495 in send_bite_messages/6)\n\nImplementation:\nReplace ChatOps.send_player_message calls with ChatOps.send_action_message for combat feedback in the bite success flow. The pattern is already used correctly for NPC bites (lines 436-443).\n\nExample change:\nelixir\n# Before:\nChatOps.send_player_message(player, attacker_msg)\n\n# After:\nChatOps.send_action_message(player, attacker_msg)\n\n\nTesting:\n1. Bite same target 5+ times rapidly\n2. Verify no mute is applied\n3. Verify feedback messages still display correctly\n4. Verify player-typed chat spam detection still works\n\nNote: The /attack command likely has the same issue - it also uses send_player_message for feedback. Consider applying the same fix there or verifying ECHO-89 actually resolved it.
Diagnosis\n\nRoot cause: Player-vs-player
/bitefeedback messages usesend_player_message(kind::info_player), which goes through spam detection. When biting the same target 3+ times in 30 seconds, the similar feedback messages ("You bite X for Y damage! (Z HP)") trigger the repeat spam detector and mute the player.\n\nWhy ECHO-89 didn't fully fix this:\nThe ECHO-89 fix added a bypass forkind: :actionmessages in the spam detector, but/bite's player combat feedback usessend_player_messagewhich createskind: :info_playermessages. Only NPC bite messages usesend_action_messageand bypass spam detection.\n\nSolution:\nChange player-vs-player bite feedback messages to usesend_action_messageinstead ofsend_player_message. This ensures command feedback bypasses spam detection while player-typed chat remains protected.\n\nFiles to modify:\n-lib/echo/chat/actions/bite.ex(lines ~460-495 insend_bite_messages/6)\n\nImplementation:\nReplaceChatOps.send_player_messagecalls withChatOps.send_action_messagefor combat feedback in the bite success flow. The pattern is already used correctly for NPC bites (lines 436-443).\n\nExample change:\nelixir\n# Before:\nChatOps.send_player_message(player, attacker_msg)\n\n# After:\nChatOps.send_action_message(player, attacker_msg)\n\n\nTesting:\n1. Bite same target 5+ times rapidly\n2. Verify no mute is applied\n3. Verify feedback messages still display correctly\n4. Verify player-typed chat spam detection still works\n\nNote: The/attackcommand likely has the same issue - it also usessend_player_messagefor feedback. Consider applying the same fix there or verifying ECHO-89 actually resolved it.