AusWeis — Cloudflare Turnstile Verification
AusWeis is a lightweight Bukkit/Paper plugin that integrates
Cloudflare Turnstile to provide frictionless human verification before players enter your server. It effectively stops bot attacks while offering a smooth experience for real players.
I am not a native English speaker, so corrections are welcome if there are any mistakes.
Features
- Simple workflow – Players are kicked once with a verification URL; after completing the Turnstile challenge on your website, they can rejoin normally.
- Real‑time API check – Every login queries your backend API for the player's verification status (no local cache, always up‑to‑date).
- Bypass permission – Grant ausweis.bypass to trusted players (or yourself) to skip verification entirely.
- Highly customisable – Kick message, API URL, timeout and more can be changed in config.yml. Supports Minecraft colour codes and multi‑line messages.
- Multi‑language ready – Choose the language in config (en, zh, or add your own .yml files in the lang folder). Built‑in English and Chinese translations.
- Command reload – Use /ausweis reload to apply configuration changes without restarting the server.
- Wide compatibility – Works on Spigot/Paper from 1.8 to latest (tested on 1.12.2, 1.16.5, 1.21+).
Installation
- Download the latest AusWeis-*.jar from the Releases page.
- Place the JAR file into your server's plugins/ folder.
- Restart your server (or use /reload – restart is recommended).
- The plugin will generate a default config.yml and a lang/ folder with language files.
- Edit plugins/AusWeis/config.yml to set your own backend API URL and verification page URL.
- Run /ausweis reload to apply the changes.
Configuration (config.yml)
Code (Text):
# Language file to use (e.g., en, zh). Must correspond to a messages_<lang>.yml file in the lang folder.
language: "en"
# API URL to check player verification status
api-url: "https://your-server.com/api/check?user={player}"
# Verification page URL to show in kick message
verify-url: "https://your-server.com/verify?user={player}"
# HTTP request timeout in milliseconds
timeout: 5000
# Debug mode, enables more detailed logs
debug: false
Commands & Permissions
| /ausweis reload |
Reload the plugin configuration |
ausweis.reload |
op |
| /ausw reload |
Alias for the above |
same |
op |
| ausweis.reload |
Allows reloading config |
op |
| ausweis.bypass |
Bypass verification and always join |
false |
Backend API Specification
Your website must provide two endpoints:
1. Verification Status Query
- URL: GET {api-url}?user={player}
- Response format: JSON
Code (Text):
{
"verified": true,
"user": "Steve",
"timestamp": 1709123456.789
}
- Description: Return "verified": true if the player has already passed the Turnstile challenge, otherwise false.
2. Verification Page
- URL: {verify-url}?user={player}
- Function: Display the Cloudflare Turnstile widget. After successful verification, your backend should mark the player as verified (e.g., update a database) so that subsequent API calls return true.
Adding More Languages
- Create a new file messages_<code>.yml in the plugins/AusWeis/lang/ folder (e.g., messages_fr.yml for French).
- Use the same keys as in the built‑in language files (kick-title, kick-message).
- Set language: "<code>" in config.yml and reload.
Building from Source
If you prefer to compile the plugin yourself:
Code (Text):
git clone https://github.com/Nskawa/AusWeisPlugin.git
cd AusWeis
mvn clean package
The compiled JAR will be in the
target/ directory.
License
This project is licensed under the MIT License – see the
LICENSE file for details.
Support & Feedback
Happy Gaming!