https://github.com/PaperMC/Paperclip
Bootstrap utility and launcher for the Paper Minecraft server
https://github.com/PaperMC/Paperclip
Last synced: about 1 year ago
JSON representation
Bootstrap utility and launcher for the Paper Minecraft server
- Host: GitHub
- URL: https://github.com/PaperMC/Paperclip
- Owner: PaperMC
- License: mit
- Created: 2016-01-22T06:47:52.000Z (over 10 years ago)
- Default Branch: main
- Last Pushed: 2024-06-18T22:19:22.000Z (almost 2 years ago)
- Last Synced: 2024-10-29T21:59:23.025Z (over 1 year ago)
- Language: Java
- Homepage:
- Size: 330 KB
- Stars: 120
- Watchers: 17
- Forks: 51
- Open Issues: 5
-
Metadata Files:
- Readme: readme.md
- License: license.txt
Awesome Lists containing this project
README
Paperclip
=========
A binary patch distribution system for Paper.
Paperclip is the launcher for the Paper Minecraft server. It uses a [bsdiff](http://www.daemonology.net/bsdiff/) patch
between the vanilla Minecraft server and the modified Paper server to generate the Paper Minecraft server immediately
upon first run. Once the Paper server is generated it loads the patched jar into Paperclip's own class loader, and runs
the main class.
This avoids the legal problems of the GPL's linking clause.
The patching overhead is avoided if a valid patched jar is found in the cache directory.
It checks via sha256 so any modification to those jars (or updated launcher) will cause a repatch.
Building
--------
Building Paperclip creates a runnable jar, but the jar will not contain the Paperclip config file or patch data. This
project consists simply of the launcher itself, the [paperweight Gradle plugin](https://github.com/PaperMC/paperweight)
generates the patch and config file and inserts it into the jar provided by this project, creating a working runnable jar.