This service filters Discord webhook notifications from DinkPlugin.
You can filter notifications by the player name or their dink account hash (obtained via the ::DinkHash in-game command). Allowlist mode only accepts notifications where the player name or hash is on the configured list. Denylist mode rejects notifications where the player name or hash is on the configured list.
1. Create a new webhook configuration (generates a secret key).
2. Configure your Discord webhook URL, identifier list (dink hashes and/or player names), and mode (allowlist or denylist).
3. Set the generated webhook URL in your DinkPlugin configuration.
4. Filter incoming webhooks to only forward notifications to Discord that pass the specified configuration; others are silently dropped by this service.
Each webhook filter configuration is authenticated by a secret that is shown at creation and never stored in plaintext. The secret is used to compute a hash that appears in the webhook URL. Only someone with the secret can modify the configuration (and it is virtually impossible to reverse the hash to determine the raw secret).
The most secure filter configuration is an allowlist on dink account hashes, as it is exceedingly difficult to guess another player's account hash. The easiest-to-bypass filter configuration is a denylist on player names (as the denylisted player could change their name or modify the json payload).
The source code for this project can be viewed on GitHub. You can self-host this Cloudflare Worker for free if you are uncomfortable with the operators of this service being able to read your webhook configurations.