SimpleDownload

A Mod for Server , it manages what will be downloaded from ModDownloadClient !

SimpleDownload - The Ultimate Server-Side Mod Manager for Minecraft 🛠️

By SnowFinch-Loran | GitHub Repository


🌟 Introduction

Hey server admins and modpack creators! 👋 Tired of manually distributing mods to players or dealing with outdated client-side files? Meet SimpleDownload—a powerful server-side mod that works hand-in-hand with ModAutoDownload to automate mod distribution, enforce version control, and even protect your server from abuse!

Currently optimized for Minecraft 1.16.5 Forge, this mod is designed to:
✅ Host and distribute mods via a simple HTTP endpoint (/getDurlData).
✅ Manage mod lists dynamically with in-game commands.
✅ Protect against abuse with IP rate-limiting and auto-banning.
✅ Log connections and bans for security monitoring.
✅ Sync mods effortlessly—players using ModAutoDownload will always have the right files!

Future plans include support for 1.12.X, 1.14.X, 1.18.X, 1.20.X, and 1.21.X, plus Fabric compatibility!


🔧 Requirements

Before installing, ensure your server has:

  • Minecraft 1.16.5 Forge (for now).

  • Java 8+ (required for the embedded HTTP server).

  • Clients using ModAutoDownload (optional but recommended for auto-syncing).


🚀 Features Breakdown

1️⃣ Mod Distribution Made Easy

SimpleDownload hosts a lightweight HTTP server (port 8000) that serves a JSON list of mod URLs. Clients (like ModAutoDownload) fetch this list to download missing/updated mods automatically.

2️⃣ In-Game Commands for Mod Management

Admins can manage the mod list without restarting the server using the /durl command:

Command Description Example
/durl file Opens the Settings.json config file. /durl file
/durl add <number> <url> Adds a mod URL to the list. /durl add 1 https://example.com/mod.jar
/durl delete <number> Removes a mod by its ID. /durl delete 1
/durl list Lists all registered mod URLs. /durl list
/durl clear Clears the entire mod list. /durl clear
/durl clo Enable/Disable Toggles connection logging. /durl clo Disable
/durl banlog Enable/Disable Toggles ban logging. /durl banlog Enable

3️⃣ Security & Anti-Abuse

  • Rate Limiting: Blocks IPs exceeding 100 requests/minute.

  • Temporary Bans: Banned IPs are blocked for 30 minutes.

  • Logging: Tracks connections and bans (configurable via commands).

4️⃣ Configuration File

Mod URLs and settings are stored in mods/SDSetup/Settings.json:

{
  "urls": {
    "1": "https://example.com/mod1.jar"
  },
  "settings": {
    "logConnections": true,
    "logBans": true
  }
}

🛠️ How to Use

Step 1: Installation

  1. Download the mod from files or from here.

  2. Place it in your server’s mods folder.

  3. Start the server—the HTTP service will launch automatically on port 8000.

Step 2: Adding Mods

  1. Use /durl add <number> <url> to register mods.
    Example:

  2. Players with ModAutoDownload will now fetch these mods automatically!

Step 3: Managing Logs & Security

  • Disable connection logs/durl clo Disable

  • View ban logs: Check server console for [Simpledownload][Security] messages.


📜 Command Outputs Explained

SimpleDownload uses a color-coded tag system in its logs and command feedback:

Tag Meaning Example
[Event] Server lifecycle events (e.g., startup). [Simpledownload][Event] Server started on port 8000
[CMD] Command execution feedback. [Simpledownload][CMD] URL added for table 1
[Query] Status checks (e.g., logging toggles). [Simpledownload][Query] Connection logging is Enabled
[Security] IP bans/rate-limiting alerts. [Simpledownload][Security] IP blocked: 192.168.1.1
[Error] Critical failures. [Simpledownload][Error] Failed to load settings!

Colors:

  • Green: Success.

  • Red: Errors/warnings.

  • Blue: Informational.

  • Yellow: Neutral status.


🔍 Behind the Scenes

How It Works

  1. HTTP Server: Built using com.sun.net.httpserver, it listens for /getDurlData requests.

  2. IP Tracking: The GetDurlDataHandler class enforces rate limits using ConcurrentHashMap.

  3. Commands: Leverage Minecraft’s Brigadier system for rich in-game control.

Key Classes

  • Simpledownload.java: Main mod class; starts the HTTP server and registers commands.

  • GetDurlDataHandler.java: Handles client requests, IP blocking, and JSON responses.


❓ FAQ

Q: Can I change the HTTP port?
A: Not yet—currently hardcoded to 8000. Future updates may add configs!

Q: How do I unban an IP?
A: Restart the server or wait 30 minutes (bans are temporary).

Q: Can clients download mods without ModAutoDownload?
A: Yes! They can manually fetch http://yourserver:8000/getDurlData and download the files.

Q: Why is my IP blocked?
A: You exceeded 100 requests/minute. Reduce polling frequency in ModAutoDownload.*


🎯 Future Plans

  • Multi-Version Support: 1.12.2 → 1.21.X.

  • Fabric Compatibility: Because Forge isn’t the only option!

  • Port Configuration: Let admins choose the HTTP port.

  • GeoIP Integration: Better location tracking for logs.


🙌 Final Thoughts

SimpleDownload saves hours of manual mod management and ensures players always have the right files. Pair it with ModAutoDownload for a seamless experience!

Star the GitHub repo to support development, and suggest features via issues!

Happy hosting! 🚀


📜 License: MIT
🐦 Follow MeSnowFinch-Loran on GitHub


Last Updated : 2025 (because future-proofing is cool 😎)

The SimpleDownload Team

profile avatar
  • 1
    Followers
  • 2
    Projects
  • 179
    Downloads

More from SnowFinch_Loran