Releases: ServerMod/MultiAdmin
Releases · ServerMod/MultiAdmin
MultiAdmin 3.2.1
Misc Changes
- Added automated config documentation generation to the
GITHUBGEN
command - 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_location
config 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_folder
tofolder_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_full
config 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_timeout
andserver_restart_timeout
config options - Added
folder_copy_round_queue
andrandomize_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
port
launch 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_nolog
still logging (#203 #205) - Fixed
EXIT
causing an error when run before the server is fully started - Modified
ConsoleUtils.ClearConsoleLine(int index, bool returnCursorPos = false)
to useBuffer
properties rather thanWindow
properties - 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.exe
orSCPSL.x86_64
based on OS - Rename
OutputThread
toOutputHandler
- 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
TimeStamp
fromServer.cs
toUtils.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.cs
initialization - Lock thread when reading a server message file
- Changed Session ID to use Ticks instead of Unix Time seconds
- Re-wrote the
NEW
command for the new multi system - Modified
InputThread.cs
to not always capitalize input - Added
StartServerFromId
toProgram.cs
- Switched
Program#AutoStartServerDirectories
from creating an instance ofMultiAdminConfig
to creating an instance ofServer
and usingServer#ServerConfig
- Added
Program#ServerIds
- Added
Program#AutoStartServerIds
- Changed
RestartRoundCounter
to 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.IsProcessHandleZero
toUtils.IsProcessHeadless
and 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
--headless
or-h
OutputHandler
should now handle file read attempts better, sleeping 2 ms between general failed attempts and an extra 3 ms forUnauthorizedAccessException
sOutputHandler
file reading now occurs in a for loop instead of a while loop- Properly
StopServer
whenkillGame = false
- Don't exit
MainLoop
until process ends - Add
closeGame
toServer#StopServer()
- Properly dispose
GameProcess
- Fixed
Server#MainLoop()
never exiting - Added new colored console printing system
- Changed the
EXIT
command 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