BigBrother: Difference between revisions
Created page with "BigBrother is a staff side auditing plugin. It watches for commands run by server operators (OPs) and posts a log of each one to a Discord channel, so server owners have a record of what admin actions were taken, by whom, and where<blockquote>This plugin has no player-facing commands. it runs silently in the background and reports to Discord</blockquote> == What BigBrother Does == * Watches every command run by a player with '''OP status''' * Also tracks '''gamemode ch..." |
No edit summary |
||
| (4 intermediate revisions by one other user not shown) | |||
| Line 1: | Line 1: | ||
BigBrother | __NOTOC__ | ||
<div style="background: linear-gradient(135deg, #0b132b 0%, #1c2541 50%, #3a506b 100%); border: 2px solid #e0a96d; border-radius: 12px; padding: 2.5em 1.5em; text-align: center; color: #ffffff; box-shadow: 0 4px 20px rgba(0,0,0,0.3); margin-bottom: 2em;"> | |||
<h1 style="border: none; color: #f4a261; font-family: 'Georgia', serif; font-size: 2.3em; margin: 0 0 0.3em 0; padding: 0; text-shadow: 0 2px 4px rgba(0,0,0,0.5);">BigBrother Plugin Documentation</h1> | |||
<p style="font-size: 1.1em; color: #e0e1dd; max-width: 650px; margin: 0 auto; line-height: 1.5;">Staff-side auditing plugin for tracking administrative commands, gamemode alterations, and sensitive actions across AquilaPRJ.</p> | |||
</div> | |||
== | <div style="background: #eef2f6; border-left: 4px solid #f4a261; border-radius: 0 8px 8px 0; padding: 1.2em 1.5em; margin-bottom: 2em; box-shadow: 0 2px 4px rgba(0,0,0,0.05);"> | ||
<p style="margin: 0; font-style: italic; color: #1e293b; line-height: 1.6;"><b>Notice:</b> This plugin has no player-facing commands. It runs silently in the background and reports directly to Discord.</p> | |||
</div> | |||
<div style="background: #ffffff; border: 1px solid #d1d5db; border-radius: 8px; padding: 1.5em; box-shadow: 0 2px 4px rgba(0,0,0,0.05); margin-bottom: 2em;"> | |||
<h2 style="border-bottom: 2px solid #e0a96d; color: #0b132b; margin-top: 0; padding-bottom: 0.3em; font-family: 'Georgia', serif;">What BigBrother Does</h2> | |||
<p style="line-height: 1.6; color: #374151; margin-bottom: 1em;">BigBrother provides a reliable audit trail for server owners to record administrative actions, identifying who performed an action, what they executed, and where they were standing.</p> | |||
<ul style="color: #374151; line-height: 1.6; margin-top: 0; padding-left: 1.5em;"> | |||
<li><b>Command Tracking:</b> Watches every command run by any player possessing the <code>bigbrother.watched</code> permission.</li> | |||
<li><b>Gamemode Monitoring:</b> Specifically tracks gamemode modifications, even those triggered through menus or other plugins rather than a typed <code>/gamemode</code> command.</li> | |||
<li><b>Discord Integration:</b> Sends structured reports to a designated Discord webhook containing the player's name, UUID, skin thumbnail, exact command, world, exact coordinates, and a timestamp.</li> | |||
<li><b>Console Fallback:</b> Logs the exact same information directly to the server console if no webhook URL is configured.</li> | |||
</ul> | |||
</div> | |||
== How It Decides What to Log = | <div style="background: #ffffff; border: 1px solid #d1d5db; border-radius: 8px; padding: 1.5em; box-shadow: 0 2px 4px rgba(0,0,0,0.05); margin-bottom: 2em;"> | ||
<h2 style="border-bottom: 2px solid #e0a96d; color: #0b132b; margin-top: 0; padding-bottom: 0.3em; font-family: 'Georgia', serif;">How It Decides What to Log</h2> | |||
<ul style="color: #374151; line-height: 1.6; margin-top: 0; padding-left: 1.5em;"> | |||
<li><b>Permission Gated:</b> Only players with the <code>bigbrother.watched</code> permission are tracked; everyone else is entirely ignored.</li> | |||
<li><b>Smart Filtering:</b> Direct <code>/gamemode</code> text commands are skipped by the command watcher because the standalone gamemode watcher already logs the resulting state change, preventing duplicate alerts and capturing GUI-based transitions.</li> | |||
<li><b>Full Op Coverage:</b> Everything else typed as a command by an operator or watched user is immediately captured and reported.</li> | |||
</ul> | |||
</div> | |||
<div style="background: #ffffff; border: 1px solid #d1d5db; border-radius: 8px; padding: 1.5em; box-shadow: 0 2px 4px rgba(0,0,0,0.05); margin-bottom: 2em;"> | |||
<h2 style="border-bottom: 2px solid #e0a96d; color: #0b132b; margin-top: 0; padding-bottom: 0.3em; font-family: 'Georgia', serif;">Who's Currently Watched</h2> | |||
<p style="line-height: 1.6; color: #374151; margin-bottom: 1em;">The <code>bigbrother.watched</code> permission is managed through LuckPerms groups rather than assigned to individual player accounts. Users placed into these groups are monitored automatically:</p> | |||
== | <table class="wikitable" style="width: 100%; border-collapse: collapse; margin-bottom: 1em;"> | ||
<thead> | |||
<tr style="background: #f1f5f9; text-align: left;"> | |||
<th style="padding: 0.75em; border: 1px solid #cbd5e1; color: #0b132b;">LuckPerms Group</th> | |||
<th style="padding: 0.75em; border: 1px solid #cbd5e1; color: #0b132b;">Status</th> | |||
</tr> | |||
</thead> | |||
<tbody> | |||
<tr> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;"><code>gamestaff</code></td> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;">Watched automatically</td> | |||
</tr> | |||
<tr style="background: #f8fafc;"> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;"><code>serverguide</code></td> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;">Watched automatically</td> | |||
</tr> | |||
<tr> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;"><code>staff</code></td> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;">Watched automatically</td> | |||
</tr> | |||
<tr style="background: #f8fafc;"> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;"><code>OP</code></td> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;">Watched automatically</td> | |||
</tr> | |||
</tbody> | |||
</table> | |||
== | <p style="line-height: 1.6; color: #374151; margin-bottom: 0;">To add monitoring for another group, grant it the <code>bigbrother.watched</code> permission node inside LuckPerms. To stop monitoring, revoke the permission or remove the players from the group.</p> | ||
</div> | |||
<div style="background: #ffffff; border: 1px solid #d1d5db; border-radius: 8px; padding: 1.5em; box-shadow: 0 2px 4px rgba(0,0,0,0.05); margin-bottom: 2em;"> | |||
<h2 style="border-bottom: 2px solid #e0a96d; color: #0b132b; margin-top: 0; padding-bottom: 0.3em; font-family: 'Georgia', serif;">What Shows Up in Discord</h2> | |||
<p style="line-height: 1.6; color: #374151; margin-bottom: 1em;">Alerts appear inside Discord formatted as a clean rich embed titled <b>"BigBrother Alert"</b>, complete with the player's skin thumbnail and execution timestamp.</p> | |||
<table class="wikitable" style="width: 100%; border-collapse: collapse;"> | |||
<thead> | |||
<tr style="background: #f1f5f9; text-align: left;"> | |||
<th style="padding: 0.75em; border: 1px solid #cbd5e1; color: #0b132b; width: 25%;">Embed Field</th> | |||
<th style="padding: 0.75em; border: 1px solid #cbd5e1; color: #0b132b;">Contents</th> | |||
</tr> | |||
</thead> | |||
<tbody> | |||
<tr> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;"><b>Player</b></td> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;">The operator or staff member's username</td> | |||
</tr> | |||
<tr style="background: #f8fafc;"> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;"><b>UUID</b></td> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;">Their unique player identification code</td> | |||
</tr> | |||
<tr> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;"><b>Command</b></td> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;">The exact command text enclosed in a code block</td> | |||
</tr> | |||
<tr style="background: #f8fafc;"> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;"><b>World</b></td> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;">The specific game world where the action occurred</td> | |||
</tr> | |||
<tr> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;"><b>Location</b></td> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;">Exact X, Y, and Z coordinate metrics</td> | |||
</tr> | |||
</tbody> | |||
</table> | |||
</div> | |||
<div style="background: #ffffff; border: 1px solid #d1d5db; border-radius: 8px; padding: 1.5em; box-shadow: 0 2px 4px rgba(0,0,0,0.05); margin-bottom: 2em;"> | |||
<h2 style="border-bottom: 2px solid #e0a96d; color: #0b132b; margin-top: 0; padding-bottom: 0.3em; font-family: 'Georgia', serif;">Server Configuration</h2> | |||
<p style="line-height: 1.6; color: #374151; margin-bottom: 1em;">Administrators can configure the plugin behavior directly within its configuration file:</p> | |||
<table class="wikitable" style="width: 100%; border-collapse: collapse;"> | |||
<thead> | |||
<tr style="background: #f1f5f9; text-align: left;"> | |||
<th style="padding: 0.75em; border: 1px solid #cbd5e1; color: #0b132b; width: 30%;">Setting</th> | |||
<th style="padding: 0.75em; border: 1px solid #cbd5e1; color: #0b132b;">Description</th> | |||
</tr> | |||
</thead> | |||
<tbody> | |||
<tr> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;"><code>webhook-url</code></td> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;">The Discord webhook URL where alerts are dispatched. <b>Required</b>—without this, alerts will not post externally.</td> | |||
</tr> | |||
<tr style="background: #f8fafc;"> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;"><code>server-name</code></td> | |||
<td style="padding: 0.75em; border: 1px solid #cbd5e1;">A text label for identifying individual servers in multi-server networks. <i>Currently unused.</i></td> | |||
</tr> | |||
</tbody> | |||
</table> | |||
</div> | |||
[[Category:Plugins]] | |||
Latest revision as of 13:08, 22 August 2026
BigBrother Plugin Documentation
Staff-side auditing plugin for tracking administrative commands, gamemode alterations, and sensitive actions across AquilaPRJ.
Notice: This plugin has no player-facing commands. It runs silently in the background and reports directly to Discord.
What BigBrother Does
BigBrother provides a reliable audit trail for server owners to record administrative actions, identifying who performed an action, what they executed, and where they were standing.
- Command Tracking: Watches every command run by any player possessing the
bigbrother.watchedpermission. - Gamemode Monitoring: Specifically tracks gamemode modifications, even those triggered through menus or other plugins rather than a typed
/gamemodecommand. - Discord Integration: Sends structured reports to a designated Discord webhook containing the player's name, UUID, skin thumbnail, exact command, world, exact coordinates, and a timestamp.
- Console Fallback: Logs the exact same information directly to the server console if no webhook URL is configured.
How It Decides What to Log
- Permission Gated: Only players with the
bigbrother.watchedpermission are tracked; everyone else is entirely ignored. - Smart Filtering: Direct
/gamemodetext commands are skipped by the command watcher because the standalone gamemode watcher already logs the resulting state change, preventing duplicate alerts and capturing GUI-based transitions. - Full Op Coverage: Everything else typed as a command by an operator or watched user is immediately captured and reported.
Who's Currently Watched
The bigbrother.watched permission is managed through LuckPerms groups rather than assigned to individual player accounts. Users placed into these groups are monitored automatically:
| LuckPerms Group | Status |
|---|---|
gamestaff |
Watched automatically |
serverguide |
Watched automatically |
staff |
Watched automatically |
OP |
Watched automatically |
To add monitoring for another group, grant it the bigbrother.watched permission node inside LuckPerms. To stop monitoring, revoke the permission or remove the players from the group.
What Shows Up in Discord
Alerts appear inside Discord formatted as a clean rich embed titled "BigBrother Alert", complete with the player's skin thumbnail and execution timestamp.
<thead> </thead> <tbody> </tbody>| Embed Field | Contents |
|---|---|
| Player | The operator or staff member's username |
| UUID | Their unique player identification code |
| Command | The exact command text enclosed in a code block |
| World | The specific game world where the action occurred |
| Location | Exact X, Y, and Z coordinate metrics |
Server Configuration
Administrators can configure the plugin behavior directly within its configuration file:
<thead> </thead> <tbody> </tbody>| Setting | Description |
|---|---|
webhook-url |
The Discord webhook URL where alerts are dispatched. Required—without this, alerts will not post externally. |
server-name |
A text label for identifying individual servers in multi-server networks. Currently unused. |