- Added error handling for PIDs with identical tmux sessions running, killing them and restarting the server.
- Added error handling for PIDs with the same tmux session and socket names running, killing them and restarting the server.
The code has been refactored to improve clarity and readability. The variable `libgccc_so` has been renamed to `libgccc_so.bak` for better understanding of its purpose. This change ensures that the backup file for libgcc_s.so.1 is correctly named and easily identifiable.
Add functionality to create an update lock file when validating and updating SteamCMD. This prevents potential conflicts with customised files.
- Create a lock file with the current timestamp in the "command_validate.sh" script
- Create a lock file with the current timestamp in the "update_steamcmd.sh" script
The code changes refactor the file path handling in check_last_update.sh to use the correct lock directory. This ensures that the last update time is correctly retrieved and compared with the last start time.
- Renamed lockfiles from "${selfname}-started.lock" to "started.lock", "${selfname}-starting.lock" to "starting.lock", "${selfname}-stopping.lock" to "stopping.lock", and "${selfname}-update.lock" to "update.lock".
- Removed duplicate code for removing stale lockfiles in fn_monitor_check_starting(), fn_monitor_check_stopping(), fn_monitor_check_backup(), fn_monitor_check_update(), update_factorio.sh, update_jediknight2.sh, update_minecraft.sh, update_minecraft_bedrock.sh, update_mta.sh, update_papermc.sh, update_ts3.sh, update_ut99.sh, and update_vintagestory.sh.
- Updated references to the renamed lockfiles in the respective functions.
The code in `command_start.sh` and `command_stop.sh` has been refactored to simplify the checks for the start and stop commands. Instead of checking if `exitbypass` is empty, it now directly checks if `firstcommandname` matches specific values ("START", "RESTART" for start command, and "STOP" for stop command). This change improves readability and reduces unnecessary conditions.
The lockfile name has been changed from "${selfname}-started.lock" to "${selfname}-monitoring.lock" in the fn_monitor_check_lockfile function. The code has also been refactored to remove unnecessary checks and fixes for the lockfile.
The code change refactors the file deletion process in the command_stop.sh script. Instead of using an empty redirect, it now directly removes the specified lock file. This improves clarity and ensures proper cleanup when stopping a command.
The lock file path in the core_steamcmd.sh script has been updated to use the correct variable. This change ensures that the lock file is created in the correct directory.
- Renamed "${lockdir}/${selfname}-laststart.lock" to "${lockdir}/${selfname}-last-started.lock"
- Renamed "${lockdir}/backup.lock" to "${lockdir}/stopping.lock"
- Renamed "${lockdir}/${selfname}-start.lock" to "${lockdir}/${selfname}-started.lock"
- Renamed "${lockdir}/${selfname}-starting.lock" to "${lockdir}/${selfname}-stopping.lock"
This commit refactors the lockfile names in the codebase for better consistency and clarity. The changes make it easier to understand the purpose of each lockfile and improve readability.
The code changes in `command_start.sh` include adding an `exitbypass` flag to prevent lingering tmux sessions. This flag is used to stop the running server before creating a unique uid for the tmux socket name.
- Refactored the `fn_monitor_check_starting` function to check for stale lockfiles and print appropriate messages.
- Refactored the `fn_monitor_check_stopping` function to check for stale lockfiles and print appropriate messages.
- Removed redundant code that deletes the update lockfile in `command_update.sh` and `command_validate.sh`.
- Improved code readability by removing unnecessary comments.
- Changed the grep command to include the -a flag to handle non-text files
- Updated sed command to remove "modulefile=" from the output and redirect it to dev-debug-module-order.log
The code in `command_monitor.sh` has been refactored to enhance the monitoring of backups and updates. The conditions for checking if a backup or update is running have been modified to include additional checks using `pgrep`. This change improves the accuracy of the monitoring process.
- Removed unnecessary function fn_start_jk2()
- Removed unused variable startparameters in fn_start_tmux()
- Added comments to clarify code functionality
- Renamed lockfile from "${lockdir}/${selfname}.lock" to "${lockdir}/${selfname}-start.lock"
- Updated log messages and log file names to include timestamp
- Updated the code to use the variable `socketname` instead of `sessionname` when interacting with tmux sessions.
- Added logic to create a unique socket name using a UID if it doesn't already exist.
- Refactored multiple functions (`fn_start_jk2`, `fn_start_tmux`, `fn_stop_graceful_ctrlc`, `fn_stop_graceful_cmd`, `fn_stop_graceful_goldsrc`, `fn_stop_graceful_avorion`, and `fn_stop_tmux`) to use the new socket name for tmux commands.
This commit improves the readability and maintainability of the code by separating the concept of session names from socket names, allowing for more flexibility in managing tmux sessions.
The commit renames the clear-modules command to cm;clear-modules in the core_getopt.sh file. This change improves clarity and consistency in the codebase.
This commit fixes an issue in the core_dl.sh script where disk write failures and missing update files were not being handled correctly. Now, when a disk write failure or missing update files occur during the download process, appropriate error messages are displayed and logged.
* fix(tmux): force tmux to create a new trmux server instance for each game instance to avoid sharing same pid.
* refactor: improve tmux command consistency and add session name flag
This commit refactors the code to improve consistency in the usage of the `tmux` command. It adds the `-L` flag followed by the session name to all `tmux` commands. This ensures that all commands are executed within the correct session. Additionally, it updates the `check_status.sh`, `command_console.sh`, `command_send.sh`, `command_start.sh`, `command_stop.sh`, and `info_distro.sh` files to include this change.
The changes ensure that all relevant commands are executed within the specified session, improving code readability and maintainability.
---------
Co-authored-by: cclecle <[email protected]>
Co-authored-by: Daniel Gibbs <[email protected]>
* feat: copy missing directories
Copy the Creative and Adventure directories if they are missing in the server files. This ensures that the necessary directories are present for proper functioning of the server.
* refactor: update default configuration for Wurm server
- Updated the default configuration file for Wurm server.
- Added predefined parameters for game mode, home kingdom, admin password, epic settings, home server, login server, max players, server name, IP address, and ports.
- Modified start parameters to include the new predefined parameters.
- Removed unnecessary lines related to glibc version and sourcing the server config file.
- Updated backup directory path.
* feat: add rmiport and rmiregport to startparameters
This commit adds the `rmiport` and `rmiregport` parameters to the `startparameters` configuration in the Wurm server default config file. These parameters are used for remote method invocation (RMI) port configuration.
* feat: update Wurm server configuration and information
- Updated the default configuration file for the Wurm server.
- Added a new parameter for server-to-server communication.
- Modified the game information script to display the RMI and RMI Registry ports.
This commit improves the configuration and information retrieval for the Wurm server.
* refactor: update startparameters in wurmserver config
The startparameters variable in the wurmserver config file has been updated to remove unnecessary single quotes around the gamemode parameter. This change improves consistency and readability of the code.
* refactor: update startparameters in wurmserver config
The startparameters variable in the wurmserver config file has been updated to include additional parameters for the game server. This change ensures that the server starts with the correct settings and configurations.
* refactor: remove unnecessary start parameter
The commit removes the 'start' parameter from the server's start parameters in the default configuration file. This change simplifies the configuration by removing an unnecessary parameter.
* refactor: update default value for adminpassword in fn_info_game_wurm
The default value for the adminpassword variable in the fn_info_game_wurm function has been updated to "NOT SET" instead of "0". This change ensures that the admin password is properly initialized when not explicitly set.
* feat: add link to Wurm Unlimited server administration documentation
Added a link to the Wurm Unlimited server administration documentation in the default configuration file for LGSM's Wurm server. This will provide users with easy access to information on managing their game servers.
* refactor: remove unnecessary configs in wurmserver config
The commit removes unused lines in the wurmserver configuration file. The removed lines include servercfgdir, servercfg, servercfgdefault, and servercfgfullpath. These lines are no longer needed and have been removed to clean up the code.
* add appmanifest files to data
* refactor: improve appmanifest check and force update logic
The code changes refactor the `fn_appmanifest_check` function in the `core_steamcmd.sh` file. The improvements include:
- Checking if `BytesDownloaded` and `BytesToDownload` match, and forcing an update if they don't.
- Checking if `BytesStaged` and `BytesToStage` match, and forcing an update if they don't.
- For GoldSrc engine, checking if `SharedDepots` exists in the appmanifest file, and forcing an update if it doesn't.
- Fetching missing appmanifest files from GitHub for specific game shortnames.
These changes enhance the reliability of the appmanifest check process and ensure that updates are forced when necessary.
* a
* refactor: improve removal of appinfo.vdf file
The code has been refactored to improve the removal of the appinfo.vdf file. The find command now redirects error output to /dev/null for a cleaner execution.
* a
* fn_check_steamcmd_appmanifest is now a full check
* a
* a
* feat: add support for fetching appmanifest files
This commit adds support for fetching appmanifest files from the GitHub repository. The code now fetches the appropriate appmanifest files based on the game's shortname and updates them in the serverfiles/steamapps directory. This change ensures that the correct appmanifest files are used, fixing an issue related to updating certain games.
* more appmanifest files
* feat: add appmanifest_10.acf for Counter-Strike
Added the appmanifest_10.acf file for Counter-Strike to resolve an issue with missing SharedDepots. This commit fetches the necessary files from GitHub and forces an update to correct the issue.
* refactor: simplify start parameters in tiserver config
The start parameters in the tiserver config file have been simplified to only include the default map and port. The unnecessary queryport and eaclaunch parameters have been removed.
* refactor: update default configuration and game info handling
- Set `steammaster` to false in the default configuration file.
- Refactor the game info script to handle changes in the game's ini file structure:
- Update the key for `queueenabled` to `bQueueEnabled`.
- Update the key for `rconenabled` to `bRconEnabled`.
- Add support for retrieving `rconpassword`, `serverpassword`, and `serverpasswordenabled`.
- Modify the message formatting in the info messages script to display queue, RCON, and query ports correctly.
* refactor: simplify game directory names in install_config.sh
The commit simplifies the game directory names in the install_config.sh file. It replaces specific game directory names with a generic variable, shortname, to improve code readability and maintainability.
* fix: handle invalid directory paths
The code now checks if the server files or system directory exist before proceeding. If either directory does not exist, an error message is printed and the script exits.
* refactor: update default executable name for Rising World server
The default executable name for the Rising World server has been updated from "server.jar" to "RisingWorldServer.x64". This change ensures that the correct executable is used when launching the game server.
* refactor(rw): no longer java
The code in `info_messages.sh` has been refactored to simplify the port command for multiple game servers. This change improves readability and maintainability.
* refactor: simplify info_game_rw function
The info_game_rw function has been refactored to remove redundant code and improve readability. The configuration values are now retrieved using the fn_info_game_keyvalue_pairs function, which reduces duplication and improves maintainability. Additionally, the default values for configip, gamemode, maxplayers, port, queryport, rconport, seed, servername, and worldname have been set to appropriate fallback values if they are not found in the server configuration file.
* refactor: remove unnecessary game ports and query HTTP port
The code changes in this commit refactor the `info_messages.sh` file by removing unnecessary game ports and the query HTTP port. This simplifies the code and improves readability.
* refactor: update queryport calculation in info_game.sh
The code change updates the calculation of the queryport variable in the info_game.sh script. Instead of assigning it the same value as port, it now subtracts 1 from the port value. This ensures that queryport is set correctly for further use in the script.
* feat: add branch configuration option for rwserver
This commit adds a new configuration option `branch` to the `_default.cfg` file in the `rwserver` directory. The default value is set to "unity". This allows users to specify a specific branch for SteamCMD when installing or updating the server.
* refactor: update default game server configuration
The default game server configuration file has been updated to reflect the following changes:
- Removed the predefined parameter `javaram`
- Updated the value of `consoleinteract` to "yes"
- Updated the values of `engine` and `glibc`
These changes ensure that the default configuration is more up-to-date and aligned with the desired behavior for a Rising World game server.
* refactor: remove unnecessary code for game+1, game+2, and game+3
The code changes in this commit involve removing unnecessary code related to the variables port2, port3, and port4. These variables were used to display information about additional games (game+1, game+2, and game+3) in the output. However, since these variables are not being used elsewhere in the script, they have been removed along with the corresponding echo statements. This refactor simplifies the code by eliminating redundant logic.
- Refactored the `fn_monitor_check_lockfile`, `fn_monitor_check_backup`, and `fn_monitor_check_install` functions in the `command_monitor.sh` file.
- Updated the logging messages to provide more concise and informative output.
- Replaced `fn_print_info_nl` with `fn_print_info` for consistency.
- Removed unnecessary line breaks in the logging messages.
This commit adds the functionality to display the Query port information in the GoldSrc info message. The Query port is now shown alongside the Game and Client ports.
The `fn_info_game_mta` function in the `info_game.sh` file has been refactored to update the parameters passed to the `fn_info_game_xml` function. The parameter names have been changed from "port" to "serverport", "httpport" to "httpport", "servername" to "servername", "maxplayers" to "maxplayers", and "ase" to "ase". This change improves code readability and consistency.
The log directory configuration has been updated for multiple game servers. The LGSM_LOGDIR environment variable is now checked and used if available, otherwise the default root directory is used. This change ensures that the correct log directories are set for each server.
The `fn_monitor_check_update` function has been refactored to improve readability and efficiency. Specifically, a specific check for docker has been added to ignore the command "watch -n 1800 ./csgoserver update". Additionally, the logic for updating the `monitorps` variable has been simplified.
The code changes refactor the `fn_monitor_check_lockfile` function to include additional checks for backup and debug modes. The new functions `fn_monitor_check_backup` and `fn_monitor_check_debug` are added to handle these checks. Additionally, the `fn_monitor_check_install` function is introduced to check if an installation is currently running. The existing check for active updates in the `fn_monitor_check_update` function is also improved.
These changes enhance the monitoring functionality by providing more comprehensive checks for different scenarios, ensuring that the monitor does not run when certain conditions are met.
The code changes remove the unnecessary check for the presence of a Docker environment in multiple scripts. Instead, they now only check if the current user is not root. This simplifies the logic and improves readability.
- Simplify root user check in `check.sh`, `check_deps.sh`, `check_permissions.sh`, `check_root.sh`, `command_install.sh`, `core_exit.sh`, and `linuxgsm.sh`
- Remove redundant checks for Docker environment
- Improve code readability
The commit fixes a typo in the command name "cmd_sponso" to "cmd_sponsor" in the core_getopt.sh file. This change ensures that the correct command is used for donation options.
This commit improves the way server configurations are parsed by using xmllint to extract values from XML files. The eval function is also used to assign the extracted value to a variable.
This commit adds a temporary fix for upgrading Satisfactory from Update 7 to Update 8. A symlink is created between UnrealServer-Linux-Shipping and UE4Server-Linux-Shipping until the update is released.