
A plugin for automatic caching of server resourcepack's SHA1 hash. This allows you to not specify hash manually, while letting players join with downloading the pack only once
This plugin helps your players avoid re-downloading server resource packs when you already have them.

The plugin keeps track of your server resource pack's Id, URL and SHA-1 hash:
You can check that with /urlhashesstate:

If you updated the pack's url, the plugin will update the hash automatically, because the URL changed.
But if your link is always the same, you can easily run a command to update the hash whenever you want:
/urlHashesUpdateHash to update the SHA-1 hashOr even tell the plugin to completely change the link to a new version and update the hash:
/urlHashesChangePackUrl to change the resource pack link and update hashesBoth will tell you that it started to download the pack to determine it's hash:

And everything will always be visible in your console too:

You can tell the plugin to save the data between restarts:
/urlhashestogglesaving to toggle data saving
So when the server restarts or reloads, it won't download the pack again:

Note, that with saving and the same link all the time, you'll need to run /urlHashesUpdateHash yourself. Again, only if your link stays the same between updates.
You can edit plugin's settings in the config (plugins/config/ProvidePackHashes)
The only exclusive option there at the moment is whether you allow players (with permissions) to change the pack URL, or just console (by default).
Paper servers (1.21 - 1.21.8)
You can have the same behaviour on your client, if you play on a server with this issue and you aren't an administrator.
For this, use my Fabric client-side mod: Remember Url Hashes