Skip to content

About

TROP_MURDER

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

MurderMysteryTS 2.0.0

Murder Mystery для Paper 1.20.1 (Java 17): убийца / детектив / мирные, дневные и ночные арены, магазин с постоянными покупками, статистика в SQLite, скорборды FastBoard, трупы Corpses и кастомные звуки ресурс-пака.

Сборка (Gradle, Kotlin DSL)

git clone <repo> && cd MurderMysteryTS
gradle wrapper --gradle-version 8.10   # если wrapper ещё не в репозитории
./gradlew build                        # Windows: gradlew.bat build

Готовый jar: build/libs/MurderMysteryTS-2.0.0.jar (FastBoard уже внутри, релоцирован в ru.mmts.libs.fastboard). Тулчейн сам подтянет JDK 17.

Установка

  1. jar -> plugins/, перезапуск сервера.

  2. Ресурс-пак — в server.properties:

    resource-pack=https://ваш-cdn/murder-pack.zip
    resource-pack-prompt=Нужен для звуков Murder Mystery
    require-resource-pack=false
    
  3. Точки: /sethub, /mmts setlobby, затем арена:

    /mmts c castle            # дневная
    /mmts c asylum night      # ночная
    /mmts lobbyset castle
    /mmts spawnset castle     # несколько раз — разные точки
    /mmts gold castle         # несколько раз — точки золота
    /mmts setshop castle      # NPC-торговец (опционально)
    

Архитектура

  • core — composition root, singleton, lifecycle
  • config — Builder-конфиг + MiniMessage-сообщения с кэшем
  • database — SQLite (WAL), версионируемые миграции, один IO-поток
  • arena — неизменяемые настройки, конечный автомат, фабрика, реестр
  • game — сессия раунда, Strategy (день/ночь), распределение ролей
  • game.task — отсчёт, таймер, эмбиент, раскрытие имени, золото
  • lobby / shop / gui — лобби, магазин, фабрика GUI
  • command — реестр подкоманд, валидация аргументов
  • listener — 4 слушателя: соединения, защита, действия, чат
  • stats, scoreboard, resourcepack, corpse, particle, sound, util

Ключевые решения и почему:

  • SQLite вместо YAML: атомарность записи, индексы, миграции схемы.
  • FastBoard 2.1.3 + Shadow: вшивается и релоцируется, обновляет только изменившиеся строки.
  • Corpses через рефлексию: нет жёсткой зависимости от приватного репо.
  • PDC-метки на предметах: системная защита от дублирования.

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

Плагин Статус Что даёт
LuckPerms soft префиксы в лобби-скорборде
Corpses soft трупы на месте смерти
ProtocolLib soft зарезервирован под скрытие ников
Multiverse soft отложенная загрузка арен (1 тик)

Расширение

  • Новый товар — секция в shop.yml, код не трогается.
  • Новое действие товара — enum-константа ShopItem.Action + case в ShopManager.applyPurchases.
  • Новый режим (например «Хэллоуин») — реализация GameModeStrategy, одна строка в конструкторе GameSession.
  • Новая миграция БД — case N в DatabaseManager.applyMigration.

About

TROP_MURDER

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages