HomeJavaModsAllTheWebhooks
AllTheWebhooks
ModsJava

AllTheWebhooks

Granular webhook management for any and all events in Minecraft and other plugins.

⬇ Download on HangarOpen in MCModsHubGet it on Google Play →
[This project is maintained on GitHub](https://github.com/chibashr/all-the-webhooks) # All the Webhooks An extremely granular and thorough **Paper-** and **Folia-** compatible Minecraft plugin that forwards **in-game events** to webhooks (e.g. Discord) using **YAML-driven rules**. Configure exactly which events to send, to which endpoints, and how they look—all without touching code. --- ## What It Does **All the Webhooks** lets server owners send a wide range of in-game events to one or more webhooks (primarily Discord). Events use **dot-notation keys** (e.g. `player.join`, `player.break.block.diamond_ore`, `entity.damage.player.by.zombie`) so you can target as broadly or as narrowly as you need. The plugin is: - **Opt-in** — No events are sent unless you configure them in `events.yaml`. - **Expressive** — Wildcards at any depth (`player.break.block.*`, `entity.damage.*`), conditions (e.g. gamemode, damage amount), and optional permission checks. - **Safe by default** — Rate-limited, async dispatch, redaction of sensitive fields, and Folia-friendly execution. --- ## How It Works (High Level) 1. **Event discovery** — The plugin discovers Bukkit/Paper event classes and builds dot-notation keys. When an event fires, it builds an **event context** (key + key/value map from the event). 2. **Rule resolution** — For each event, the plugin finds the best-matching rule in `events.yaml` (exact match, then more specific wildcards). Optional world overrides apply. 3. **Checks** — Rule enabled, optional permission, conditions (e.g. `equals`, `greater-than`), and rate limiting are applied. 4. **Message** — The chosen template from `messages.yaml` is filled with placeholders (e.g. `{player.name}`) and optional regex transforms (`{key|regex:pattern:replacement}`). Redaction is applied to configured fields. 5. **Dispatch** — A JSON payload is sent to the webhook URL via HTTP POST, asynchronously and with configurable rate limits. --- ## Quick Start Just go to the [releases page](https://github.com/chibashr/all-the-webhooks/releases) and download the latest JAR. Drop it into your server’s `plugins/` folder, start the server once to generate configs, then follow the generated `README` and in-plugin docs for setup and usage. --- ## Commands | Command | Description | |--------|-------------| | `/allthewebhooks reload` | Reload config, events, and messages | | `/allthewebhooks stats` | View dispatch statistics (dispatched, dropped, rate-limited) | | `/allthewebhooks validate` | Validate config and event keys | | `/allthewebhooks docs generate` | Regenerate HTML and JSON docs | | `/allthewebhooks fire [key=value ...] [--dry-run]` | Manually fire an event for testing | --- ## Self-generating documentation The plugin generates documentation from the **actual runtime event registry**, so it always matches the events your server exposes (including discovered Bukkit/Paper events). **Output location:** `plugins/AllTheWebhooks/docs/` | File | Purpose | |------|---------| | `docs.html` | Main user-facing docs: overview, event list by category, placeholders, and regex reference | | `events.json` | Machine-readable list of event keys and metadata | **When it runs:** - **On startup** — If `config.yaml` has `documentation.generate-on-startup: true` (default). - **On reload** — If `documentation.generate-on-reload: true`. - **On demand** — `/allthewebhooks docs generate` (runs async so it does not block the server). Docs are **offline-first**: no hosted site or internet required. Open `docs.html` in a browser to browse events by category, see placeholders per event, and use the regex transform reference. --- ## Configuration at a glance - **config.yaml** — Webhook URLs and timeouts, global rate limit, async/Folia, redaction fields, logging and doc generation options, command permissions. - **events.yaml** — Defaults (enabled, webhook, message, permission), optional world overrides, and event rules: event key (or wildcard) → message template, conditions, optional permission. - **messages.yaml** — Named message templates with `{placeholder}` and optional `{key|regex:pattern:replacement}`. --- ## Project Vibe-coded with love <3 - **Author:** chibashr - **License:** MIT — see [LICENSE](LICENSE) - **Tests:** `./gradlew test` — see `planning/testing.md` for layout and coverage.

AllTheWebhooks is a free Minecraft Java mod. Compatible with Minecraft 1.10, 1.10.1, 1.10.2, 1.11 and newer. Downloaded 17 times (via Hangar). Download it and open it directly in the game.

Explore more