MinecraftServerControl / mscs

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

Fabric Support #285

Closed Infinidoge closed 2 years ago

Infinidoge commented 3 years ago

Hello, mscs seems like an amazing tool to put to use running my servers.

However, looking through the documentation, I can't find any mention of support for Fabric. Is there a technical reason why Fabric isn't supported, or has it just not been added to the tool yet?

(Also this should probably have the question label added, I can't add it myself.)

zanix commented 3 years ago

Someone would need to figure out how it works on write up a guide similar to the other modded/alternate server docs https://minecraftservercontrol.github.io/docs/mscs/adjusting-world-server-properties. My guess is that it's similar to Forge or SpigotMC

sandain commented 3 years ago

Hi @Infinidoge. I imagine @Zanix is right here. Try following the documentation for installing a Forge or SpigotMC server. I doubt there are any specific changes that need to happen to get Fabric to work.

Infinidoge commented 3 years ago

@sandain Alright, good to know, thanks! After experimenting with that, would it help to submit a PR to add it to the documentation?

sandain commented 3 years ago

@Infinidoge: That would be fantastic. If you run into any issues, feel free to add more comments to this Issue for help.

I have finally finished my move across the country, and am in the process of unpacking my office. I should have my test server set back up in the near future (hopefully tonight). So, if you hit a rough spot, I might be able to help replicate the issue by trying to install Fabric myself.

Infinidoge commented 3 years ago

After a bit of testing, installing Fabric is pretty similar to forge, but there is a key thing that should probably be noted. The Fabric jar generates a config in the server folder to say which server jar it points to, so at the moment in testing it is pointing to a server jar in the world folder by default. (Which seems to be against the design intent of MSCS.)

I'll look into the possibility of setting a jar via the command it is run with, but there is a possibility that the config file will need to be edited to refer to the center minecraft_server.$server_version.jar file

bitRAKE commented 3 years ago

I don't know if this is the right way - just what I've done that worked:

This allows me to have several versions of fabric/minecraft. Mapping errors will happen if an unexpected minecraft version is used with a configured fabric launcher. The working directory of the server jar is the world folder, so fabric reads the configuration from there.

Changing versions would only require changing the link and updating the .properties files.

jayhendren commented 3 years ago

I imported an existing Fabric world, which I was running previously on the same server without MSCS. The only changes I needed to make were to edit these values in the world's mscs.properties:

Otherwise, seems to be working quite well with no other customizations needed for Fabric. So basically my experience lines up with @bitRAKE's. I probably could've moved the fabric launcher jar to /opt/mscs/server like bitRAKE did instead, but personally I thought it was easier to keep the existing directory structure of my imported world and update the MSCS configuration to match, rather than the other way around.