MinecraftServerControl / mscs

Powerful command-line control for UNIX and Linux powered Minecraft servers
https://minecraftservercontrol.github.io
BSD 2-Clause "Simplified" License
490 stars 61 forks source link

Using PaperMC with automatic updates #230

Closed TheManchineel closed 4 years ago

TheManchineel commented 4 years ago

PaperMC is a well-recognized, better performing and more customizable, fork of SpigotMC. It has a cleaner installation method too, via "Paperclips" which are JAR files that automatically download the official minecraftserver.jar and patch it, overwrite themselves with it, then seamlessly start the resulting Minecraft server JAR in the same shell.

To update it within mscs, I have to manually download the latest compiled Paperclip from https://papermc.io/ci/job/Paper-1.14/lastSuccessfulBuild/artifact/paperclip.jar where 1.14 can be replaced by a different major version (e.g. 1.13) to download the latest build for that version.

Could this be automated with the mscs update command?

zanix commented 4 years ago

This might get you what you need https://github.com/MinecraftServerControl/mscs#default-world-properties

You can customize the server update url and replace the version with $SERVER_VERSION

mscs-server-url=https://papermc.io/ci/job/Paper-$SERVER_VERSION/lastSuccessfulBuild/artifact/paperclip.jar

$SERVER_VERSION is set from the mscs-server-version property value which by default uses $CURRENT_VERSION. $CURRENT_VERSION is gathered from the JSON versions file download from Mojang,

MSCS uses the value from mscs-version-type which is either "release" or "snapshot". MSCS looks at the "latest" section of the JSON file to get the latest version numbers

  "latest": {
    "release": "1.14.4",
    "snapshot": "1.15-pre4"
  },

Then replaces $CURRENT_VERSION with the value from the JSON. You can override any these variables by looking at the link above.

If you can replace the version JSON with something else with the same format, you could have MSCS auto-update the server jar. Or you can just update mscs-server-version when you want to update.

mscs-server-version=1.14

Hopefully this is enough to help.

compieter-gh commented 4 years ago

That work's but i recommend you use "https://papermc.io/api/v1/paper/$SERVER_VERSION/latest/download" instead because it has more version control and is better too use for example you can download 1.15 or 1.15.1 also has support back too 1.8.8

Edit: you have to set this tho i think too get this working "mscs-default-server-jar=paperclip-$SERVER_VERSION.jar"

Roflicide commented 4 years ago

@TheCompieter I've updated the the new wiki page with this information. I'm assuming you've figured it out, if you have any other questions please feel free to open another issue :)