promotional bannermobile promotional banner

AutoBlacklist standalone: Remove leveling services spam

AutoBlacklist spam detection self-learning blacklist
Back to Files

AutoBlacklist-v1.1.0.zip

File nameAutoBlacklist-v1.1.0.zip
Uploader
pmingopmingo
Uploaded
Oct 18, 2026
Downloads
44
Size
111.0 KB
Flavors
Retail
File ID
9240972
Type
R
Release
Supported game versions
  • 12.1.5
  • 12.1.0
  • 12.0.7
  • 12.0.5
  • 12.0.1

What's new

v1.1.0 (2026-10-18)

Minimap icon with pulse animation and icon picker, blacklisted players now hidden in party/raid/instance/guild chat, new pause/resume and remove commands, batched SavedVariables writes, and the report opener dropped: the addon is blocking-only.

Minimap icon (new)

  • Minimap button via embedded LibDBIcon (no dependencies): tooltip with state, entry/phrase counts and last detection; left click opens the panel, right click a menu (panel / pause / hide).
  • Pulse animation on every detection, coloured by signal (phrase = green, repeat = amber, crew = red, detector = blue). The library's button is never scaled: the pulse runs on a child frame.
  • Icon picker in the panel (six icon names verified against icons that already work in the target client) plus a "Minimap icon" checkbox. State lives in db.minimap (hide, minimapPos, icon).
  • /autoblack status self-test now pulses the icon in green as a direct animation check.

Panel

  • New settings, previously editable only by hand in the SavedVariables: detection window (5/10/30/60 min), entry expiry (7/30/90 days / never) and "Don't re-list removed" (pardon: off / 6 / 24 / 72 h).
  • Frame widened to 470x600, dropdowns 30% wider (text no longer clipped) and the minimap checkbox row re-laid out so it no longer fell outside the frame.
  • Phrase manager (phase 1) fixes: overlapping columns, inline feedback for duplicates / too short / invalid Lua pattern, paging and per-row editing.

Detection and data

  • Entry cap (500) and phrase cap (50) actually enforced, evicting the oldest entry.
  • Lazy entry expiry, plus runtime state purge when a player is removed (their buffered messages used to re-list them instantly).
  • Pardon on manual removal: a player you remove by hand is not auto-listed again during the pardon window, while messages matching your phrases stay hidden. Only an explicit removal creates a pardon.
  • Blacklisted players are now hidden in party, raid, instance, guild and officer chat too (before, only channel/say/yell/whisper/emote were filtered, so a listed spammer who ended up in your group kept talking). Those events are hide-only: no detection runs there, and every event name was verified against addons that already work in the target client. /autoblack status now proves it on the spot: it plants a throwaway entry, checks the filter hides it (by GUID and by Name-Realm) in CHAT_MSG_PARTY, and removes it again — no need to blacklist anyone to see the feature work.
  • SavedVariable churn cut: the hit counter is batched instead of written on every hidden message, and the recent-message buffer is always size-capped (its pruning used to depend on window being truthy). A malformed window value can no longer break detection.

Commands

  • /autoblack pause|resume (/autoblack pausar|reanudar) toggles protection from the chat, same as the minimap menu.
  • /autoblack remove <name> (/autoblack quitar <nombre>) removes a player by full or partial name, case-insensitive, and creates the usual pardon.

Fixes

  • The semi-automatic report was dropped. Opening Blizzard's dialog was attempted (queued outside the chat filter, located by GUID) and it cannot be made reliable from a GUID: the client builds the report from a chat-line location (PlayerLocation:CreateFromChatLineID, the only form BadBoy uses), and a GUID-only location passes CanReportPlayer while OpenReportPlayerDialog silently opens nothing. Since reporting adds nothing blocking does not, the option, the command and the counters are gone rather than left half-working. The one-time report hookup is written down in the source comments.
  • PREFIX was a local in the minimap and the config file but not in the core, where it was hand-written in twelve prints: using it from a timer raised "attempt to concatenate global 'PREFIX' (a nil value)". It is now a real local, and checkblocks.js gained a cross-file rule that catches exactly this class of bug.
  • Two Lua syntax errors that broke the whole minimap file (repeat used as a table key, and a:b without arguments), plus a hardened checkblocks.js and a new checksyntax.lua gate.

Tooling

  • checksyntax.lua: real syntax check using Pandoc's embedded Lua interpreter (7 files, 0 errors). Optional for users, mandatory for development together with checkblocks.js.

This mod has no additional files