update some documentation

This commit is contained in:
Bixilon 2021-09-11 21:31:39 +02:00
parent 289a0875a3
commit dc40acb56a
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
4 changed files with 18 additions and 129 deletions

View File

@ -5,7 +5,7 @@ First, thank you for visiting this page and for even thinking about contributing
## Things you can do ## Things you can do
### Issues ### Issues
If you find a bug (in master **AND** in development), feel free to follow these steps: If you find a bug (in **master**), feel free to follow these steps:
1. Check if this bug is a bug and can be recreated. 1. Check if this bug is a bug and can be recreated.
2. Check if this bug is already reported (use the issue search or google). 2. Check if this bug is already reported (use the issue search or google).
3. Open the issue and describe the problem as much as needed (not as you can!) 3. Open the issue and describe the problem as much as needed (not as you can!)

View File

@ -19,14 +19,14 @@ Minosoft is an open source minecraft client, written from scratch in kotlin (and
- Multi threading and asynchronous loading - Multi threading and asynchronous loading
- Debugging on protocol layer - Debugging on protocol layer
- LAN servers - LAN servers
- Independent, We'd accept almost all types of patches (except explicit server support) - Independent, I'd accept almost all types of patches (except explicit server support)
- Way more stuff - Way more stuff
## System requirements ## System requirements
- CPU: Minosoft works mostly asynchronous, so multiple cores are good. For FPS more clock speed is better. - CPU: Minosoft works mostly asynchronous, so multiple cores are good. For FPS more clock speed is better.
- RAM: ~500Mib. With overhead, etc 2Gib recommended - RAM: ~500Mib. With overhead, etc 2Gib recommended
- Disk space: Minosoft itself is pretty small (2-3 Mib), the libraries are a bit bigger. You also need to have the "normal" minecraft assets (~ 300 MB for one version). - Disk space: Minosoft itself is pretty small (2-3 Mib), the libraries are a bit bigger (~80 Mib). You also need to have the "normal" minecraft assets (~ 300 MB per minecraft version).
- GPU: OpenGL 3.3+. Every moden GPU works and is recommended. - GPU: OpenGL 3.3+. Every moden GPU works and is recommended.
- Java 14+, 16 recommended (This is really important, we use features that are only available in this version. Java 8 is currently **not** supported). - Java 14+, 16 recommended (This is really important, we use features that are only available in this version. Java 8 is currently **not** supported).
@ -87,7 +87,7 @@ On the ToDo List
## Contribution or helping out ## Contribution or helping out
You're welcome, but feel free to take a look at [Contributing.md](/Contributing.md). I'd love it. Currently, it is pretty much work for me, so please help out if you can and want :). Feel free to take a look at [Contributing.md](/Contributing.md).
## Tools and generators ## Tools and generators
@ -112,7 +112,7 @@ Because we have no releases or tags yet, we don't build any versions ourselves.
#### Ubuntu / Debian #### Ubuntu / Debian
TBD TBA
#### Arch #### Arch
@ -120,7 +120,7 @@ Thanks to @jugendhacker we are in the arch user repository (AUR): https://aur.ar
### Windows ### Windows
TBD TBA
### MacOS ### MacOS
@ -131,12 +131,12 @@ Not compatible (yet)
1. Install Maven and java 14+ (On Ubuntu based distributions: `sudo apt install maven openjdk-14-jdk`). For Windows users, download and install java from oracle or openjdk. Also download maven and follow along. 1. Install Maven and java 14+ (On Ubuntu based distributions: `sudo apt install maven openjdk-14-jdk`). For Windows users, download and install java from oracle or openjdk. Also download maven and follow along.
2. Clone this repo (`git clone https://gitlab.bixilon.de/bixilon/minosoft.git`). 2. Clone this repo (`git clone https://gitlab.bixilon.de/bixilon/minosoft.git`).
3. Change directory (`cd minosoft`). 3. Change directory (`cd minosoft`).
4. Checkout the branch (`git checkout <branch>`). Eventually `rendering` or `development`. 4. Optional: Checkout the branch of the feature you want to test(`git checkout <branch>`).
5. Build and run Minosoft with `mvn clean verify exec:java`. If any errors occur, feel free to open an issue. In this early stage it might be helpful to delete the AppData folder (only of minosoft). 5. Build and run Minosoft with `mvn clean verify exec:java`. If any errors occur, feel free to open an issue. In this early stage it might be helpful to delete the config file.
6. (Optional) Build a fat jar with `mvn package`. You'll find the jar with all dependencies in `target/`. Then you don't need to recompile everytime. 6. (Optional) Build a fat jar with `mvn package`. You'll find the jar with all dependencies in `target/`. Then you don't need to recompile everytime.
## Code mirrors ## Code mirrors
- [GitLab](https://gitlab.com/Bixilon/minosoft) - [GitLab](https://gitlab.com/Bixilon/minosoft)
This readme is work in progress, things may change over time. This project/readme is work in progress, things may change over time.

View File

@ -3,104 +3,3 @@ There is a config file located in:
* Windows: `%AppData%\Minosoft` * Windows: `%AppData%\Minosoft`
* MacOS: `"~/Library/Application Support/Minosoft"` * MacOS: `"~/Library/Application Support/Minosoft"`
* Linux (and all others): `~\Minosoft` * Linux (and all others): `~\Minosoft`
## Example
```json
{
"general": {
"version": 1,
"log-level": "VERBOSE",
"language": "en_US"
},
"game": {
"render-distance": 12
},
"network": {
"fake-network-brand": false,
"show-lan-servers": true
},
"accounts": {
"selected": "SECRET",
"client-token": "SECRET",
"entries": {
"SECRET": {
"accessToken": "SECRET",
"userId": "SECRET",
"uuid": "9e6ce7c5-40d3-483e-8e5a-b6350987d65f",
"playerName": "Bixilon",
"userName": "SECRET"
}
}
},
"servers": {
"entries": {
"1": {
"id": 1,
"name": "A Minosoft server",
"address": "localhost",
"favicon": "<Base 64 encoded png>",
"version": -1
}
}
},
"download": {
"urls": {
"resources": "https://gitlab.com/Bixilon/minosoft/-/raw/development/data/resources/%s/%s.tar.gz?inline=false"
}
},
"debug": {
"verify-assets": true
}
}
```
## General
- `version` The current version of the config. Used for migration between versions. A new version will be tagged, once a new release of minosoft is there, and the format of the config changed.
- `log-level` Self explaining, valid log levels are defined in [LogLevels.java](/src/main/java/de/bixilon/minosoft/util/logging/LogLevels.java).
- `language` Self explaining. All values are valid, if the specific language cannot be loaded (or specific strings are not available), `en_US` will be used (as fallback).
## Network
- `fake-network-brand` Minosoft send its brand to the server. If true, minosoft will say, that we use standard `vanilla`.
- `show-lan-servers` If true, minosoft will listen for lan servers (singleplayer and share to LAN) and show them in the server list.
## Accounts
- `selected` userId of the current selected account, can be empty
- `client-token` A random uuid (generated at first startup), used as unique identifier for all authentication communication with mojang.
- `entries` An account array:
### Account
```json
{
"<userId>": {
"accessToken": "<access Token>",
"userId": "<userId>",
"uuid": "<UUID of player with dashes>",
"playerName": "<Player name>",
"userName": "<Mojang email address>"
}
}
```
## Servers
- `entries` A server array:
### Server
```json
{
"<Server id>": {
"id": <Server ID>,
"name": "<Server name>",
"address": "<Server address>",
"favicon": "<Base 64 encoded png>",
"version": -1
}
}
```
## Download
- `url`
- `mappings` URL for resources. For example mappings. The data is in a folder starting with the first digs of the hash, followed by the hash
The URL must contain .tar.gz files named after minecraft versions (e.g. `0a/0aeb75059ef955d4cf2b9823d15775d0eacb13d5.tar.gz`).
## Debug
- `verify-assets` If true, minosoft will check the sha1 of every asset. Must be false, if you want to modify assets. (Should be true, can be false, if you want to improve the start time)

View File

@ -1,12 +1,10 @@
# Development # Development
Generally I'd say TBA, but some basic rules are here. Feel free to contact us first, before developing huge things. May be better. Generally I'd say TBA, but some basic rules are here. Feel free to contact me first, before developing huge things. May be better.
## Git Rules ## Git Rules
- Small Features in `development`.
- `master` must always be stable and functional. - `master` must always be stable and functional.
- No force pushes (or modifying the git history) in protected branches (aka. `master`). - No force pushes (or modifying the git history) in protected branches (aka. `master`).
- Bigger features on own branches. Merge only via Merge Request. - Bigger features on own branches. Merge only via Merge Request.
- No commits directly in `master`
## Git access ## Git access
@ -29,24 +27,16 @@ Generally I'd say TBA, but some basic rules are here. Feel free to contact us fi
- This is a non-profit project, so don't include anything that violates open source rules. - This is a non-profit project, so don't include anything that violates open source rules.
- No connections to other servers than mojang or resources (aka this or another git repo). - No connections to other servers than mojang or resources (aka this or another git repo).
- No remote code execution or similar (You know what I mean). - No ads, no data collection, nothing in this direction.
- No copyright protected content. - No copyright protected content.
- Server specific support (Consider writing a [mod](/doc/Modding.md)). - Server specific support (Consider writing a [mod](/doc/Modding.md)).
## How to start (small features) ## How to start
1. Clone the repository 1. Fork the repository
2. Implement a feature (feel free to ask if you have questions) 2. Clone your fork
3. Test and check for impacts 3. Create a branch and start developing there
4. Submit **P**ull **R**equest (target branch should be `master`) 4. Implement a feature (feel free to ask if you have questions)
5. Wait for merge 5. Test and check for impacts
6. Submit **P**ull **R**equest (target branch should be `master`)
## How to start (big features)
1. Clone the repository
2. Start implementing features
3. Once you have something (minimal) to show, open a draft merge request (Start title with `WIP`) and write (short or long) what you have and want to implement (consider looking at other PRs)
3. Test fix all bugs (or discuss them)
4. Let other people test
6. Mark PR as ready
7. Wait for merge 7. Wait for merge