Files
project_vollidioten_mod/README.md

135 lines
3.8 KiB
Markdown

# Projectvollidioten
A Minecraft Fabric mod that provides comprehensive player data logging and automatic resource pack management via GitHub integration.
## Features
### Player Data Logging
- Logs player join and leave events to external API
- Captures detailed player statistics including:
- Health and max health
- Hunger level
- Experience level
- Game mode
- Position (X, Y, Z, Dimension)
- Tracks completed advancements with display names
- Asynchronous API communication to prevent server lag
- Pretty-printed JSON logging for debugging
### Automatic Resource Pack Updates
- **GitHub Integration**: Automatically monitors GitHub releases for new resource packs
- **HTTP Server**: Built-in HTTP server (port 25585) to serve resource packs locally
- **Smart Updates**: Downloads and installs new resource pack versions automatically
- **Server Configuration**: Automatically updates `server.properties` with correct URLs and SHA1 hashes
- **Player Notifications**: Broadcasts resource pack availability to all players
- **Periodic Checking**: Configurable interval checking (default: every 60 minutes)
- **Secure Serving**: Only serves configured resource pack files for security
## Requirements
- Minecraft 1.21.11
- Fabric Loader 0.18.3
- Fabric API 0.140.2+1.21.11
## Installation
1. Download the mod JAR file from the releases page
2. Place the JAR file in your server's `mods` folder
3. Ensure the Fabric API is also installed
4. Start your Minecraft server
## Configuration
### Player Data Logging
The mod sends data to a hardcoded API endpoint: `http://localhost:3000/api/data`
To change the API endpoint, modify the `API_URL` constant in `PlayerDataLogger.java`.
### Resource Pack Auto-Updater
The resource pack updater is configured via `config/projectvollidioten/resourcepack.json`:
```json
{
"githubOwner": "your-username",
"githubRepo": "your-repo-name",
"resourcePackFileName": "my-pack.zip",
"checkIntervalMinutes": 60
}
```
**Configuration Options:**
- `githubOwner`: Your GitHub username or organization name
- `githubRepo`: The repository name containing the resource pack releases
- `resourcePackFileName`: The exact filename of the resource pack ZIP in GitHub releases
- `checkIntervalMinutes`: How often to check for updates (default: 60 minutes)
**Setup Instructions:**
1. Create a GitHub repository for your resource packs
2. Upload resource pack ZIP files as release assets
3. Update the configuration file with your repository details
4. The mod will automatically download and serve new versions
5. Players will be notified when new packs are available
**Important Notes:**
- The built-in HTTP server runs on port 25585 by default
- Resource packs are stored in `server-resource-packs/` directory
- Only the configured filename can be served for security
- SHA1 hashes are automatically computed and updated in server.properties
## API Format
The mod sends POST requests with JSON payloads in the following format:
```json
{
"eventType": "JOIN" | "LEAVE",
"player": "PlayerName",
"uuid": "player-uuid-string",
"timestamp": 1234567890123,
"stats": {
"health": 20.0,
"maxHealth": 20.0,
"foodLevel": 20,
"xpLevel": 10,
"gameMode": "survival",
"position": {
"x": 100.5,
"y": 64.0,
"z": -200.3,
"dimension": "minecraft:overworld"
}
},
"advancements": [
{
"id": "minecraft:story/root",
"title": "Minecraft"
}
]
}
```
## Building from Source
1. Clone the repository
2. Run `./gradlew build`
3. The built JAR will be in `build/libs/`
## Development
This mod uses:
- Fabric Loom for building
- Gson for JSON serialization
- Java 21
## License
This project is licensed under the MIT License - see the LICENSE file for details.
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Test thoroughly
5. Submit a pull request