Skip to content

Releases: ServerMod/MultiAdmin

MultiAdmin 3.2.1

13 Jun 23:03
0cef724
Compare
Choose a tag to compare

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

24 May 20:43
85cd8b1
Compare
Choose a tag to compare

Config Changes

  • Changed files_to_copy_from_folder to folder_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

03 Apr 19:11
162e7f7
Compare
Choose a tag to compare
  • 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

27 Mar 17:40
1c756a6
Compare
Choose a tag to compare

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

22 Mar 16:05
49f7346
Compare
Choose a tag to compare

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 and server_restart_timeout config options
  • Added folder_copy_round_queue and randomize_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 use Buffer properties rather than Window 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

15 Feb 22:10
04d1912
Compare
Choose a tag to compare

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, and config_location
  • Made MultiAdmin.exe look for SCPSL.exe or SCPSL.x86_64 based on OS
  • Rename OutputThread to OutputHandler
  • 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 from Server.cs to Utils.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 to Program.cs
  • Switched Program#AutoStartServerDirectories from creating an instance of MultiAdminConfig to creating an instance of Server and using Server#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() to Program#StartServer() and now takes an input of a Server object
  • Changed Utils.IsProcessHandleZero to Utils.IsProcessHeadless and add a check for Program.Headless
  • Use Utils.GetFullPathSafe(path) now instead of Path.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 for UnauthorizedAccessExceptions
  • OutputHandler file reading now occurs in a for loop instead of a while loop
  • Properly StopServer when killGame = false
  • Don't exit MainLoop until process ends
  • Add closeGame to Server#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() to Utils#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

09 Sep 10:55
Compare
Choose a tag to compare
  • Support for swapping config_remoteadmin.txt
  • Added MA config multiadmin_nolog. Default to false.

MultiAdmin 2.1.1

27 Aug 05:43
Compare
Choose a tag to compare

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

28 Jun 07:28
Compare
Choose a tag to compare
  • 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

27 May 22:58
Compare
Choose a tag to compare
  • 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