Please sign in to access this page

MCServerWiz

MCServerWiz

13 devlogs
28h 59m
•  Ship certified
Created by Vevaan Verma

A utility that allows users to easily install and configure a Minecraft java server on their computer, which they can then run and have people join.

Timeline

Updating the project JDK multiple times to try and make the app more compatible lol
I might end up changing it back to the original zulu 21, but I need to figure out how to bundle the JDK through launch4j.
I also tried again to fix closing the bat/sh files when running is complete by adding a script within the files themselves. I'm pretty sure it works a lot better this time since it doesn't risk not generating any files due to closing when the EULA is detected. The base command remains the same within both file contents.

Update attachment
  • Added more print statements to clarify things to the user (invalid memory amount, recommended memory amounts, client recommendations, etc.)
  • Fixed up the MOTD setter to allow multi-line inputs and set the input correctly in the server.properties file
  • Fixed sh files to make sure they actually run on Linux and macOS by creating individual file contents for both .bat and .sh files
  • Set the current directory to the folder that contains the sh file to ensure the process starts properly because the run files weren't being found before
Update attachment

Added an option to turn on the server after setup is complete. As of right now, this feature is not available for forge since full forge setup is not supported due to it being wildly different from the other setups. As always, turning on the server is an OPTION, because this application wants to give the user as much control as possible over server setup without requiring them to interact with the bat/run files or any of the complex files involved in setting up a server.

Update attachment

Finally finished my first attempt at adding file closing to the bat/sh files that run initially to create the EULA and start the server. The program closes the run file once it detects the creation of the EULA (which might actually be an issue because it could prevent the creation of files that come after, I will have to test for this). This feature makes it a lot simpler for the user as they don't even have to worry about seeing the bat file lol

Update attachment
  • Added an intro message to the program that displays where our info is sourced from and where the JAR files are downloaded from
  • It also just displays instructions for how the program should be used
  • Found a way to detect the current operating system and used that to change the setup since the setup is different per operating system (run.bat is for Windows, run.sh is for Linux/macOS)
Update attachment
  • Implemented the actual MOTD input with strict validation. This system allows multi-line MOTDs to be set as the input is ended once the user types DONE. MOTDs are set in the server.properties file
  • Made first attempt at handling the Forge server creation exceptions. Separate instructions are given for forge after the bat file is run
  • Clarified many of the instructions to make the application as simple for the user as possible. Many links are added to allow the user to read more on what they are trying to do if they feel the need to do so. Instructions are given on how the user can retrieve their IP to connect to the server. Many other small things are also provided (how to op players, how others can connect to your server, how to change other server settings like render distance, seed, and the MOTD, etc.)
Update attachment
  • Project name changed to MCServerWiz (messed with my time tracking lol, I was wondering why my minutes weren't tracking for so long)
  • Added a server MOTD setter, which doesn't actually allow input at the moment; it is just the backend functionality. Input system/validation will be added next
  • Currently Forge servers do not work since their creation process is a lot different from the other supported types
  • We tested the clients that work well with our system since many of them are very difficult to retrieve the jars for or have an entirely different process for setup. We narrowed it down to Paper, Fabric, Forge, & Vanilla. Forge works quite differently, but we still kept it since it is a very popular option
Update attachment

Ship 1

1 payout of shell 25.0 shells

Vevaan Verma

8 days ago

Vevaan Verma Covers 6 devlogs and 14h 55m
  • Added RAM allocation with input validation
  • Added bat file running, which allows the user to be handsfree when using the application (as in, they don't have to run the right file and risk doing something wrong)
  • Added EULA acceptance system with input validation to ensure the server can be fully setup (honestly, it is one of the weirdest steps in the process because it prevents the server from starting for the first time until the user changes the EULA value to true)
  • Finally got the EULA waiting system working. It took MANY tries to make this system functional and reliable, but now the application will wait until the EULA is created before continuing to ensure a smooth, errorless experience
Update attachment

Added the client, version, and server/profile name inputs with heavy validation to ensure no weird inputs that cause errors can be given by the user. Profile/server folder name is specifically validated to ensure no names are given that cannot be used in the operating system folder names, including CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, COM0, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, LPT0, and the symbols that cannot be used in file names either.

Update attachment

Restarted the project to switch from command arguments to an actual input system through the console as that is much easier for a typical user to deal with. Command arguments can get a little difficult, especially as more arguments are added to customize the server further. An actual user-friendly input system would make this a lot simpler for anyone to understand.

Update attachment

Added a version testing method to validate the inputted version as each client has different supported versions on the website being used to retrieve the JAR files. It sends a request to the URL with the inputted version and if an error code is returned, the version is considered invalid. The user is then asked to input a different version over and over until they select a valid one.

Update attachment

Added input validation to the client & version inputs in the console to ensure the user can't input crazy values or incorrect values that don't make sense for them in their specific case. Created a much better menu for the client choice to make it a lot easier for the user to understand.

Update attachment

Added a networking method for retrieving the server jar file from an online resource. Invalid server jars and incorrect inputs are also handled. The server jar takes the client and version as input (which are retrieved from the user).

Update attachment