MC-XiaoHei / ISeeYou

MIT License
41 stars 6 forks source link

ISeeYou

Logo

Also known as ICU

GitHub release GitHub Actions CI License: MIT GitHub all releases

中文 | English

[!WARNING] This plugin can only run on servers using the Leaves core, it does not support other cores!

The developer only guarantees that the latest stable version of the ISeeYou plugin can run normally on the latest version of the Leaves core, and does not maintain compatibility with older versions.

Introduction

ISeeYou can use the Replay API provided by the Leaves core to record every move of the player in .mcpr format.

Features

Supported Anti-cheat Plugins

Name Status
Themis Anti Cheat ✅ Available
Matrix ✅ Available
Vulcan Anti-Cheat ⚠️ In Public Beta
AC - Negativity ⚠️ In Public Beta
Grim Anticheat ❌ Not Available

[!TIP] If you want us to add support for more anti-cheat plugins, please create an issue for feedback!

Compatible Minecraft versions

The list of what version of the ISeeYou you'll need to run on a specific version of Leaves is as follows:

Leaves version Compatible versions Latest compatible
version
Minimum Java
version required
to run latest version
1.20.4 v1.0.0 - v1.2.1 v1.2.1 17
1.20.6 v1.2.2 - v1.3.0 v1.3.0 21
1.21 v1.3.0 v1.3.0 21

Instructions for use

Dependencies

Dependencies Optional
Server Leaves Required
Themis Anti Cheat 💡 Optional
Matrix AntiCheat 💡 Optional
Vulcan Anti-Cheat 💡 Optional
AC - Negativity 💡 Optional
Grim Anticheat 💡 Optional

[!IMPORTANT] Before installing anti-cheat plugins, please make sure that their required plugins are installed to avoid compatibility issues.

Tutorial

  1. Install the plugin: Place the plugin file in the plugin directory of the Leaves server and restart the server.

  2. Configure settings: Edit the plugins/ISeeYou/config.toml file and adjust the recording parameters and anti-cheat settings as needed.

Config


# Configuration:
deleteTmpFileOnLoad = true # Delete temporary files on load.
pauseInsteadOfStopRecordingOnPlayerQuit = false # Pause recording instead of stopping when player quits.
recordPath = "replay/player/${name}@${uuid}" # Recording storage path template, supports ${name} and ${uuid} variables.
asyncSave = false # Async save recording
bStats = true

[pauseRecordingOnHighSpeed]
enabled = false  # Whether to enable pausing recording on high speed, which pauses recording when the player moves at high speeds.
threshold = 20.0  # Speed threshold to trigger pausing recording on high speed.

[filter]
checkBy = "name"  # Basis for blacklist/whitelist check, can be "name" or "uuid", default is "name", indicating player name.
recordMode = "blacklist"  # Recording mode, either blacklist or whitelist.
blacklist = []  # Blacklist, empty means no players are blocked.
whitelist = []  # Whitelist, empty means no players are recorded.

[clearOutdatedRecordFile]
enabled = false  # Whether to enable cleaning function.
interval = 24  # Cleaning interval (hours).
days = 7  # Number of days to retain outdated recording files.

[recordSuspiciousPlayer]
enableThemisIntegration = false  # Whether to enable recording of suspicious players monitored by Themis reports.
enableMatrixIntegration = false  # Whether to enable recording of suspicious players monitored by Matrix reports.
enableVulcanIntegration = false  # Whether to enable recording of suspicious players monitored by Vulcan reports.
enableNegativityIntegration = false  # Whether to enable recording of suspicious players monitored by Negativity reports.
enableGrimACIntegration = false  # Whether to enable recording of suspicious players monitored by GrimAC reports.
recordMinutes = 5  # Recording time for suspicious players (minutes).
recordPath = "replay/suspicious/${name}@${uuid}"  # Suspicious player recording file path template, supports ${name} and ${uuid} variables.

# [instantReplay] Instant replay settings
[instantReplay]
enabled = false  # Whether to enable instant replay functionality.
replayMinutes = 5  # Specifies how many minutes of gameplay can be traced back (minutes).
createMinutes = 1  # Specifies how often a camera is created (minutes).
recordPath = "replay/instant/${name}@${uuid}"  # Storage path template for instant replay recordings, supports ${name} and ${uuid} variables.

[!WARNING] Enabling instant replay, recording suspicious players, and other features may increase server performance consumption.

Commands

/photographer create <name> and /instantreplay commands can only be executed by players in the game, not in the server console.

/photographer create <name> [location] command can be executed in the console.

Before using the /instantreplay command, make sure that the corresponding feature is enabled in the plugin configuration file.

Command Description Example
photographer create <name> [location] Create a camera /photographer create MyCamera
/photographer create MyCamera <x> <y> <z>
- <name>: Camera name, limited to 5 to 16 characters
- [location] (optional): Camera location, format is x y z coordinates.
If not specified, it defaults to the current position of the executing player.
photographer remove <name> Remove a camera /photographer remove MyCamera
- <name>: The name of the camera to remove
photographer list Display all cameras in the list /photographer list
instantreplay Create an instant replay recording for the executing player /instantreplay

Download

Build from scratch

1. Clone the project source code

Use the following command to clone the project to your local environment:

git clone https://github.com/MC-XiaoHei/ISeeYou.git

2. Compile and package

Navigate to the project root directory and execute the following command to build the jar package:

./gradlew shadowJar

After compilation is complete, you will find the output file named ISeeYou.jar in the build/libs directory.

Author Information

Precautions

Thanks for the support

Thank you for using the ISeeYou plugin! If you encounter any problems or have any suggestions during use, please feel free to contact the author or submit an issue to the GitHub repository.

Statistics