Release CI / build-and-upload-mod (push) Canceled after 0s
Release CI / build-and-upload-mod (release) Canceled after 0s
Java CI / build (push) Successful in 4m54s
.NET+Docker CI/CD / Unit and Integration tests (push) Successful in 44s
.NET+Docker CI/CD / Push Docker image to ghcr.io (push) Successful in 1m45s
Signed-off-by: Dmitri Shimanski <yawaflua@perseverance.yawaflua.tech>
97 lines
4.0 KiB
Markdown
97 lines
4.0 KiB
Markdown

|
||
# SPMega
|
||
|
||
SPMega - клиентский Fabric-мод с банковым UI для работы с картами и переводами через API `spworlds.ru`.
|
||
|
||
## Возможности
|
||
|
||
- Открытие главного меню мода по клавише `P` и кнопкой `SPMega` в меню `Esc`
|
||
- Экран `Карты`:
|
||
- список карт из локальной базы
|
||
- добавление новой карты (ввод `cardId` + `cardToken`)
|
||
- удаление карты
|
||
- обновление карты через API
|
||
- Экран `Оплата`:
|
||
- перевод по номеру карты
|
||
- ввод ника получателя с автопоиском карт игрока
|
||
- Быстрая оплата по табличкам или рамкам:
|
||
- Shift + клик по табличке
|
||
- если найден отдельный 5-значный номер, открывается окно оплаты с подставленным получателем
|
||
- Считывание QR кодов с помощью камеры
|
||
|
||
## Конфиг
|
||
|
||
Файл: `config/spmega.properties`
|
||
|
||
- `sign.quickPay.enabled=true|false` - включить/выключить Shift-клик по табличке
|
||
|
||
При добавлении карты выполняется проверка через `GET /api/public/accounts/me`:
|
||
|
||
- карта должна присутствовать в списке ваших карт
|
||
- если айди владельца не совпадает с UUID игрока, показывается предупреждение:
|
||
`Вы не владелец карты. Часть функций может быть ограничена.`
|
||
###### позже это станет ограничением для синхронизации карт/истории с облаком
|
||
|
||
## Поддерживаемые версии
|
||
|
||
- Minecraft 1.21.1 (Java 21)
|
||
- Minecraft 1.21.11 (Java 21)
|
||
- Minecraft 26.1.x (сборка на 26.1.2, Java 25)
|
||
- Minecraft 26.2.x (сборка на 26.2, Java 25)
|
||
|
||
Версии собираются из общего дерева исходников через Stonecutter. Зависимости
|
||
для каждой версии находятся в `stonecutter.properties.toml`, а условные участки
|
||
исходников помечены директивами `/*? ... */`.
|
||
|
||
## Сборка
|
||
|
||
Все поддерживаемые версии:
|
||
|
||
```bash
|
||
./gradlew buildAndCollect
|
||
```
|
||
|
||
Готовые JAR-файлы появятся в `build/libs/<версия-мода>/`.
|
||
|
||
Одна версия:
|
||
|
||
```bash
|
||
./gradlew :1.21.1:build
|
||
./gradlew :26.2.x:build
|
||
```
|
||
|
||
PowerShell:
|
||
|
||
```powershell
|
||
.\gradlew.bat buildAndCollect
|
||
```
|
||
|
||
## Публикация на Modrinth
|
||
|
||
Один универсальный JAR для этих версий использовать нельзя: сборки 1.21.x и
|
||
26.x имеют несовместимые Minecraft/Fabric API. Вместо ручной загрузки четырёх
|
||
файлов Gradle создаёт отдельную запись Modrinth для каждой версии:
|
||
|
||
```bash
|
||
export MODRINTH_TOKEN="ваш-токен"
|
||
export MODRINTH_PROJECT_ID="id-или-slug-проекта"
|
||
./gradlew modrinth
|
||
```
|
||
|
||
В PowerShell:
|
||
|
||
```powershell
|
||
$env:MODRINTH_TOKEN="ваш-токен"
|
||
$env:MODRINTH_PROJECT_ID="id-или-slug-проекта"
|
||
.\gradlew.bat modrinth
|
||
```
|
||
|
||
Тип релиза задаётся свойством `modrinth_version_type` в `gradle.properties`:
|
||
`release`, `beta` или `alpha`.
|
||
|
||
## Дорожная карта
|
||
|
||
- [ ] Синхронизация карт/истории с облаком
|
||
- [ ] Получение уведомлений о переводах прямо в Minecraft, опять-таки, через облако.
|
||
- [ ] Отображение важных игроков в табе(банкиры, фсбшники и прочее) с возможностью редактирования
|