This plugin is the
perfect solution for moderators.
Its features include:
-
Hiding coordinates in tracking mode.
-
The glow of the suspect for the spectator.
- BossBar and ActionBar.
-
Discord Webhook.
- Blocking interaction with chests in tracking mode.
- Blocking of certain commands in tracking mode.
- Limiting the distance of the observer's movement.
-
Logging of moderator's location, entered commands and chat messages.
XSpec simplifies control and maintains order on the server,
making moderation more efficient and secure.
Code (YAML):
# Available serializers: # LEGACY_AMPERSAND - "&c&lExample &c&9Text". # LEGACY_SECTION - "§c§lExample §c§9Text". # MINIMESSAGE - "<bold><red>Example</red> <blue>Text</blue></bold>". (https://webui.adventure.kyori.net/) # GSON - "[{"text":"Example","bold":true,"color":"red"},{"text":" ","bold":true},{"text":"Text","bold":true,"color":"blue"}]". (https://minecraft.tools/en/json_text.php/) # GSON_COLOR_DOWNSAMPLING - Same as GSON, but uses downsampling. serializer: LEGACY_AMPERSAND
main: # Lightweight and anonymous. Please keep enabled to support the author. bstats: true
# Highly optimized and stress-tested update checker. # Please keep enabled to always stay up to date with the latest version. check-for-updates: true
# After the player's nickname in the command you must enter the reason, # which will be stored in the logs need-reason: false
reasons: -
"cheats" -
"report" # If true, you can enter any reason, otherwise # if false, you can only enter pre-prepared reasons from the config (TabComplete is present) any-reason: false
# If true, it will require an exact match of reasons from the logged reasons, otherwise # if false, it will offer tab complete but will not complain that the reason is not from the logged reasons, # simply put, allow any reason but leave tab complete exact-reason: true
off-spec-on-gamemode-change: true
suspect-glow: true
bossbar-enabled: true
# Will message everyone who has xspec.notify them that someone has started spectating or finished notify: true
actionbar: true
# For spectator # When stopped, it teleports to the old location, not from the config return-to-old-location: false
# When stopped, the old game mode is enabled, not from the config return-to-old-gamemode: false
night-vision: true
# For spectator stop-gamemode: "SURVIVAL" # World and coordinates where player teleports to after a stop spec. teleport-world-name: "world" teleport-x: 0.5
teleport-y: 90.0
teleport-z: 0.5
# Leave it blank so it doesn't send anything webhook: "" bar-name: "&6Spectating behind player {0}" bar-color: WHITE
bar-overlay: PROGRESS
# Maximum distance in blocks at which a spectator can fly away. maximum-distance: 25.0
# {0} - Hours # {1} - Minutes # {2} - Seconds # {3} - Hours in total # {4} - Minutes in total # {5} - Seconds in total duration-format: "{0} h, {1} min, {2} sec" # Recommend second precision for log naming. date-pattern: "dd.MM.yyyy - HH:mm:ss" # Available time zones: # UTC - Coordinated Universal Time. # Europe/Moscow - Moscow Time. # America/New_York - Eastern Time (US & Canada). # Asia/Tokyo - Japan Standard Time. # For more time zones, refer to: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones time-zone: "Europe/Moscow" blocked-commands: -
"/sethome" -
"/setwarp" # Don't use \n, use {NL} for new line. # If the message is empty, it will not be sent. messages:
usage: "Command help:{NL}/spec go (Nickname) [?Reason]{NL}/spec off" unknown-subcommand: "Unknown subcommand." specify: "Please specify the suspect's nickname." specify-reason: "Please specify the reason." suspect-not-found: "The player could not be found." player-bypassed: "You can't spectating this player." cannot-spectate-self: "You cannot spectate yourself." no-spectate-spectator: "You cannot spectate a player who is already spectating." invalid-reason: "You must write a prepared reason." started: "You are now spectating {0}. Date: {1}" started-webhook: "{\"content\
":null,\"embeds\
":[{\"title\
":\"Spectating of `
{0
}` has begun.\
",\"description\
":\"Start date
: {1
}\\nReason
: {2
}\
",\"color\
":16711680}],\"attachments\
":[]}" started-notify: "Spectator {0} started spectating for {1} for the reason {2} in {3}." already-started: "You are already spectating someone." world-not-found: "&4The world for teleportation could not be found. Please contact an administrator." stopped: "You have stopped spectating. Date: {0}, Suspect: {1}" stopped-webhook: "{\"content\
":null,\"embeds\
":[{\"title\
":\"Spectating of `
{0
}` is complete.\
",\"description\
":\"End date
: {1
}\\nDuration
: {2
}\
",\"color\
":16745728}],\"attachments\
":[]}" stopped-notify: "Spectator {0} stopped spectating for {1} at {2} the duration was {3}." not-spectating: "You are not currently spectating anyone." suspect-left: "The player you were spectating ({0}) has left the server. Date: {1}" too-far: "You cannot move too far away while spectating." actionbar: "&bSuspect's nickname {0}, suspect's ping: {1}." command-blocked: "You cannot use this command while spectating." cannot-change-gamemode: "You can't change the gamemode during the spectating." stopped-by-gamemode-change: "Spectating stopped by changing the game mode. Date: {0}, Suspect: {1}"
If you have any questions, ideas or have discovered bugs,
feel free to write to our
Discord-server.