mirror of https://github.com/hykilpikonna/AquaDX
[U] docs
parent
500e469ee0
commit
ee4f923a2d
129
README.md
129
README.md
|
@ -2,9 +2,7 @@
|
|||
|
||||
Multipurpose game server for ALL.Net games.
|
||||
|
||||
Public server hosted at https://aquadx.net
|
||||
|
||||
## Related Projects
|
||||
### Related Projects
|
||||
|
||||
* [AquaMai](https://github.com/MewoLab/AquaMai): A maimai DX mod that adds many features to the game.
|
||||
* [AquaNet](./AquaNet): A new web frontend for the modern age.
|
||||
|
@ -13,15 +11,15 @@ Public server hosted at https://aquadx.net
|
|||
|
||||
Below is a list of games supported by this server.
|
||||
|
||||
| Game | Ver | Codename | Thanks to |
|
||||
|----------------------------|------|---------------|--------------------------------------------|
|
||||
| SDHD: CHUNITHM (Chusan) | 2.27 | LUMINOUS PLUS | [@rinsama](https://github.com/mxihan) |
|
||||
| SDEZ: MaiMai DX | 1.45 | BUDDiES PLUS | [@肥宅虾哥](https://github.com/FeiZhaixiage) |
|
||||
| SDGA: MaiMai DX (International) | 1.45 | BUDDiES PLUS | [@Clansty](https://github.com/clansty) |
|
||||
| SDED: Card Maker | 1.39 | | [@Becods](https://github.com/Becods) |
|
||||
| SBZV: Project DIVA Arcade | 7.10 | Future Tone | |
|
||||
| SDDT: O.N.G.E.K.I. | 1.45 | bright MEMORY Act.3 | [@Gamer2097](https://github.com/Gamer2097) |
|
||||
| SDFE: Wacca (*ALPHA STAGE) | 3.07 | Reverse | |
|
||||
| Game | Ver | Codename | Thanks to |
|
||||
|---------------------------------|------|---------------------|--------------------------------------------|
|
||||
| SDHD: CHUNITHM (Chusan) | 2.27 | LUMINOUS PLUS | [@rinsama](https://github.com/mxihan) |
|
||||
| SDEZ: MaiMai DX | 1.45 | BUDDiES PLUS | [@肥宅虾哥](https://github.com/FeiZhaixiage) |
|
||||
| SDGA: MaiMai DX (International) | 1.45 | BUDDiES PLUS | [@Clansty](https://github.com/clansty) |
|
||||
| SDED: Card Maker | 1.39 | | [@Becods](https://github.com/Becods) |
|
||||
| SBZV: Project DIVA Arcade | 7.10 | Future Tone | |
|
||||
| SDDT: O.N.G.E.K.I. | 1.45 | bright MEMORY Act.3 | [@Gamer2097](https://github.com/Gamer2097) |
|
||||
| SDFE: Wacca (*ALPHA STAGE) | 3.07 | Reverse | |
|
||||
|
||||
> **News**: AquaDX just added Wacca support on Mar 29, 2024! Feel free to test it out, but expect bugs and issues.
|
||||
|
||||
|
@ -29,56 +27,42 @@ Check out these docs for more information.
|
|||
* [Game specific notes](docs/game_specific_notes.md)
|
||||
* [Frequently asked questions](docs/frequently_asked_questions.md)
|
||||
|
||||
### Notes
|
||||
* Some games may require additional patches and these will not provided in this project and repository. You already found this, so you know where to find related resources too.
|
||||
* This repository may contain untested, experimental implementations for a few games which I can't test properly. If you couldn't find your wanted game in the above list, do not expect support.
|
||||
* This server also provides a simple API for viewing play records and editing settings for some games.
|
||||
> [!TIP]
|
||||
> Some games may require additional patches and these will not be provided in this project and repository. You already found this, so you know where to find related resources too.
|
||||
|
||||
### Usage (V1 Developmental Preview)
|
||||
## Usage
|
||||
If you own a cab or controller and just want to play the game, follow the instructions below:
|
||||
|
||||
> [!NOTE]
|
||||
> AquaDX v1 is currently under heavy development.
|
||||
> If you were using SQLite Aqua before, it's not supported in AquaDX and the command below will create a new MariaDB database.
|
||||
> We're working on a migration guide, which will be released along with AquaDX v1 stable.
|
||||
1. Make sure you have a working game (read [game specific notes](docs/game_specific_notes.md) for more information).
|
||||
2. Go to [aquadx.net](https://aquadx.net) and make an account.
|
||||
3. Click on "Setup Connection" in the home page, and follow the instructions.
|
||||
4. Play a coin with your card.
|
||||
(Either a physical card or the `aime.txt` / `felica.txt` in your segatools)
|
||||
5. Pet your cat 🐱
|
||||
6. Link your card on the website.
|
||||
|
||||
> [!TIP]
|
||||
> If you don't know your card ID, there's always a button on the login screen of the game that can read a card's access code.
|
||||
> If you encounter any issue, please report in the [issue tracker](https://MewoLab/AquaDX/issues).
|
||||
|
||||
## Self Hosting (Advanced)
|
||||
|
||||
> [!WARNING]
|
||||
> This guide assumes you have basic programming & networking knowledge.
|
||||
> We will not be answering basic questions like how to set up port forwarding or domain records.
|
||||
> If you're new to self-hosting, please just use our public server in the Usage section above.
|
||||
|
||||
1. Install [Docker](https://www.docker.com/get-started/) and [Git](https://git-scm.com/downloads)
|
||||
2. Run `git clone https://github.com/hykilpikonna/AquaDX` to clone this repo.
|
||||
2. Run `git clone https://github.com/MewoLab/AquaDX` to clone this repo.
|
||||
3. Run `docker compose up` in the AquaDX folder.
|
||||
|
||||
If you're getting BAD on title server checks after the docker server is up, please edit `config/application.properties`
|
||||
and change `allnet.server.host` to your LAN IP address (e.g. 192.168.0.?). You can find your LAN address using the `ipconfig` command on Windows or `ifconfig` on Linux.
|
||||
and change `allnet.server.host` to your LAN IP address (e.g. 192.168.0.?). You can find your LAN address using the `ipconfig` command on Windows or `ifconfig` on Linux.
|
||||
|
||||
### Updating Instructions
|
||||
|
||||
> [!NOTE]
|
||||
> Please back up your database before you update! Even though we want to avoid database issues as much as possible, it's still possible that unexpected things will happen.
|
||||
|
||||
Please run the commands below in the AquaDX folder to update:
|
||||
|
||||
```
|
||||
# Backup your database
|
||||
docker run --rm -it mariadb:latest mariadb-dump -h host.docker.internal --port 3369 --user=cat --password=meow main > backup.sql
|
||||
|
||||
# Pull the new repository
|
||||
git pull
|
||||
|
||||
# Run the updated version
|
||||
docker compose up
|
||||
```
|
||||
|
||||
### Usage (Stable Old Version)
|
||||
|
||||
> [!WARNING]
|
||||
> The instructions below is for the old version of AquaDX 0.0.47. This version does not support the latest features and games.
|
||||
|
||||
1. Install [Java 21 Temurin JDK](https://adoptium.net/temurin/releases/?version=21) (Please select your appropriate operating system)
|
||||
2. Download the latest `aqua-nightly.zip` from [Releases](https://github.com/hykilpikonna/AquaDX/releases).
|
||||
3. Extract the zip file to a folder.
|
||||
4. Run `java -jar aqua.jar` in the folder.
|
||||
|
||||
By default, Aqua will use SQLite and save user data in `data/db.sqlite`.
|
||||
|
||||
If you want to use optional databases, please edit the configuration file then it will auto-create the table and import some initial data.
|
||||
> [!NOTE]
|
||||
> The guide above will create a new MariaDB database.
|
||||
> If you were using SQLite Aqua before, it is not supported in AquaDX. Please export your data and import it to MariaDB.
|
||||
> If you were using MySQL Aqua before, you can migrate to MariaDB using [this guide here](docs/mysql_to_mariadb.md).
|
||||
|
||||
### Configuration
|
||||
Configuration is saved in `config/application.properties`, spring loads this file automatically.
|
||||
|
@ -88,22 +72,33 @@ This will be sent to the game at booting and being used by the following request
|
|||
* You can switch to the MariaDB database by commenting the Sqlite part.
|
||||
* For some games, you might need to change some game-specific config entries.
|
||||
|
||||
### Updating Self-Hosted Instance
|
||||
|
||||
Please run the commands below in the AquaDX folder to update:
|
||||
|
||||
```
|
||||
# Backup your database
|
||||
docker run --rm -it mariadb:latest mariadb-dump -h host.docker.internal --port 3369 --user=cat --password=meow main > backup.sql
|
||||
|
||||
# Pull the new repository
|
||||
docker compose pull
|
||||
|
||||
# Run the updated version
|
||||
docker compose up
|
||||
```
|
||||
|
||||
### Building
|
||||
You need to install JDK on your system. However, you don't need to install Gradle separately, as the `gradlew` wrapper script is included.
|
||||
```
|
||||
gradlew clean build
|
||||
```
|
||||
The `build/libs` folder will contain a jar file.
|
||||
You need to install JDK 21 on your system, then run `./gradlew clean build`. The jar file will be built into the `build/libs` folder.
|
||||
|
||||
### Credit
|
||||
* **samnyan**: The creator and developer of the original Aqua server
|
||||
* **Akasaka Ryuunosuke**: providing all the DIVA protocol information
|
||||
* Dom Eori: Developer of forked Aqua server, from v0.0.17 and up
|
||||
* All devs who contribute to the [MiniMe server](https://dev.s-ul.net/djhackers/minime)
|
||||
* All contributors by merge requests, issues and other channels
|
||||
|
||||
### License: [CC By-NC-SA](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en)
|
||||
## License: [CC By-NC-SA](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.en)
|
||||
|
||||
* **Attribution** — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
|
||||
* **NonCommercial** — You may not use the material for commercial purposes.
|
||||
* **ShareAlike** — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
|
||||
|
||||
### Credit
|
||||
* **samnyan**: The creator and developer of the original Aqua server
|
||||
* **Akasaka Ryuunosuke**: providing all the DIVA protocol information
|
||||
* **Dom Eori**: Developer of forked Aqua server, from v0.0.17 and up
|
||||
* All devs who contribute to the [MiniMe server](https://dev.s-ul.net/djhackers/minime)
|
||||
* All contributors by merge requests, issues and other channels
|
||||
|
|
|
@ -3,7 +3,9 @@ For best viewing experience, please use a markdown viewer that supports Github o
|
|||
|
||||
## Server
|
||||
### Can I host a public instance?
|
||||
Yes. There is no function limitation, but keep this in mind: you may encounter scalability or security issues which I probably won't focus on.
|
||||
You're permitted to. However, you should only consider this if you have strong programming or homelab experience or have self-hosted other services before, as we will not be answering basic questions such as how to set up things like port forwarding or domain records.
|
||||
|
||||
If you're new to self-hosting, it's easier to just use our public server at https://aquadx.net.
|
||||
|
||||
### Can I use other port for endpoints?
|
||||
No. It's hardcoded inside a game and server can do nothing about it.
|
||||
|
@ -12,7 +14,7 @@ No. It's hardcoded inside a game and server can do nothing about it.
|
|||
Yes. There will be no major consequences even without it.
|
||||
|
||||
### What ports does Aqua use?
|
||||
* 80: ALL.Net, game endpoints and Aquaviewer
|
||||
* 80: ALL.Net, Game endpoints
|
||||
* 8443: Billing
|
||||
* 22345: Aime
|
||||
|
||||
|
@ -48,9 +50,6 @@ No. This is due to hardened security measures which SEGA made.
|
|||
### Will you add [your wanted game name] support?
|
||||
It'll be case by case basis. Open an issue if you want to suggest something.
|
||||
|
||||
### Will you add support for intl version?
|
||||
I won't work on it myself, but merge request is welcome.
|
||||
|
||||
### Is the server update is mandatory with every new game content updates?
|
||||
No, games will still work. However, new content *probably* not appear in game without so-called "force unlock" and Web UI will not work as intended when displaying new content.
|
||||
|
||||
|
|
|
@ -82,9 +82,6 @@ fun ChusanController.chusanInit() {
|
|||
val missions = parsing { (data["userCMissionList"] as List<JDict>).map { it["missionId"]!!.int } }
|
||||
val u = db.userData.findByCard_ExtId(uid)() ?: return@api null
|
||||
|
||||
// Return: userId, userCMissionList: [
|
||||
// {userId, missionId, point, userCMissionProgressList: [{order, stage, progress}, ...]}, ...
|
||||
// ]
|
||||
db.userCMission.findByUserAndMissionIdIn(u, missions).map {
|
||||
UserCMissionResp().apply {
|
||||
missionId = it.missionId
|
||||
|
|
Loading…
Reference in New Issue