Please sign in to access this page

MCServer++

MCServer++

19 devlogs
32h 27m
Created by Benjamin Yang

A minecraft server manager built with next.js, supporting Fabric/Paper (and mods/plugins) downloads.

Timeline

Ship 1

Benjamin Yang

4 days ago

Benjamin Yang Covers 19 devlogs and 32h 27m
Earned sticker

Realized I needed to add the ability to set memory allocation (should be last devlog before ship) and also needed the daily sticker

Update attachment
Earned sticker

Ready to ship, attached a video showing the functions of the app so far

Earned sticker

Finished writing the Dockerfile and setup for deployment with docker-compose. The app will now create servers in a defined location instead of allowing the user to set the path, due to the virtual environment. Also fixed a bug where startup failure on the subprocess would still push it to the running list, and it would be stuck running without any way to stop off.

Update attachment
Earned sticker

Finished the implementation of Java detection on Unix and Windows platforms, and began dockerizing the app for deployment.

Update attachment
Earned sticker

Implemented the ability to change the Java binary that will be used to run the server, and auto-detection of Java binaries in defined install paths.

Update attachment

Added types to most locations and began implementing the ability to change the install of Java that will be used for running the server (required for versions of Minecraft that require versions of Java other than the default version)

Update attachment
Earned sticker

Added support for fabric mods downloads from modrinth, and fixed a condition where if the mod/plugin download failed, its record would still be updated.

Earned sticker

Added basic fabric server support (downloading and updating, mods not supported yet). The video has a server crash in it because i had another server running

Add function for adding/removing servers, there is a limitation that the directory must be manually inputed as text, as client-side cannot get directories from select dialog (security reasons)

Tidied up the server.properties modification view, using the json mappings to decide label, input box type, and hover text (extended description)

Update attachment

Created the name/description mappings for the keys in server.properties, which can later be integrated into the ui to make it less confusing

Update attachment

Added a ui to modify the server.properties file which contains the server settings. As it is in java properties file format, it first needs to be parsed into json. Later I will create mappings for labels instead of the property ids shown now.

Update attachment

Implemented the ansi escape sequences usually in the terminal using ansi_up to convert them to html, and began the reading/writing function of the server.properties to modify server settings

Update attachment

Running server instances from inside the app now works, including status, log, start/stop, etc. Uses node.js child_process to spawn the server, and stores the instance, which can be retrieved by the app.

Update attachment

Added more plugin sources (Bukkit, PaperMC Hangar). Bukkit downloads don't support versioning as I could not find an api, only a 'download latest' link per plugin. I also did some bug fixes and small improvements in the UI.

Update attachment

Finished the entire software management view - updating plugins, updating the server software, adding and removing plugins. Currently the app only supports paper for server software through the papermc api, but spigot support is planned. Plugins support spigot, direct urls, and github releases, and bukkit support is planned

Update attachment

Implemented version checking when downloading plugins and integrated download functions into ui.

Implemented downloading jarfiles of plugins from SpigotMC, GitHub Releases, and direct urls.

Update attachment

Made the ui and started working on plugin file downloading.

Update attachment