PlayerSync/README.md

64 lines
2.2 KiB
Markdown

# PlayerSync
PlayerSync is a Minecraft Forge mod that synchronizes player data across multiple servers using a MySQL backend. It allows players to maintain their inventory, equipment, experience, advancements, and more when moving between servers in a network.
## Mod Support
* [Curios API](https://www.curseforge.com/minecraft/mc-mods/curios)
* [Sophisticated Backpacks](https://www.curseforge.com/minecraft/mc-mods/sophisticated-backpacks)
Any other mods support is also possible.
## Development Setup
### Database Setup (Docker)
A `docker-compose.yml` file is provided for easily setting up a MariaDB database instance for development testing.
1. Make sure Docker is installed.
1. Inside your work directory run:
```sh
docker compose up -d
```
This will download the MariaDB image (if not already present) and start a database container in the background.
1. Stoppinng the Database
```sh
docker compose down
```
**Data Persistence:** The database uses a Docker volume, ensuring your data persists even if you stop and restart the containers.
#### Database Management Tool
The `docker-compose.yml` also includes an [Adminer](https://www.adminer.org/) service, a lightweight database management tool.
* Access Adminer in your web browser at http://localhost:8080.
* Log in using the server with
- username: `playersync`
- database: `playersync`
- password: see [docker-compose.yml](./docker-compose.yml)
For debugging purposes, you can enable `use_legacy_serialization` to have readable database fields. This can cause crashes and unintended side-effects. **Do not enable this on a production server if not absolutely necessary!**
### Running the Mod
The project uses Gradle for building and running. Use the provided Gradle wrapper (`gradlew` for Linux/macOS, `gradlew.bat` for Windows).
1. Make sure that the MySQL database you configured is running.
1. Run the Server
```sh
./gradlew runServer
```
or on Windows:
```bat
.\gradlew.bat runServer
```
This task compiles the mod and starts a dedicated Minecraft server instance with the mod loaded in the `run` directory.
1. Run the Client
```sh
./gradlew runClient
```
or on Windows:
```bat
.\gradlew.bat runClient
```