Snitch: Difference between revisions

start rewrite snitch page
(elaborate on renaming)
(start rewrite snitch page)
Line 1:
[[File:JukeAlertCheatsheet.png|thumb|350px| A summary of snitch mechanics on [[CivClassic]]. "JukeAlert" singlerefers imageto summarythe name of the snitch plugin.]]
 
A '''snitch''' is a block commonly included in civ servers which records nearby player movement or actions. Snitches provide different abilities based on their variant. Some will send a message to a [[NameLayer|NameLayer group]] when it detects player movement, allowing for real-time tracking of players. Other snitches will log nearby actions and can be examined after the fact to determine a recounting of events, even if nobody was present at the time.
'''Snitches''' are blocks which record the actions of other players in a radius around them. They come in two varieties: noteblocks and jukeboxes. Noteblocks only record player movement, while jukeboxes record all player actions, including breaking blocks and opening chests. Noteblocks and jukeboxes must be [[reinforced]] to turn into snitches. Snitches are managed by the '''JukeAlert''' plugin ([https://github.com/CivMC/JukeAlert source]).
 
Snitches are frequently placed in high-traffic areas to provide real-time insight into player movement, and in high-value areas so that any attacks can be traced back to a particular player or group.
== Creation ==
 
Historically, [[Citadel|reinforced]] noteblocks and jukeboxes have been used as snitch blocks, each providing different capabilities.
To create a snitch, place down a noteblock or jukebox and reinforce it. Snitches have a cube area with an 11 block radius, so a total of a 23x23x23 block area centered on the snitch.
 
First introduced by [[Civcraft]], snitches have been included in every [[mainline]] civ server since.
Snitches can be given a name with the <code>/janame <name></code> command, which will display on snitch notifications. This command will rename the snitch you are currently standing inside the radius of. If there are multiple such snitches, the nearest snitch will be renamed. By default, snitches have an empty string as their name.
 
== Breaking SnitchesMechanics ==
{| class="wikitable"
|-+
!Variant
| !Noteblock
| !Jukebox
|-
|Radius
|11 blocks (cube)
|11 blocks (cube)
|}-
|Dormancy Time
|4 weeks
|6 weeks
|-
|+Cull timesTime
|8 weeks
|12 weeks
|-
|Detects movement
|Y
|Y
|-
|Detects actions
|N
|Y
|-
|Preserves logs
|N
|Y
|}
 
=== Creation ===
Snitches have a unique interaction with [[NameLayer]] - once broken, they will print the name of the group they are reinforced to, along with the primary owner of the group. This is to allow players to determine who (perhaps with malintent) placed snitches on their land. This does not occur when culled snitches are broken.
To create a snitch, place a noteblock or jukebox and [[Citadel|reinforce]] it.
 
You can give use <code>/janame <name></code> to set the name of the nearest snitch, which will then use that name in its notifications. By default, a snitch's name is empty.
== Recording Movement ==
 
== Recording= Movement ===
Whenever a player not on a snitch's namelayer group (or a player who is on the snitch's namelayer group, but does not have the SNITCH_IMMUNE permission) enters the snitch's area, a notification is sent to the snitch's namelayer group. Players on the namelayer group must have the SNITCH_NOTIFICATIONS permission to see this notification.
When a player enters the radius of a snitch with the ability to detect movement, the snitch will send a message to the [[NameLayer|group]] it is reinforced to. The format of this message can vary depending on the server, but it generally has the form <code><player name> entered snitch at <snitch name> [world <x>,<y>,<z>]</code>.
 
Snitches that track movement will also track if a player logs in or logs out within their radius. This sends a message in the same way player movement does.
Note that throwing an ender pearl into a snitch field will not trigger the snitch, but moving inside afterwards will.
 
== Recording= Actions ===
By default, the notification has the form <code><player> entered snitch at <snitch name> [world <x>,<y>,<z>]</code>.
When a player takes one of a predefined list of actions within the radius of a snitch that can detect cations, the snitch will record that action so it can be viewed later. Unlike movement, the snitch will not broadcast actions in real time.
 
The following is an incomplete list of actions which snitches can log.
== Recording Actions ==
{| class="wikitable"
|+
!Name
!Description
|-
|
|A player broke a block.
|-
|
|A player opened a chest.
|-
|
|A player killed a mob (or another player).
|-
|
|A player mounted a horse.
|}
 
=== Breaking ===
Both noteblocks and jukeboxes record movement, but only jukeboxes record other player actions. Whenever a player performs an action - such as breaking a block, opening a chest, killing a mob, mounting a horse, etc - in the radius of a jukebox, a log entry is added to the jukebox.
Snitches haveWhen a uniqueplayer interactionbreaks witha [[NameLayer]]snitch -that onceis brokennot theirs, theyit will print the name of the group they are reinforced to, along with the primary owner of the group. This iswas added to allow players to determine who (perhaps with malintent)had placed snitches on their land. This does not occur when culled snitches are broken.
 
This mechanic was first introduced in [[CivClassic]].
=== Checking Logs ===
 
=== Checking Logs ===
To read the logs of a jukebox, stand in the radius of the jukebox and use the <code>/jainfo</code> command, which will output the logs to chat. You can also use the <code>/ja</code> command to open a GUI containing the logs. To perform either of these commands, the jukebox must be reinforced to a group you have the <code>READ_SNITCHLOG</code> permission on.
 
If a snitch preserves logs, you can run <code>/ja</code> to open an interface containing the logs of the nearest snitch. <code>/jainfo</code> can also be used to print the logs of the nearest snitch to the chat (only visible to you). You can run these commands only on snitches reinforced to a group you have permissions on.
 
<code>/jainfo</code> can take additional parameters in the syntax <code>/jainfo [<page number> or 'next'] [censor] [action=<action type>] [player=<username>]</code>. These parameters can be combined in any order.
 
{|class="wikitable"
|+
|+<code>/jainfo</code> parameters
!width="20%"| <code>/jainfo</code> Parameter
!width="30%"| Description
!width="50%"| Example
Line 56 ⟶ 109:
== Dormancy and Culling ==
 
Snitches need to be periodically refreshed by a player entering the snitch field who is on the snitch group with the namelayer <code>LIST_SNITCHES</code> permission. Snitches that are not refreshed will first become dormant and lose all functionality but once refreshed will become functional again, if a dormant snitch isn't refreshed however after more time it will become culled. A culled snitch has no functionality but also can't be refreshed, functionality can only be regained by breaking and replacing the snitch block. You can use /jalist to see if your snitches have become dormant or how long is left until a snitch becomes dormant or culled. When you refresh a snitch, the timer on /jalist won't be updated until the daily server restart.
 
{|class="wikitable"
|+Cull times
!| Type
!Domancy time
!| Cull time
|-
| Noteblock
|4 Weeks
| 8 Weeks
|-
| Jukebox
|6 Weeks
| 12 Weeks
|}
 
== Redstone InteractionsInteraction ==
 
Jukebox snitches can be configured to cause levers on the blocks on or adjacent to the jukebox sides to output a redstone pulse. This behavior which is disabled by default can be enabled with <code>/jaToggleLevers 1</code> and disabled by <code>/jaToggleLevers 0</code> in radius of snitch.
Line 101 ⟶ 139:
== Kira ==
 
[[Kira]] relays can be set up toso automaticallythat send snitchmovement notifications forare automatically relayed to a discord channel, in addition to being sent to a NameLayer group.
 
== Mods ==
 
The [https://github.com/Gjum/SnitchMod/ SnitchMod] mod by [[Gjum|GJum]] can be usefulused forto managingmanage snitches (1.18+).
 
== CommandsCommand Reference ==
 
{|class="wikitable"
|+ class="nowrap" | Commands
!| UsageCommand
!| FunctionDescription
|-
| <code>/jahelp</code>
| Display JukeAlertthe help menu.
|-
| <code>/ja</code>
| Open the in-game snitch GUIinterface.
|-
| <code>/jainfo [<page number> or 'next'] [censor] [action=<action type>] [player=<username>]</code>
Line 124 ⟶ 162:
|-
| <code>/jalist [group]</code>
| DisplayOpen snitchesan interface incontaining a GUIlist of snitches. If <code>group</code> is given, shows only snitches reinforced to that group will be displayed.
|-
| <code>/janame <name></code>
| NameSet the name of the closest snitch.
|-
| <code>/jalookup []<x>, <y>, <z></code>
| UseLook up a snitch by its coordinates. toThis will show thewhat namelayergroup the snitch is reinforced to. This command can only be run on snitches on groups you have permissions for.
|-
| <code>/jamute [group]</code>
| Ignore/StopTemporarily ignoringmute aor unmute movement notifications for snitches reinforced to <code>group</code>. LeavingIf the '<code>group'</code> parameteris emptynot willgiven, list theall ignored groups.
|-
| <code>/jaclear</code>
| ClearClears snitch logs from athe nearbyclosest snitch.
|-
| <code>/jatogglelevers <0,1></code>
| Enable (<code>1</Disabledcode>) or disable (<code>0</code>) the lever output functionality of the closest snitch.
|}
 
2,232

edits