Skip to content

Latest commit

 

History

History
87 lines (70 loc) · 6.36 KB

File metadata and controls

87 lines (70 loc) · 6.36 KB
AstraAuction logo

💫 AstraAuction β

Плагін ринку (аукціону) для Lumi.

EN | RU | UA | JA

Опис 📖

AstraAuction — ринок для перепродажу предметів між гравцями на Lumi. Плагін зберігає NBT предметів, тримає дані в базі та надає зручний GUI з пошуком, сортуванням і керуванням лотами.

Можливості 🌟

  • Збереження NBT — предмет продається точно таким, як був у продавця.
  • Асинхронна БД — усі запити виконуються у фоні без блокування основного потоку.
  • Комісія — відсоток утримання налаштовується в конфігу.
  • Склад повернення (claims) — непродані лоти та виплати офлайн-продавцям зберігаються до завершення терміну.
  • GUI-ринок — купівля, підтвердження, навігація сторінками.
  • Сортування та пошук — сортування за ціною, пошук за назвою предмета.
  • Керування своїми лотами — перегляд і скасування активних лотів через GUI.
  • Гнучка БД — SQLite / MySQL.
  • Локалізаціяrus (русский), eng (English), ukr (українська), jpn (日本語), з коробки, а також можливість додавати власні мови.

Скриншоти 🖼️

Головна сторінка ринку Сторінка «Мої лоти»
Сторінка складу повернення Сторінка підтвердження покупки

Команди ♿

Команда Опис Пермісія
/ah Відкрити ринок astraauction.use
/ah open [page: int] Відкрити ринок на вказаній сторінці astraauction.use
/ah sell <price: int> Виставити предмет у руці astraauction.use
/ah view <nickname: str> [page: int] Лоти конкретного гравця astraauction.use
/ah search <query: str> [page: int] Пошук за назвою лота astraauction.use
/ah force_buy <id: int> Примусово купити лот (процес як звичайна покупка) astraauction.force
/ah force_expire <id: int> Примусово завершити лот astraauction.force

Аліаси команди: /auction, /auc.

Пермісії 🔐

  • astraauction.use — доступ до основних команд (доступний усім за замовчуванням).
  • astraauction.force — доступ до примусових команд (за замовчуванням лише операторам).

Конфігурація ⚙️

Основні налаштування знаходяться в config.yml:

Параметр Опис За замовчуванням
database.type Тип БД: sqlite / mysql sqlite
language.value Режим мови: eng / rus / ukr / jpn / autodetect / server autodetect
language.default Мова за замовчуванням eng
auction.duration-seconds Час життя лота (сек.) 172800 (48h)
auction.tax-percent Комісія (%) 10.0
auction.round-prices Округляти ціни до цілих false
auction.max-slots Макс. активних лотів (0 — без ліміту) 6
auction.claim-expire-seconds Термін зберігання складу (сек.) 604800 (7d)
auction.gui.page-size Розмір сторінки (до 45) 45
auction.gui.open-delay-ticks Затримка відкриття GUI (тіки) 10
auction.gui.sort-default Сортування за замовчуванням price_asc

Залежності 🔌

  • EconomyAPI — потрібен для покупок і виплат.
  • FakeInventories — потрібен для GUI.
  • JOOQConnector — робота з базою даних через ORM JOOQ.
  • Polyglot — рушій локалізацій з динамічним завантаженням мов (вшитий).

Самостійна збірка 🔨

  1. Встановіть JDK 21+.
  2. Клонуйте репозиторій і відкрийте каталог проєкту.
  3. Виконайте збірку командою: ./gradlew build
  4. Готовий JAR-файл буде в build/libs.

Попередження щодо збірки ⚠️

У репозиторії є два файли build.gradle: один основний (з альтернативними репозиторіями через jitpack.io) і другий з суфіксом .old (з оригінальними репозиторіями Lumi).

Якщо репозиторії Lumi тимчасово недоступні (наприклад, помилка 500) і збірка падає, просто використовуйте поточний build.gradle як є. Альтернативно, щоб використовувати оригінальні репозиторії Lumi, видаліть (або перемістіть) поточний build.gradle, а у build.gradle.old прибрати суфікс .old.