▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Плагины/SomeFreeze
SomeFreeze

SomeFreeze

A cheat-check (freeze) plugin for Paper 1.16.5. Moderators can summon suspected players for a timed review, communicate in a private check chat, detect AnyDesk IDs, track AFK activity, and record outcomes with optional MySQL storage.

Оцените первым
41
1

SomeFreeze

A cheat-check (freeze) plugin for Paper 1.16.5. Moderators can summon suspected players for a timed review, communicate in a private check chat, detect AnyDesk IDs, track AFK activity, and record outcomes with optional MySQL storage.

Requirements

  • Paper 1.16.5 (or compatible Spigot fork)
  • Java 8+
  • ProtocolLib (optional, recommended) — improves AFK detection via client look packets. Place ProtocolLib.jar in libs/ before building, or install it on the server at runtime.

Build

mvn clean package

Output: target/SomeFreeze-1.0.1.jar

Commands

Main command: /freeze
Aliases: /sfreeze, /проверка

CommandDescriptionPermission
/freeze <player>Start a cheat check on a playersomefreeze.use
/freezeEnd the active check with status Cleansomefreeze.use
/freeze <player> (again)If you are already checking that player, ends the check as Cleansomefreeze.use
/freeze checkafk [player]Check whether a player is AFK (defaults to your current check target)somefreeze.checkafk
/freeze history <player>Show the last 15 check records for a playersomefreeze.history
/freeze finish <reason>End the check with a configured reason (runs associated commands)somefreeze.finish
/freeze time stopPause the ban countdown (e.g. after AnyDesk is shared)somefreeze.time
/freeze time startResume the ban countdownsomefreeze.time

Permissions

PermissionDescriptionDefault
somefreeze.useStart/end checksop
somefreeze.checkafkUse /freeze checkafkop
somefreeze.historyView check historyop
somefreeze.finishFinish checks with a reasonop
somefreeze.timePause/resume the timerop
somefreeze.notifyReceive check notificationsop
somefreeze.bypassIgnore freeze restrictions (movement, inventory, etc.)false
somefreeze.adminGrants all permissions aboveop

How a check works

  1. Start — A moderator runs /freeze <player>. The suspect is frozen in place, teleported to the configured check location (optional), and linked to that moderator for the session.
  2. Restrictions — While frozen, the player cannot move, open inventories, interact, drop items, take damage, or run most commands (except chat-related commands and /freeze). Players with somefreeze.bypass are unaffected.
  3. Timer — A countdown runs (default 7 minutes). The moderator sees a BossBar with time remaining. When it reaches zero, configurable commands run (e.g. ban) via on-time-expire.
  4. Reminders — On a configurable interval, the suspect receives chat instructions, an optional clickable AnyDesk link, and a title/subtitle overlay.
  5. AnyDesk — If the suspect posts a 9–10 digit ID in chat (regex-configurable), the moderator is notified and activity is recorded.
  6. Private chat — Public chat is cancelled during a check; messages between moderator and suspect are routed privately, with an optional copy-to-clipboard button.
  7. Timer control/freeze time stop pauses the countdown (useful after screen sharing); /freeze time start resumes it.
  8. End/freeze or /freeze <same player> marks the player Clean, restores their saved location, and saves history. /freeze finish <reason> applies a configured outcome and commands.
  9. Disconnect — If the suspect quits during an active check, reasons.left commands run automatically (e.g. ban for leaving).

AFK detection

The plugin tracks player activity globally:

  • Inventory clicks, drags, and closes
  • Hotbar slot changes
  • Camera rotation (movement without position change)
  • ProtocolLib look packets (when enabled)

Settings:

  • settings.afk-threshold-seconds — inactivity time after which /freeze checkafk reports AFK (default 30s)
  • settings.freeze-block-afk-seconds — players inactive longer than this cannot be called for a check (default 180s / 3 min)

During an active check, inactivity is tracked per session as well.

Check history

Every completed check is logged with target, moderator, status, reason, and timestamp.

  • YAML (default): plugins/SomeFreeze/history.yml
  • MySQL: enable in config; uses HikariCP (shaded into the JAR)

View with /freeze history <player> (last 15 entries).

Configuration

Settings (settings)

KeyDescriptionDefault
check-duration-secondsTime until auto-action on expiry420 (7 min)
reminder-interval-secondsInterval for chat/title reminders5
teleport-on-freezeTeleport suspect to check coordstrue
world, x, y, z, yaw, pitchCheck room locationworld @ 0.5, 100, 0.5
restore-locationReturn player to pre-check position when donetrue
execute-commands-as-moderatorRun ban/commands as the moderator (fallback: console)true
anydesk-patternRegex to detect AnyDesk ID in chat\d{9,10}
afk-threshold-secondsAFK threshold for checkafk30
freeze-block-afk-secondsBlock /freeze if player is AFK this long180
afk.track-inventoryTrack inventory activitytrue
afk.track-hotbarTrack hotbar changestrue
afk.track-lookTrack camera rotationtrue
afk.look-sensitivityMinimum look delta to count as activity2.0
afk.use-protocollibUse ProtocolLib for look packetstrue

Messages (messages)

All plugin messages support placeholders (see below). Notable sections:

  • freeze-chat — lines sent to the suspect on start and each reminder
  • anydesk-link — clickable link appended after the second chat line
  • freeze-title / freeze-subtitle — title overlay (supports gradients)
  • moderator-bossbar — BossBar title, color, style, and progress for the moderator
  • private-chat-format-sender / private-chat-format-receiver — private check chat
  • private-chat-copy — copy button next to private messages

Finish reasons (reasons)

Each entry under reasons defines:

  • display — shown in /freeze finish success message
  • status — saved to history
  • commands — run when that reason is chosen (placeholders supported)

Default keys: cheats, refuse, ignore, left, clean.

Time expiry (on-time-expire)

Commands executed when the timer runs out without being paused (if not already finished).

Message colors

Supported in config strings:

  • Legacy: &a, &c, …
  • Hex: &#FF5555 or #FF5555
  • Gradients: <gradient:#FF0000:#FFFF00>text</gradient>

Placeholders

{player}, {target}, {moderator}, {time_left}, {time}, {reason}, {status}, {anydesk}, {date}, {prefix}, {message}

MySQL

mysql:
  enabled: true
  host: localhost
  port: 3306
  database: minecraft
  username: root
  password: password
  table-prefix: sf_

When enabled: false, history is stored in plugins/SomeFreeze/history.yml.

Example on-time-expire / reason commands

on-time-expire:
  commands:
    - "ban {target} Failed check within 7 minutes"

reasons:
  cheats:
    display: "&cCheats"
    status: "Banned (cheats)"
    commands:
      - "ban {target} Cheats during check"
  clean:
    display: "&aClean"
    status: "Clean"
    commands: []

Commands can be prefixed with / or not; they are dispatched as the moderator (or console if offline / setting disabled).

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

1.16.x

Платформы

Поддерживаемые окружения

Сервер

Зависимости

Ссылки


Создатели

Детали

Лицензия:
Опубликован:4 месяца назад
Обновлён:1 месяц назад
Главная