Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version 3.0.0 Update #200

Merged
merged 38 commits into from
Feb 15, 2019
Merged

Version 3.0.0 Update #200

merged 38 commits into from
Feb 15, 2019

Conversation

ButterscotchV
Copy link
Collaborator

@ButterscotchV ButterscotchV commented Feb 3, 2019

  • 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
  • Implemented multi-config mode, multiple servers can now be run at the same time
  • 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

Dankrushen added 24 commits December 28, 2018 20:28
- Update README.md
- Add more configs
 - "disable_config_validation"
 - "share_non_configs"
 - "config_location"
- Made MultiAdmin.exe look for "SCPSL.exe" or "SCPSL.x86_64" based on OS
- Other minor changes
- 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"
- Add missing config "servers_folder" to README.md
- 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
- Changed default value of "share_non_configs" to true
- Update README.md
- Implemented multi-config mode, multiple servers can now be run at the same time
- Fixed "ServerDirectories" returning nothing if the Directory exists
- 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"
- Update README.md
This should fix problems with MemoryChecker, RestartNextRound, StopNextRound, and TitleBar (possibly more)
Dankrushen added 3 commits February 3, 2019 19:46
- 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
Dankrushen added 6 commits February 4, 2019 21:50
- 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 "UnauthorizedAccessException"s
- "OutputHandler" file reading now occurs in a for loop instead of a while loop
- Don't exit "MainLoop" until process ends
- Add "closeGame" to "Server#StopServer()"
- Properly dispose "GameProcess"
- 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 👌
Dankrushen added 2 commits February 8, 2019 13:31
- Changed "InactivityShutdown" to use TimeSpan instead of getting seconds in UnixTime, this should fix compatability issues with older versions of mono
- 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
@ButterscotchV ButterscotchV changed the title Version 3.0 Update Version 3.0.0 Update Feb 8, 2019
Dankrushen added 3 commits February 9, 2019 11:46
- Changed server status system, it now uses an enum to tell the current status of the server and restarts internally rather than externally
- Renamed "MultiColorWriteLock" to "WriteLock"
- 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
- Fixed "Utils#TimeStampMessage()" not adding a space between the timestamp and the message
- 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant