MekhaModeration - Современная утилита для персонала | Sprites, MiniMessage , TextShadow

Платно Плагин MekhaModeration - Современная утилита для персонала | Sprites, MiniMessage , TextShadow 1.1

Нет прав для приобретения ("490.00" ₽)
Поддерживаемые версии
  1. 1.20
  2. 1.21
  3. 26.1
  4. 26.2
  5. 26.3
Ядра и Прокси
  1. Paper
Минимальная версия Java
17
Всем привет, форумчане. :mc_37-0:
Написал для вас плагин MekhaModeration (1.20+)

Демонстрация плагина -
Для просмотра этого контента нам потребуется ваше согласие на установку файлов cookie третьих лиц.
Более подробную информацию можно найти на нашей странице cookie.

Плагин выполняет функции:

- Репортов (/report , /reports)
- Проверки на читы (/check)
- Система рейтинга (/rating)
- Система наказаний (/ban /mute и тп)
- Система быстрой выдачи наказаний (/punish)

Репорты: ​

Если игрок заметил нарушителя на сервере, то он может отправить на того жалобу, а КП её будет рассматривать. В плагине есть 2 вариации репортов:

1. Чисто на командах /report (nick) (reason) (comment)
2. Гуи меню, где можно удобно выбрать причину и тп

См ниже:
1791722666400.png
2026-10-11 18-45-28.gif



Проверка на читы:​
По команде /check (nick) модератор может вызвать игрока на проверку читов, есть 2 способа телепортации:

Freeze - игрок фризится на своём месте, после проверки размораживается
Teleport - игрока телепортирует на N точку, после успешной проверки через N секунд его телепортирует на бывшую локацию

Чат проверки: во время проверки у игрока и модератора появляется отдельный чат, который логируется плагином, в чат вашего плагина игрок писать не будет, если это конечно предусмотрено вашим плагином)

Система анти-АФК: если модератор захочет вызвать игрока на проверку, а тот стоит в АФК, то плагин вызовет на проверку игрока после его любого действия. Также модератор может этого не ждать и поспешно вызвать на проверку командой /check force

Кастомный ник-панель игрока во время проверки: когда подозреваемого вызывают на проверку, его ник меняется на информацию:
1791723330996.png


Демонстрация проверки:
2026-10-11 18-53-45.gif



Система рейтинга: ​

У каждого игрока есть свой рейтинг, который складывается исходя из успешных/ложных репортов, также присутствует топ по рейтингу:
1791723470220.png



Система punish:​

Удобная утилита для модерация, которая помогает не заучивать каждое правило сервера и его длительность, а быстро выдать наказание

См ниже:
2026-10-11 18-59-00.gif



База данных:​

Данные плагина могут храниться в SQLITE / MYSQL / MARIADB

Конфиг плагина:
Код:
server-name: survival

# ─────────────────────────────── База данных ───────────────────────────────
storage:
  # SQLITE — файл в папке плагина (один сервер)
  # MYSQL / MARIADB — общая база для всех серверов сети (баны и жалобы общие)
  type: SQLITE
  sqlite-file: database.db
  table-prefix: mm_
  mysql:
    host: localhost
    port: 3306
    database: minecraft
    username: root
    password: ''
    pool-size: 4
    properties:
      useSSL: 'false'
      useUnicode: 'true'
      characterEncoding: utf8
      autoReconnect: 'true'

# ─────────────────────────────── Сеть серверов ─────────────────────────────
# Velocity/BungeeCord: мгновенная синхронизация уведомлений, мутов и жалоб между серверами,
# кик забаненного игрока с любого сервера, перенос модератора на сервер нарушителя.
# Требует storage.type: MYSQL (общая база) и bungee-plugin-message-channel = true в velocity.toml.
network:
  enabled: false
  # Префикс сообщений, пришедших с другого сервера
  remote-prefix: '&#495057[&#adb5bd{server}&#495057] '
  log-remote-to-console: false

# ─────────────────────────────── Команды ───────────────────────────────────
# Любую команду можно переименовать, добавить алиасы, сменить право или выключить.
commands:
  report:
    enabled: true
    name: report
    aliases:
    - rep
    - жалоба
    - репорт
    permission: mekhamod.report
  reports:
    enabled: true
    name: reports
    aliases:
    - reportlist
    - жалобы
    permission: mekhamod.reports
  punish:
    enabled: true
    name: punish
    aliases:
    - pun
    - наказать
    permission: mekhamod.punish
  ban:
    enabled: true
    name: ban
    aliases:
    - mban
    permission: mekhamod.ban
  tempban:
    enabled: true
    name: tempban
    aliases:
    - tban
    - mtempban
    permission: mekhamod.ban
  ipban:
    enabled: true
    name: ipban
    aliases:
    - banip
    - mipban
    permission: mekhamod.ipban
  mute:
    enabled: true
    name: mute
    aliases:
    - mmute
    permission: mekhamod.mute
  tempmute:
    enabled: true
    name: tempmute
    aliases:
    - tmute
    permission: mekhamod.mute
  warn:
    enabled: true
    name: warn
    aliases:
    - mwarn
    permission: mekhamod.warn
  kick:
    enabled: true
    name: kick
    aliases:
    - mkick
    permission: mekhamod.kick
  unban:
    enabled: true
    name: unban
    aliases:
    - pardon
    - munban
    permission: mekhamod.unban
  unmute:
    enabled: true
    name: unmute
    aliases:
    - munmute
    permission: mekhamod.unmute
  unwarn:
    enabled: true
    name: unwarn
    aliases: []
    permission: mekhamod.unwarn
  history:
    enabled: true
    name: history
    aliases:
    - hist
    - mhistory
    - история
    permission: mekhamod.history
  check:
    enabled: true
    name: check
    aliases:
    - проверка
    - revise
    # Право не задаётся: проверяемый должен иметь доступ к /check admit.
    # Остальные подкоманды требуют mekhamod.check
    permission: ''
  rating:
    enabled: true
    name: rating
    aliases:
    - рейтинг
    permission: mekhamod.rating
  admin:
    enabled: true
    name: mekhamoderation
    aliases:
    - mm
    - modmenu
    - staffmenu
    permission: mekhamod.menu

# ─────────────────────────────── Меню ──────────────────────────────────────
menus:
  # Подтверждать наказания/отклонения через меню confirm.yml
  confirm-actions: true
  # Что открыть после выдачи наказания из меню: close или id меню (history, reports, ...)
  after-punish: close
  click-sound: ui.button.click 0.6 1.2
  click-cooldown-ms: 150
  history-limit: 270
  check-history-limit: 112
  players-include-self: false

# Ввод текста в чат (комментарий к жалобе, своя причина/срок)
chat-input:
  timeout-seconds: 60
  cancel-words:
  - отмена
  - cancel
  - стоп
  # Слова «пропустить» для необязательного комментария
  skip-words:
  - '-'
  - пропустить
  - skip
  - нет

# ─────────────────────────────── Жалобы ────────────────────────────────────
reports:
  # Кулдаун между жалобами (умножается на cooldown-multiplier уровня рейтинга)
  cooldown: 60s
  # Повторная жалоба на того же игрока
  same-target-cooldown: 10m
  max-open-per-reporter: 5
  allow-offline-targets: false
  max-comment-length: 200
  # Сколько последних сообщений нарушителя прикладывать к жалобе
  chat-log-size: 15
  # Команды, которые тоже пишутся в лог чата (личные сообщения)
  log-commands:
  - msg
  - tell
  - w
  - m
  - r
  - reply
  - pm
  - whisper
  # Через сколько открытая жалоба закрывается автоматически (0 — никогда)
  expire-after: 24h
  # Как часто перечитывать жалобы из БД (для нескольких серверов на одной MySQL, 0 — выкл)
  sync-interval: 0
  # Напоминание персоналу о непрочитанных жалобах (0 — выкл)
  reminder-interval: 5m
  notify-on-join: true
  notify-sound: block.note_block.pling 1 1.6
  # Уведомлять игрока о решении по его жалобе
  reporter-feedback: true
  # Наказания этих типов автоматически принимают все открытые жалобы на игрока
  auto-accept-on:
  - BAN
  - IPBAN
  - MUTE
  - WARN
  - KICK
  # Приоритет, с которого группа жалоб считается «горячей» (вариант high в меню)
  high-priority: 5
  # Тревога: много разных игроков пожаловались на одного за короткое время
  alert:
    enabled: true
    unique-reporters: 3
    within: 10m
    sound: entity.ender_dragon.growl 0.5 1.5
    # Команды от консоли: {player}, {count}, {unique}, {categories}
    commands: []
  # Категории. priority — вес при сортировке, ask-comment — спросить комментарий в чате,
  # require-comment — комментарий обязателен, permission — кто может выбирать категорию,
  # template — рекомендуемый шаблон наказания (подсвечивается модератору)
  categories:
    cheats:
      name: '&#ff5c5cЧиты'
      icon: DIAMOND_SWORD
      priority: 3
      ask-comment: true
      require-comment: false
      template: cheats
      description:
      - '&#adb5bdKillaura, fly, x-ray, speed,'
      - '&#adb5bdавтокликер и другие модификации'
    chat:
      name: '&#ffd43bНарушение чата'
      icon: WRITABLE_BOOK
      priority: 1.5
      ask-comment: false
      template: insult
      description:
      - '&#adb5bdОскорбления, мат, флуд, спам,'
      - '&#adb5bdреклама сторонних проектов'
    griefing:
      name: '&#ffa94dГриферство'
      icon: TNT
      priority: 2
      ask-comment: true
      template: grief
      description:
      - '&#adb5bdРазрушение чужих построек,'
      - '&#adb5bdкража, порча территории'
    bugs:
      name: '&#da77f2Использование багов'
      icon: COMMAND_BLOCK
      priority: 2
      ask-comment: true
      template: bugs
      description:
      - '&#adb5bdДюп, использование уязвимостей'
    nickname:
      name: '&#66d9e8Неприемлемый ник/скин'
      icon: NAME_TAG
      priority: 1
      template: nickname
      description:
      - '&#adb5bdОскорбительный ник или скин'
    other:
      name: '&#adb5bdДругое'
      icon: PAPER
      priority: 1
      ask-comment: true
      require-comment: true
      description:
      - '&#adb5bdОпишите нарушение в комментарии'

# ─────────────────────────────── Рейтинг репортёров ───────────────────────
# Рейтинг растёт за подтверждённые жалобы и падает за ложные.
# От уровня зависят приоритет жалоб игрока в списке модератора и его кулдаун.
rating:
  enabled: true
  default: 100
  min: 0
  max: 1000
  on-accepted: 5
  on-rejected: -10
  on-expired: 0
  # Игроки с рейтингом ниже не могут отправлять жалобы
  block-below: 20
  tiers:
    trusted:
      min: 200
      name: <shadow:#0a2b10:0.9>&#69db7c&lНадёжный</shadow>
      priority-multiplier: 2.0
      cooldown-multiplier: 0.5
    good:
      min: 130
      name: '&#69db7cХороший'
      priority-multiplier: 1.5
      cooldown-multiplier: 0.75
    normal:
      min: 70
      name: '&#adb5bdОбычный'
      priority-multiplier: 1.0
      cooldown-multiplier: 1.0
    doubtful:
      min: 40
      name: '&#ffa94dСомнительный'
      priority-multiplier: 0.6
      cooldown-multiplier: 2.0
    unreliable:
      min: 0
      name: '&#ff5c5cНенадёжный'
      priority-multiplier: 0.3
      cooldown-multiplier: 4.0

# ─────────────────────────────── Наказания ─────────────────────────────────
punishments:
  # Объявлять наказания всем игрокам (флаг -s / «тихо» — только персоналу)
  broadcast: true
  broadcast-revoke: true
  silent-flag: -s
  # Заменять активный бан/мут новым (иначе — ошибка «уже наказан»)
  replace-existing: true
  allow-self: false
  # Срок предупреждения по умолчанию (через сколько варн «сгорает»)
  warn-expire: 30d
  # Снимать все варны после автонаказания (тогда следующие пороги warn-thresholds не сработают)
  clear-warns-on-threshold: false
  # Ссылка на обжалование — {appeal} в экранах бана
  appeal-url: discord.gg/yourserver
  log-to-console: true
  login-check-timeout-ms: 5000
  # Не пускать игроков, если БД недоступна при входе
  deny-login-on-error: false
  # Уведомлять персонал, если игрок зашёл с IP забаненного аккаунта
  alt-alert: true
  alt-alert-sound: block.note_block.bass 1 0.5
  # Команды, заблокированные в муте
  muted-blocked-commands:
  - msg
  - tell
  - w
  - m
  - r
  - reply
  - pm
  - whisper
  - me
  - say
  - mail
  - ac
  - helpop
  # Дополнительные команды от консоли после наказания каждого типа ({player}, {reason}, {duration}, {id}...)
  commands-on:
    ban: []
    ipban: []
    mute: []
    warn: []
    kick: []
  # Подсказки причин в автодополнении команд
  suggested-reasons:
    ban:
    - Читы
    - Обход_бана
    - Гриферство
    mute:
    - Оскорбления
    - Флуд
    - Реклама
    warn:
    - Капс
    - Флуд
    - Неадекватное_поведение
    kick:
    - АФК
    - Неадекватное_поведение
  # Лимиты сроков для групп персонала (право permission). Значения: срок, perm (навсегда), none (запрещено).
  # Если у игрока несколько групп — берётся самый мягкий лимит. Без групп / mekhamod.limit.bypass — без ограничений.
  # Шаблоны наказаний лимитами не ограничиваются (у них своё право mekhamod.template.<id>).
  limits:
    helper:
      permission: mekhamod.limit.helper
      ban: none
      ipban: none
      mute: 2h
      warn: 7d
    moderator:
      permission: mekhamod.limit.moderator
      ban: 7d
      ipban: none
      mute: 1d
      warn: 30d
    senior:
      permission: mekhamod.limit.senior
      ban: 30d
      ipban: 7d
      mute: 7d
      warn: perm

# ─────────────────────────────── Проверки на читы ─────────────────────────
checks:
  # Режим по умолчанию (можно выбрать при вызове: /check <ник> freeze|teleport, в меню — ЛКМ/ПКМ):
  #   FREEZE   — игрок полностью заморожен там, где стоит
  #   TELEPORT — игрок переносится на точку проверки (teleport.location, ставится командой /check setspot);
  #              после успешной проверки (или отмены) идёт обратный отсчёт и игрок возвращается на своё место
  default-mode: FREEZE
  # Время на проверку
  duration: 7m
  add-time-default: 2m
  # Разрешить модератору проверять несколько игроков одновременно
  allow-multiple: false
  # Блокировка движения в обоих режимах (вращать камеру можно)
  freeze: true
  # Запрет кликов в инвентаре
  block-inventory: true
  blindness: false
  # Открывать модератору панель проверки при старте
  open-panel: true
  # Личный чат: сообщения проверяемого видит только проверяющий (и mekhamod.check.spy),
  # сообщения проверяющего уходят только проверяемому. Префикс — написать в общий чат.
  private-chat: true
  global-chat-prefix: '!'
  # Команды, разрешённые проверяемому (/check admit разрешена всегда, если allow-admit)
  allowed-commands: []
  # Признание (/check admit) — обычно наказание мягче
  allow-admit: true
  # Сколько сообщений игрока сохранять (Discord/AnyDesk и т.п.)
  transcript-max-lines: 50
  # Напоминание инструкции в чат каждые N секунд (0 — выкл)
  reminder-interval-seconds: 30
  # CANCEL — отменить проверку и отпустить игрока, CLEAN — засчитать как чистую
  on-moderator-quit: CANCEL
  # Режим TELEPORT: возвращать игрока на исходную позицию, даже если он наказан
  return-after-punish: false
  # Сколько строк журнала проверки показывать в меню истории (полный отчёт — /check info <id>)
  history-log-lines: 12
  # Режим TELEPORT
  teleport:
    # Перенести к точке и проверяющего (сдвиг по X на moderator-offset блоков)
    moderator-too: true
    moderator-offset: 2
    # Возвращать игрока на место после успешной проверки или отмены
    return-after: true
    # Обратный отсчёт перед возвратом (секунд, 0 — сразу). Во время отсчёта игрок остаётся замороженным
    return-delay-seconds: 5
    # Точка проверки (/check setspot — поставить на своей позиции)
    location:
      world: world
      x: 3.5
      y: 77.0
      z: -67.4
      yaw: -89
      pitch: 0
  title:
    interval-seconds: 5
    title: <shadow:#3d0000:1><gradient:#ff5c5c:#e03131><b>ПРОВЕРКА НА ЧИТЫ</b></gradient></shadow>
    subtitle: <sprite:gui:icon/info> &#f1f3f5Следуйте инструкции в чате &#6c757d|
      &#ffd43b{time}
  bossbar:
    enabled: true
    show-moderator: true
    # PINK, BLUE, RED, GREEN, YELLOW, PURPLE, WHITE
    color: RED
    # PROGRESS, NOTCHED_6, NOTCHED_10, NOTCHED_12, NOTCHED_20
    style: NOTCHED_10
    title: '<sprite:items:item/iron_sword> <shadow:#3d0000:0.9>&#ff5c5c&lПроверка</shadow>
      &#6c757d• &#f1f3f5Осталось: &#ffd43b{time} &#6c757d• &#f1f3f5Проверяет: <head:{moderator}>
      &#66d9e8{moderator}'
    title-paused: '<sprite:items:item/clock_00> <shadow:#3d2600:0.9>&#ffa94d&lПроверка
      на паузе</shadow> &#6c757d• &#f1f3f5Осталось: &#ffd43b{time}'
  sounds:
    start: entity.wither.spawn 0.6 1.2
  # Итоги проверки: шаблон из punishments.yml (template), тихо ли (silent),
  # задержка перед наказанием в тиках (delay-ticks) и команды от консоли
  results:
    clean:
      template: ''
      commands: []
    cheats:
      template: check-cheats
      delay-ticks: 40
      commands: []
    refused:
      template: check-refuse
      delay-ticks: 40
      commands: []
    admitted:
      template: check-admit
      delay-ticks: 40
      commands: []
    left:
      template: check-leave
      commands: []
    timeout:
      template: check-refuse
      delay-ticks: 40
      commands: []
    cancelled:
      template: ''
      commands: []
  afk:
    enabled: true
    threshold: 60s
    max-wait: 15m
    start-delay-ticks: 10
    on-leave: CANCEL
  overhead:
    enabled: true
    show-to-spies: true
    height: 0.35
    scale: 0.8
    line-width: 260
    background: '#0b0d10'
    background-alpha: 140
    shadow: true
    see-through: true
    ping-colors:
      '80': <#69db7c>
      '150': <#ffd43b>
      '250': <#ffa94d>
      '100000': <#ff5c5c>
    lines:
    - <shadow:#3d0000:0.9><#ff5c5c><b>{player}</b></shadow>
    - '{ping_icon} <#adb5bd>Пинг: {ping_colored} мс'
    - '<sprite:items:item/experience_bottle> <#adb5bd>Рейтинг: <#f1f3f5>{rating}</#f1f3f5>
      {tier}'
    - '<sprite:items:item/writable_book> <#adb5bd>Жалоб: <#ffd43b>{reports}</#ffd43b>
      <#495057>| <#adb5bd>Наказаний: <#ff5c5c>{punishments}</#ff5c5c> <#495057>| <#adb5bd>Проверок:
      <#66d9e8>{past_checks}'
    - '<sprite:gui:icon/info> <#adb5bd>Клиент: <#f1f3f5>{client}'
    - '<sprite:items:item/clock_00> <#adb5bd>Осталось: <#ffd43b>{time}</#ffd43b> <#495057>|
      <#adb5bd>АФК: <#f1f3f5>{afk}'
  lock-rotation: false

# Период статистики модераторов по умолчанию (/mm stats)
stats:
  default-period: 30d
Зависимости
PlaceHolderApi , LuckPerms
Команды и права
/report (/rep, /жалоба, /репорт): отправить жалобу. Право: mekhamod.report
/reports (/жалобы): очередь жалоб. Право: mekhamod.reports
/punish (/pun, /наказать): меню наказаний. Право: mekhamod.punish
/ban, /tempban, /ipban: баны. Права: mekhamod.ban, mekhamod.ipban
/mute, /tempmute, /warn, /kick: муты, предупреждения, кики. Права: mekhamod.mute, mekhamod.warn, mekhamod.kick
/unban, /unmute, /unwarn: снятие наказаний. Права: mekhamod.unban, mekhamod.unmute, mekhamod.unwarn
/history (/история): история игрока. Право: mekhamod.history
/check (/проверка): проверка на читы. Право: mekhamod.check
/rating (/рейтинг): рейтинг игрока. Право: mekhamod.rating
/mekhamoderation (/mm, /modmenu): главное меню модерации. Право: mekhamod.menu
Автор
xGodstolbik
Просмотры
106
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Поделиться ресурсом

Последние обновления

  1. 1.1

    Теперь, если игрока банят или кикают прямо во время проверки, проверка сначала закрывается с...
Назад
Сверху Снизу