Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for LucasTHCR

Anti-VPN and anti-proxy protection with country filtering, Discord alerts, a silent mode and a dry-run mode.

Report ProxyShield?

R

2.4.0

Added

The Discord embed layout is now yours to write (discord.embed). The message used to be fixed at a title and six inline boxes. Every visible part is a template string instead:

discord:
  embed:
    title: "`{player}`"
    description: |
      ```ansi
      IP: `{ip}`
      Country: {country}
      Action: {action}
      ```
    thumbnail: "https://your-server.example/alert.gif"
    footer: "ProxyShield {version} on {platform}"
    fields: {}

Placeholders: {player} {uuid} {ip} {reason} {country} {isp} {asn} {score} {sources} {platform} {version}, plus {action} (Connection denied / Logged only (dry run)) and {action_id} (kicked / allowed).

Fields are named entries rather than a list, the same way api.providers works, and appear in the order written. Clear them with fields: {} for a description-only message.

Values go in exactly as written, so the backticks are yours to place. Discord parses embed text as Markdown and an underscore is a legal Minecraft name character, so the shipped layout wraps everything that can contain one.

Nothing changes for an existing server. A config without an embed section renders the previous layout, and the section now shipped in config.yml is that same layout spelled out, which a test pins.

The thumbnail must be https://, the same rule the webhook URL is held to.

Also added: {action_id} in actions.on-flag, so one name means one thing in both the commands and the embed.

Information

Published
September 11, 2026
Author
1Downloads

Platforms

Paper
Paper
1.21–26.2
Waterfall
Waterfall
1.21
Velocity
Velocity
3.3–3.5