Cloudflare Turnstile Human Verification Plugin
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.
ausweis.bypass to trusted players (or yourself) to skip verification entirely.config.yml. Supports Minecraft colour codes and multi‑line messages.en, zh, or add your own .yml files in the lang folder). Built‑in English and Chinese translations./ausweis reload to apply configuration changes without restarting the server.plugins/ folder./reload – restart is recommended).config.yml and a lang/ folder with language files.plugins/AusWeis/config.yml to set your own backend API URL and verification page URL./ausweis reload to apply the changes.# 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
| Command | Description | Permission | Default |
|---|---|---|---|
/ausweis reload |
Reload the plugin configuration | ausweis.reload |
op |
/ausw reload |
Alias for the above | same | op |
| Permission | Description | Default |
|---|---|---|
ausweis.reload |
Allows reloading config | op |
ausweis.bypass |
Bypass verification and always join | false |
Your website must provide two endpoints:
GET {api-url}?user={player}{
"verified": true,
"user": "Steve",
"timestamp": 1709123456.789
}
"verified": true if the player has already passed the Turnstile challenge, otherwise false.{verify-url}?user={player}true.Reference implementation: The companion web backend is open‑sourced by @ChineseLiyao – ChineseLiyao/AusWeis. You can deploy it directly or use it as an example.
messages_<code>.yml in the plugins/AusWeis/lang/ folder (e.g., messages_fr.yml for French).kick-title, kick-message).language: "<code>" in config.yml and reload.If you prefer to compile the plugin yourself:
git clone https://github.com/Nskawa/AusWeisPlugin.git
cd AusWeis
mvn clean package
The compiled JAR will be in the target/ directory.
This project is licensed under the MIT License – see the LICENSE file for details.
Happy Gaming!
```