RunServerDotPy
A script to run a Java Minecraft server, and can run special ChatCommands, automatically back up the server, and log important information.
"Incredible. Best program I have ever used. 11/10 stars. (Note: I was NOT paid to write this review)" -@Tiger-Tom
This script has the following features (besides interfacing with the Minecraft server as a command line):
Support for Linux, and partial support for Windows (most things work on Windows, and things that don't are either disabled or have warnings)
Support for modding to add new or modify existing ChatCommands and help strings (see https://github.com/Tiger-Tom/RunServerDotPy-extras/blob/main/ModExamples/MainModExample.py)
Automatically backing up to a zip file every time the server starts (only on Linux)
Automatically restarting the server if it stops or crashes for whatever reason
Special commands that can be run through chat (some of them can also only be run by "admin" users, who you can configure through a file)
Randomized MOTDs and server icons
Profanity detection and logging
Automatically logging things of interest (chat, profanity, errors, and unusual behavior)
Synchronous and asynchronous commands and functions
Ability to "refresh" itself, which can be useful for development (refresh shuts down the server, closes open files, and then replaces RunServerDotPy with a new instance of itself) (done using the builtin ChatCommands, although this one can only be run by an admin)
Ability to reload the configuration at any given time (done using the builtin ChatCommands, although his one can only be run by an admin)
A web interface that uses encryption (the password is given to the user in-game, so that only they can decrypt the data) to send ChatCommands (up to admin/sudo level) and view the server's output as if you were at the console
And more!
Fun fact: the original RunServer.py script that I made was around 825 lines, and my goal for the new version (this one) was to make it more efficient, but I still ended up with more lines (hopefully the extra lines are just because of better commenting, better spacing, and more features being added)
Table of contents for version 4.0 (Generated by "RunServerTOC.py" in https://github.com/Tiger-Tom/RunServerDotPy-extras/)
-0000 ┌╢START OF FILE
-0008 ├─Imports
-0048 ├─Enforce minimum Python version
-0059 ├─Directories
-0071 ├─Fix main RunServerDotPy directory if missing
-0074 ├─Setup some module-related things
-0077 ├─Setup some values
-0087 ├─Setup profanity filter
-0094 ├─Base simple functions
-0235 ├─Get username for Ubuntu
-0238 ├─Fix cache dir (if missing)
-0241 ├─Configuration
-0316 ├─Auto-update
-0361 ├─Command generation
-0364 ├─Logging
-0451 ├─Minecraft server utilities
-0557 ├─ChatCommands
-0918 ├─Web interface
-1052 ├─Minecraft server handling
-1059 ├─Keyboard input handler
-1078 ├─Things that run on startup
-1198 ├─Main
-1201 └╢END OF FILE