NamlessCheck
PluginLicenseRef-All-Rights-Reserved

NamlessCheck

Spigot/Paper plugin to log sensitive build/combat actions: monitored block placements, fire ignitions, and End Crystal placements, with output to console, file, or both.

3
Downloads
0
Followers
2 months ago
Updated
📦
1
Versions

📖About NamlessCheck

NamlessCheck

Spigot/Paper plugin to log sensitive build/combat actions: monitored block placements, fire ignitions, and End Crystal placements, with output to console, file, or both.

V3 Updates

  • Added fire interaction logging for ignitions caused by FLINT_AND_STEEL and FIRE_CHARGE.
  • Added End Crystal placement logging from player interaction (right-click on OBSIDIAN/BEDROCK).
  • Kept whitelist behavior for block placements via monitored-blocks.

Features

  • Monitored player block-place logging (whitelist-based).
  • Fire ignition logging (FLINT_AND_STEEL / FIRE_CHARGE interactions).
  • End Crystal placement logging from interaction.
  • Configurable block whitelist (monitored-blocks).
  • Configurable output: CONSOLE, FILE, BOTH.
  • Live config reload command (no restart required).
  • Bypass permission for specific players/staff.
  • Startup log rotation with .gz compression.
  • Multi-language support with separate files (it_it / us_en).
  • Async log queue to reduce main-thread I/O impact.

Installation

  1. Copy the jar into plugins/.
  2. Start the server once to generate default files.
  3. Edit plugins/NamlessCheck/config.yml.
  4. (Optional) edit language files in plugins/NamlessCheck/lang/.
  5. Run /namlesscheck reload to apply changes.

Configuration (config.yml)

Main keys:

  • log-mode: FILE, CONSOLE, BOTH
  • log-file: path relative to plugin folder (example logs/blocks.log)
  • async-log-interval-ticks: async flush interval (default 20)
  • archive-on-startup: if true, archives the previous log on startup
  • archive-directory: destination folder for compressed archives
  • language: active language (it_it or us_en)
  • monitored-blocks: list of Material values to monitor for block placements

Example:

log-mode: BOTH
log-file: "logs/blocks.log"
async-log-interval-ticks: 20
archive-on-startup: true
archive-directory: "logs/old"
language: "it_it"

monitored-blocks:
  - CHEST
  - HOPPER

Note: monitored-blocks only filters BlockPlaceEvent logs. Fire ignite and End Crystal logs are tracked independently (unless player has namlesscheck.bypass).

Languages (lang/)

Available files:

  • plugins/NamlessCheck/lang/it_it.yml
  • plugins/NamlessCheck/lang/us_en.yml

Main keys:

  • messages.reload-success
  • messages.no-permission
  • messages.usage
  • logs.block-place
  • logs.fire-ignite
  • logs.end-crystal-place

You can customize messages directly in these files.

Commands

  • /namlesscheck reload
  • Aliases: /nc reload, /check reload

Permissions

  • namlesscheck.reload (default: op)
  • namlesscheck.bypass (default: false)

Log Format

Example line:

[2026-02-12 21:10:00] Steve placed CHEST in world [120, 64, -44]

Log Rotation

  • If archive-on-startup: true, on startup the current log is:
  • compressed to .gz
  • moved to archive-directory
  • replaced with a new fresh log file

Notes

  • Whitelist is handled case-insensitively.
  • If log-mode is invalid, the plugin falls back to BOTH.
  • File writer does not flush every event to reduce I/O; flush is guaranteed on close/reload.

🔗 Links

Portfolio

Portfolio
--------------------------------------

LinkedIn

LinkedIn
--------------------------------------
Email
Email
--------------------------------------

Buy me a beer on BuyMeACoffee

Buy me a beer
--------------------------------------

Support me on Ko-fi

Ko-fi