AusWeis

Cloudflare Turnstile Human Verification Plugin

7

AusWeis

<h1 align="center">AusWeis — Cloudflare Turnstile Verification</h1>

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.

<u>*I am not a native English speaker, so corrections are welcome if there are any mistakes.*</u>

Features

- 1.8 to latest – Players are kicked once with a verification URL; after completing the Turnstile challenge on your website, they can rejoin normally. - 1.8 to latest – Every login queries your backend API for the player's verification status (no local cache, always up‑to‑date). - 1.8 to latest – Grant `ausweis.bypass` to trusted players (or yourself) to skip verification entirely. - 1.8 to latest – Kick message, API URL, timeout and more can be changed in `config.yml`. Supports Minecraft colour codes and multi‑line messages. - 1.8 to latest – Choose the language in config (`en`, `zh`, or add your own .yml files in the `lang` folder). Built‑in English and Chinese translations. - 1.8 to latest – Use `/ausweis reload` to apply configuration changes without restarting the server. - 1.8 to latest – Works on Spigot/Paper from 1.8 to latest (tested on 1.12.2, 1.16.5, 1.21+).

Installation

1. Download the latest **AusWeis-*.jar from the Releases page. 2. Place the JAR file into your server's `plugins/` folder. 3. Restart** your server (or use `/reload` – restart is recommended). 4. The plugin will generate a default `config.yml` and a `lang/` folder with language files. 5. Edit `plugins/AusWeis/config.yml` to set your own backend API URL and verification page URL. 6. Run `/ausweis reload` to apply the changes.

Config

```yaml

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

| 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 |

API Specification

Your website must provide two endpoints:

1. Verification Status Query

- Description: `GET {api-url}?user={player}` - Description: JSON ```json { "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

- Function: `{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`.

> Reference implementation: The companion web backend is open‑sourced by @ChineseLiyaoChineseLiyao/AusWeis. You can deploy it directly or use it as an example.

Languages

1. Create a new file `messages_<code>.yml` in the `plugins/AusWeis/lang/` folder (e.g., `messages_fr.yml` for French). 2. Use the same keys as in the built‑in language files (`kick-title`, `kick-message`). 3. Set `language: "<code>"` in `config.yml` and reload.

Building

If you prefer to compile the plugin yourself:

```bash 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

- Discussion: Discussion: - Discussion: Feel free to open a discussion on GitHub or leave a comment below.

Happy Gaming! ```

ADS