NoFullBright

Paper plugin which executes a command when it detects a player using full bright texture pack

130

Quick challenge

How far can you run before the mobs catch you?

NoFullBright

NoFullBright

NoFullBright is a small Paper/Spigot plugin that detects likely client-side "fullbright" use in configured worlds and runs a configurable command when a player exceeds the warning threshold.

Features

- Periodic server-side checks for low-light conditions where players should not be able to see clearly. - Configurable list of worlds where the checks are active. - Configurable command executed when a player is detected repeatedly in suspicious conditions (supports placeholders). - Lightweight and minimal: no commands or extra listeners by default.

How it works

Every scheduled interval (default: 200 ticks initial delay and 200 ticks between runs) the plugin scans all players in the configured worlds and evaluates each player:

- The player is considered "in the dark" if the block light level at the player's feet is less than 2 and the player's Y is below 40. - If the player does not have Night Vision or Glowing potion effects and is not holding a torch in either hand, the plugin increments a per-player internal warning counter.

Note: players are only checked when they are in Survival game mode. Players in Creative or Spectator mode are ignored by the checks. - When the warning counter reaches the configured threshold (default 5), the plugin executes the configured `report-command` (with the `%player%` and `%world%` placeholders) and resets that player's counter. - If the player moves back to a safe state, the warning counter is decremented over time until it reaches 0.

This approach attempts to reduce false positives by requiring repeated detections before taking action.

Configuration (`config.yml`)

Default `config.yml` created by the plugin:

```yaml

NoFullBright configuration

worlds: list of world names where the anti-fullbright check runs

report-command: command executed on violation. You can use %player% and %world% placeholders.

worlds: - hardcore

report-command: 'report %player% utilizzo della fullbright in %world%' ```

- `worlds` (list) — exact world names where checks will run. Modify this list to include all worlds where you want the anti-fullbright check active. - `report-command` (string) — the command executed by the server console when a player reaches the warning threshold. The plugin replaces `%player%` and `%world%` with the player's name and world name respectively. Make sure the command exists on your server (for example a moderation/reporting plugin). If the command is not available, nothing fatal will happen but no useful action will be taken.

Placeholders

- `%player%` — replaced with the player's name. - `%world%` — replaced with the world name.

Recommendations & tuning

- If your world names vary (for example `hardcore_1`, `hardcore_2`) update `worlds` accordingly. - If you want a different sensitivity, I can add configurable options for: - `light-threshold` (default 2) - `y-limit` (default 40) - `warning-count` (default 5) - `tick-interval` (scheduler delay/period)

Troubleshooting

- No action occurs on violation: ensure the command set in `report-command` actually exists and is executable by the server console (e.g., a `report` command provided by another plugin). - Too many false positives: tell me in the issues page - Plugin not shown in `/plugins`: confirm the JAR filename is correct and server logs show it loaded; check `server.log` for startup errors.

License

Use as you wish. No warranty provided.

ADS