2025-12-28 22:15:00 +01:00
2025-12-28 22:15:00 +01:00
2025-12-28 22:15:00 +01:00
2025-12-28 22:15:00 +01:00
2025-12-28 22:15:00 +01:00
2025-12-28 22:15:00 +01:00
2025-12-28 22:15:00 +01:00
2025-12-28 22:15:00 +01:00
2025-12-28 22:15:00 +01:00
2025-12-28 22:15:00 +01:00

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:

{
  "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:

{
  "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
Description
No description provided
Readme CC0-1.0 115 KiB
Languages
Java 100%