Resource Pack Manager icon

Resource Pack Manager -----

Automatically merge & host all your Resource Packs using a priority system!



Discord | Wiki | Patreon
This development log video is all I have right now, a dedicated one will come soon!

Got more than one plugin that uses resource packs?
Tired of having to manually merge them, get the SHA1 and host them every time you change something?
Want to simply drag and drop and immediately have custom models working for everyone online?

This plugin is the solution!
Main Features:
  • Automatically merges all of your server's resource packs!
  • Automatically hosts your resource pack!
  • Automatically sends the resource pack to players when they log in!
  • It is also possible to add packs to be merged manually!
  • 24/7 support! I'm on discord 100% of the time, 90% of the time!
  • And best of all, no setup or maintenance required!
How it works:
ResourcePackManager automatically grabs the resource packs from automerge-compatible plugins, then automatically merges them based on the priority list set in config.yml.
Once the resource packs are merged, they are automatically hosted remotely, and the resource packs are then immediately sent to the users.
You can configure whether you want to use the auto-hosting feature or not in config.yml, and if you have non-compatible resource packs you can place them manually in the mixer folder and it will merge them.

Limitations:
ResourcePackManager attempts to merge resource packs where possible. It can not resolve fundamental incompatibilities between resource packs, such as in cases where two GUIs use the same unicode for spacing, or when two plugins try to set the same ID for the model of an item. In those cases, the plugin with the highest priority will be used.

Setting the plugin up:
Just put ResourcePackManager.jar into your plugins folder and restart.
The plugin works with the recommended settings by default. You can modify these in the configuration files of the plugin.

Automerge-compatible plugins:
- FreeMinecraftModels (recommended models plugin!)
- EliteMobs (recommended bosses plugin!)
- EternalTD (recommended minigame plugin!)
- BetterHUD
- ItemsAdder (requires unencrypting in config and stopping it from hosting)
- MMOInventory
- ModelEngine
- Nova
- Oraxen
- ValhallaMMO (requires running /valhalla resourcepack download)
- BackpackPlus
- RealisticSurvival
- Vane-Core

If you have a plugin that you want compatibility added for, let me know on the discord!


Commands:
  • /resourcepackmanager reload - Reloads the plugin
  • /resourcepackmanager data_compliance_request - Downloads all the data associated to the server (so you can inspect what is being hosted, you don't have to run this command for the plugin to work)

Auto-hosting:
For your convenience, ResourcePackManager can automatically host the resource packs remotely on my servers, at my expense. This is made possible by the generous Patreon supporters who allow me to afford the servers required to do this.
Auto-hosting is set to be used by default. You can disable it in the config.yml.

Automatic hosting data policy & TOS
### ResourcePackManager Data Policy and Compliance

**ResourcePackManager**, developed by MagmaGuy for the Nightbreak game studio, includes an optional auto-host feature that temporarily hosts resource pack data on a remote server.

As of this writing, the hosted data is fully anonymous and serves the sole purpose of simplifying the distribution of resource packs to clients of servers utilizing this service. Future versions of this document may be updated to reflect any changes in data policy and other related matters.

This system complies with:
- **Directive 2000/31/EC** of the European Parliament and of the Council of 8 June 2000
- **Regulation (EU) 2022/2065** of the European Parliament and of the Council of 19 October 2022

For data hosting transparency and compliance with these and other European norms, it is possible to obtain all data related to a server via the `/resourcepackmanager data_compliance_request` command. This command packages a full copy of all files and data associated with the requesting server.

To request the takedown of your server's data, contact MagmaGuy at `magmaguy/at\nightbreak.io` (replace `/at\ ` with `@`). However, due to the system's design, data is only retained for up to 24h after a server using ResourcePackManager shuts down, making email requests largely unnecessary. Nonetheless, the option remains available to ensure full compliance with European norms.

### Data Handling by ResourcePackManager and Nightbreak Servers

1. **Resource Pack Creation**
- ResourcePackManager aggregates resource packs on your server into a single zipped file containing all custom content.

2. **Initialization Request**
- An initialization request is sent to remote servers, creating a `.txt` file with a random UUID. This file can be obtained via the `/resourcepackmanager data_compliance_request`.

3. **SHA1 Request**
- ResourcePackManager transmits the SHA1 code of your resource pack to the remote server, which is saved in the `.txt` file.

4. **File Transmission**
- The zipped resource pack file is sent to the remote server, assigned the same UUID as the `.txt` file. This file can be obtained through `/resourcepackmanager data_compliance_request` and verified to be identical to the original in your output folder, as it is not modified by the Nightbreak servers.

5. **"Still Alive" Ping**
- ResourcePackManager sends a "still alive" ping every 12 hours, transmitting the UUID to the server, which updates the timestamp in the `.txt` file.
- If no "still alive" ping is received for over 24 hours, all data associated with that UUID (the `.txt` file and the resource pack) is deleted from the Nightbreak servers.

### Data Policy

- **Pseudonymous Identification:** Nightbreak assigns a random UUID to your server's files each time the server reboots, ensuring no IP address or identifiable information is stored unless users manually add such information to their resource packs.
- **No Download Logging:** Nightbreak does not log any data related to download requests by Minecraft clients.
- **No Data Sales:** Data uploaded to Nightbreak is not, has never been, and will never be sold.
- **Compliance with Takedown Requests:** Nightbreak will comply with takedown requests from both server administrators and law enforcement agencies.
- **Automatic Data Removal:** All data associated with your server is automatically removed 24 hours after your server shuts down and is reuploaded on every restart for as long as ResourcePackManager is in use and using the auto-host feature.

### Terms of service

As of writing this, the hosting service is provided for free for all users of ResourcePackManager.

It is the user's responsibility to ensure that the data uploaded to servers is not illegal and complies with any Mojang TOS as defined in their EULA.

Abusing the service to host material other than resource packages may result in a permanent denial of service for the offending IP.

The service may, at any time, cease or be modified in such a way that makes old versions unable to connect to it.

We reserve the right to unilaterally terminate this service at any time and for any reason.



[​IMG]
[​IMG] [​IMG]
[​IMG] [​IMG]


API & more detailed info:
A prototype API is now out in the class ResourcePackManagerAPI. If your soft-depend on ResourcePackManager you will be able to register a resource pack with this method:

Code (Text):

registerResourcePack(String pluginName,
                                        String path,
                                        boolean encrypts,
                                        boolean distributes,
                                        boolean zips,
                                        boolean local,
                                        String reloadCommand)
 
Then in the same class you can call reloadResourcePack() which will reload the plugin and apply any changes you sent to the plugin.

Maven:

Code (Text):

<repository>
  <id>magmaguy-repo-releases</id>
  <name>MagmaGuy's Repository</name>
  <url>https://repo.magmaguy.com/releases</url>
</repository>

<dependency>
  <groupId>com.magmaguy</groupId>
  <artifactId>ResourcePackManager</artifactId>
  <version>1.2.0</version>
</dependency>
 



[​IMG]
Resource Information
Author:
----------
Total Downloads: 1,842
First Release: Aug 2, 2024
Last Update: Dec 14, 2024
Category: ---------------
All-Time Rating:
4 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings