BigBrother
Administration v1.0.3Player activity monitoring through command, sign, anvil, book, and portal spies with per-player toggles and filters.
BigBrother
BigBrother monitors player activity through configurable spy features.
Also available on SpigotMC: https://www.spigotmc.org/resources/bigbrother.139509/
Features
- Spy types: Command, Sign, Anvil, Book, Portal.
- Global server toggle (
global_toggle) and per-player global toggle via/bigbrother. - Per-player per-spy toggles.
- Toggle other players with
.toggle.otherspermissions. - Filters: excluded commands, players, worlds.
- Notifies staff with matching spy permission, excluding the trigger player, and the console.
- Configurable per-spy messages with placeholders.
- Status command lists enabled spy features.
- Runs on Spigot, Paper, and Purpur
Commands
All /bigbrother subcommands also require bigbrother.use because the command’s base permission is checked first.
| Command | Description | Permission |
|---|---|---|
/bigbrother |
Toggle all spy features for yourself | bigbrother.use |
/bigbrother help |
Show help | bigbrother.use |
/bigbrother status |
Show enabled spy features | bigbrother.use |
/bigbrother reload |
Reload configuration | bigbrother.use + bigbrother.reload |
/bigbrother commands [player] |
Toggle command spy | bigbrother.use + bigbrother.commandspy.toggle; other player requires bigbrother.commandspy.toggle.others |
/bigbrother signs [player] |
Toggle sign spy | bigbrother.use + bigbrother.signspy.toggle; other player requires bigbrother.signspy.toggle.others |
/bigbrother anvils [player] |
Toggle anvil spy | bigbrother.use + bigbrother.anvilspy.toggle; other player requires bigbrother.anvilspy.toggle.others |
/bigbrother books [player] |
Toggle book spy | bigbrother.use + bigbrother.bookspy.toggle; other player requires bigbrother.bookspy.toggle.others |
/bigbrother portals [player] |
Toggle portal spy | bigbrother.use + bigbrother.portalspy.toggle; other player requires bigbrother.portalspy.toggle.others |
Spy Details
- Command: logs commands before execution. Respects
filters.excluded_commands(matched case-insensitively against the command name, without the leading/). Placeholders:{player},{command}. - Sign: logs sign edits (
SignChangeEvent) and right-click sign interactions (PlayerInteractEvent). Placeholders:{player},{sign_lines}. Only the front side of the sign is currently reported. - Anvil: logs taking the result from an anvil (slot 2). Placeholders:
{player},{old_name},{new_name}.{old_name}is the input item’s display name, or its material key if it has no custom name. - Book: logs book edits. Placeholders:
{player},{title},{preview}.{preview}is the first page, truncated to 50 characters. - Portal: logs portal travel (
PlayerPortalEvent). Placeholders:{player},{from_world},{to_world}. End-portal teleports are not covered (they firePlayerTeleportEvent).
Persistence
Per-player spy state is held in memory only and is not persisted across server restarts. State is also dropped when a player quits, so reconnecting players start from enabled_by_default.
Configuration
config-version: schema version for migration.global_toggle: server-wide master switch.enabled_by_default: whether new players start with all spies enabled.spy.<type>.enabled: enable/disable spy type.spy.<type>.message: message format.filters.excluded_commands: commands ignored by command spy (case-insensitive).filters.excluded_players: players ignored by all spies (case-insensitive).filters.excluded_worlds: worlds ignored by all spies (case-sensitive).messages: plugin command/status/help messages. Includesstate_enabled/state_disabled(used as{state}), and thehelp_*keys that drive/bigbrother help.
Default spy keys: command, sign, anvil, book, portal.
Dependencies
Bundles Adventure (adventure-platform-bukkit) inside its JAR,
relocated to com.chalwk.libs.adventure. No external dependencies.
Changelog
1.0.3
Fixed
- Reload no longer rewrites
config.yml. Previously the plugin calledYamlConfiguration#saveon every reload, which silently stripped every comment and reformatted the file. Comments and formatting are now preserved across reloads.
Changed
- Adventure (
adventure-platform-bukkit) is now shaded into the plugin JAR and relocated tocom.chalwk.libs.adventure. Runs on Spigot, Paper, and Purpur.
Internal
MessageHelperis now an instance class wrappingBukkitAudiences, created inonEnableand closed inonDisable.BigBrotherCommandandSpyListenernow receive theMessageHelperinstance via constructor rather than calling a static method.- Command argument parsing now uses
Locale.ROOTfor case-insensitive comparison, matching the collection convention. ConfigManagerguards against a missing embeddedconfig.ymland no longer assumesconfigFileis set beforereloadConfigruns.
1.0.2
- Book spy now uses the non-deprecated
BookMeta#page(int)API. No behavioural change, but the plugin no longer emits a deprecation warning at build time and is compatible with future Paper releases that removegetPages().
1.0.0
- Internal development builds.