Releases: ServerMod/MultiAdmin
Releases · ServerMod/MultiAdmin
MultiAdmin 3.2.1
Misc Changes
- Added automated config documentation generation to the
GITHUBGENcommand - Updated config documentation (as a result of automated generation)
- Added Mono version checker
- Changed license from CC-BY-SA 4.0 to MIT
Bug Fixes
- Fixed
config_locationconfig hierarchy handling and added protection against infinite looping and the code locking up - Made server session deletion safer
- Fixed bug with session staying after an error in execution, MultiAdmin should now attempt to delete it when it's closed
MultiAdmin 3.2.0
Config Changes
- Changed
files_to_copy_from_foldertofolder_copy_whitelist - Added
folder_copy_blacklist, a list of files not to copy from the specified folder on reload - Added
folder_copy_round_queue_whitelist, a list of files to copy from the next folder in the round queue - Added
folder_copy_round_queue_blacklist, a list of files not to copy from the next folder in the round queue - Added
safe_server_shutdown, whether to safely exit servers when MultiAdmin is closed - Added
set_title_bar, whether to set the console window's title
Misc Changes
- Added config names and descriptions to the code, this may be used later to generate documentation
- Moved configs to a better system
- Added Native Exit Signal watchers, MultiAdmin should now attempt to stop the server(s) when you close the program
- Added basic AssemblyInfo with name, description, and version
- Added recursive loading of config location and MultiAdmin configs
- Added console colour retention, unless a console message has a defined colour, the original console colours should stay the same rather than defaulting to white on black
Bug Fixes
- Hopefully fixed OutputHandler stopping output
- Added null safety for the global config to Program logging and printing
- Made logging catch exceptions and print them instead of crashing
MultiAdmin 3.1.2
- Fixed the
start_config_on_fullconfig starting a new instance repeatedly every time the server is full, now it only creates one instance at a time
MultiAdmin 3.1.1
Config Changes
- Changed "multiadmin_debug_log" to default to true
- Added "use_new_input_system", if false, the original input system will be used
Misc Changes
- Added tag logging to all debug messages
- Fixed "Server#ReloadConfig()" being called in init, this caused some features to run accidentally
- Moved new input system to a separate method so that it can be easily disabled
- Added startup printing for config file paths
- Added version to the MultiAdmin info command
Bug Fixes
- Fixed console line clearing on Linux
MultiAdmin 3.1.0
New Configs
- Added config
port(Preparing for next game release, currently does nothing) - Added config
copy_from_folder_on_reload - Added config
files_to_copy_from_folder - Added
server_stop_timeoutandserver_restart_timeoutconfig options - Added
folder_copy_round_queueandrandomize_folder_copy_round_queue - Added
multiadmin_debug_log,multiadmin_debug_log_blacklist,multiadmin_debug_log_whitelist - Added a super secret config option
Misc Changes
- Handles servers not running ServerMod better, doing a simple trick to try soft restarting without ServerMod
- MultiAdmin now displays the ServerMod build along with the version
- MultiAdmin now creates the config files by default, hopefully this should make configuring MultiAdmin less confusing for new users
- Rewrote Server Write methods to be based off a single method and branch off
- Wrote a custom input handler for InputThread to solve problems with the input text not staying throughout console messages
- Listens to key presses in the console and handles them in a switch statement
- Custom cursor handler with string modification methods
- Custom paged string section printer for handling long input
- Custom keyboard bindings for navigating the input area and modifying the text
- Added command history to InputThread with a max of 25 commands of history
- Added decimals to memory left output
- Added file copying on config reload with wildcard support for choosing which files to copy
- Execution flags should now also accept boolean values
- Added Server ID entry when all servers are set to manually start
- Added debug logging, this logs to it's own file separate from any of the other logs
- Added
portlaunch argument
Bug Fixes
- Hopefully fixed a bug with MultiAdmin still listening for input while the server is shutting down
- Fixed MemoryChecker not disabling properly with a value of -1 (#204)
- Hopefully fixed MemoryChecker spamming console
- Fixed
multiadmin_nologstill logging (#203 #205) - Fixed
EXITcausing an error when run before the server is fully started - Modified
ConsoleUtils.ClearConsoleLine(int index, bool returnCursorPos = false)to useBufferproperties rather thanWindowproperties - Optimized StringSection processing so that it only splits the input text when needed, and stores the result
- Optimized StringSection printing so that it only re-draws the string when needed
- Separated "InputThread#WriteInput()" and "InputThread#SetCursor()" and added "InputThread#WriteInputAndSetCursor()"
- Removed useless "InputThread#SubText()" and "InputThread#AddText()" methods, and replaced with "Remove()" and "Insert()"
MultiAdmin 3.0.0
For a quick guide on updating to MultiAdmin v3 plus some helpful information: https://pastebin.com/Yma740Xa
- Use FileSystemWatcher instead of read directory loop
- Remove Smod3 color tags
- Fix input keypresses being cut on Linux
- MultiAdmin no longer swaps config files, it now passes their location directly to the game
- Re-write README.md
- Add more configs:
disable_config_validation,share_non_configs, andconfig_location - Made MultiAdmin.exe look for
SCPSL.exeorSCPSL.x86_64based on OS - Rename
OutputThreadtoOutputHandler - Made OutputHandler instance based rather than fully static
- Added proper disposal after the main server loops ends
- Removed
FileManager.cs - Better null handling in
Config.cs - Remove unused event
IEventMatchStart, it was never called - Moved
TimeStampfromServer.cstoUtils.cs - Better null handling in
InputThread.cs - Attempt to stop all servers on program exit
- Re-arrange and organize
Server.cs - Updated .gitignore
- Better null handling for ServerConfig
- Added custom exceptions
- Combined the two memory checkers
- Better null handling for SessionId
- Fixed server crash restarts
- Optimized log file variables to only update when needed, instead of every call
- Re-arrange variable initialization in
Server.csinitialization - Lock thread when reading a server message file
- Changed Session ID to use Ticks instead of Unix Time seconds
- Re-wrote the
NEWcommand for the new multi system - Modified
InputThread.csto not always capitalize input - Added
StartServerFromIdtoProgram.cs - Switched
Program#AutoStartServerDirectoriesfrom creating an instance ofMultiAdminConfigto creating an instance ofServerand usingServer#ServerConfig - Added
Program#ServerIds - Added
Program#AutoStartServerIds - Changed
RestartRoundCounterto check if the round count is greater than equal to the number of rounds to restart - MultiAdmin now uses full paths wherever possible
- Re-worked multi-server execution code to use Server objects for everything
- Changed
Program#StartServerFromId()toProgram#StartServer()and now takes an input of a Server object - Changed
Utils.IsProcessHandleZerotoUtils.IsProcessHeadlessand add a check forProgram.Headless - Use
Utils.GetFullPathSafe(path)now instead ofPath.GetFullPath(path)to prevent an exception and simply return null - Don't run the input thread if MultiAdmin is set to headless mode
- Added headless mode, can be activated with arguments
--headlessor-h OutputHandlershould now handle file read attempts better, sleeping 2 ms between general failed attempts and an extra 3 ms forUnauthorizedAccessExceptionsOutputHandlerfile reading now occurs in a for loop instead of a while loop- Properly
StopServerwhenkillGame = false - Don't exit
MainLoopuntil process ends - Add
closeGametoServer#StopServer() - Properly dispose
GameProcess - Fixed
Server#MainLoop()never exiting - Added new colored console printing system
- Changed the
EXITcommand to attempt to kill the process if being run before any round has started, as that seems to cause issues otherwise - Improved and fixed Soft Memory Restart so it no longer spams and prints out more detailed messages
- Made TimeStamp a property in Utils
- Changed
Utils#TimeStamp()toUtils#TimeStampMessage() - All printing and logging lock a single object as to be thread safe and print in order
- Standardized output reading to watching files, this works both on Windows and Linux effectively
- Watch specifically the session directory, hopefully this should decrease CPU usage for running multiple servers and make it run faster
- Changed server status system, it now uses an enum to tell the current status of the server and restarts internally rather than externally
- Added "IEventWaitingForPlayers", this runs every time the "Waiting for players.." message is sent
- "OutputHandler" now only removes a single newline from the end of a console message
- Put "ProcessFile" in a try catch statement
- Removed process handle check
- Moved "Server#MaVersion" to "Program#MaVersion"
- Reset "EXIT" command on restart so that the process is killed if the server hasn't started yet
MultiAdmin 2.1.2
- Support for swapping config_remoteadmin.txt
- Added MA config multiadmin_nolog. Default to false.
MultiAdmin 2.1.1
Implemented swapping custom config files.
You can now have your own config files for ServerMod plugins.
Filename must be started with sm_config_
MultiAdmin 2.1.0
- General bugfixes (BufferHeight error fixed)
- Updated MultiAdmin info to credit all contributors
- Removed donation link
- Added more color printing options
- Made config case-insensitive
- Made negative memory values disable memory checks
- Added support for newer ServerMod version output (For ServerMod version 3.1.6-B or above)
MultiAdmin 2.0.1
- Update config to use in-game YAML reader
- Re-wrote config updater so it works better
- Move MultiAdmin config options to MultiAdmin config (scp_multiadmin.cfg)
- Update MultiAdmin config (scp_multiadmin.cfg) to use YAML now