Commit Graph

6421 Commits

Author SHA1 Message Date
Daniel Gibbs
6921851da6 feat(pvr): add fix_pvr.sh module 2023-09-08 08:49:30 +01:00
Daniel Gibbs
08057c88b8 Merge remote-tracking branch 'origin/develop' into develop 2023-09-07 23:39:49 +01:00
Daniel Gibbs
22e812f75c fix(ts3): update now works in docker 2023-09-07 23:39:43 +01:00
Daniel Gibbs
8f714822fe
feat(ci): game server update checker (#4298)
* refactor: shorten module update function names

The commit renames the update functions for several game modules to shorter names. The new names are more concise and easier to remember, which should improve code readability and maintainability.

* feat: Add Update Check workflow

This commit adds a new GitHub Actions workflow that checks if LinuxGSM is picking up game server config and parameter variables. The workflow runs on push and manual triggers, with concurrency settings to cancel in-progress jobs. It downloads linuxgsm.sh, installs dependencies, grabs the server, enables developer mode, installs the server, and updates it.

* feat: Add concurrency group names to workflows

The `details-check.yml` and `update-check.yml` workflows now have a concurrency group name that includes the branch or tag name. This will allow for better management of concurrent workflow runs.

* refactor: Update script names for Minecraft, Factorio, Jedi Knight 2 and Vintage Story

This commit updates the script names for Minecraft, Factorio, Jedi Knight 2 and Vintage Story. The update includes changes to command_check_update.sh, command_update.sh, core_functions.sh and install_server_files.sh. The new script names are update_mc.sh (formerly update_minecraft.sh), update_fctr.sh (formerly update_factorio.sh), update_jk2.sh (formerly update_jediknight2.sh) and update_vints.sh (formerly update_vintagestory.sh).

* feat: Add support for 32-bit architecture

This commit adds support for 32-bit architecture by running the command "sudo dpkg --add-architecture i386" instead of installing libxml2-utils and jq.

* feat: Add i386 architecture and install libstdc++6

This commit adds the installation of libstdc++6:i386 package to support 32-bit applications. It also includes adding the i386 architecture to dpkg.

* feat: Update dependencies for LinuxGSM

Changed the dependency from libstdc++6:i386 to libgcc-s1:i386 in the update-check.yml file. This change was made to ensure compatibility with newer versions of LinuxGSM.

* feat: Add update and force-update server functionality

This commit adds the ability to check for updates and force updates on a server. The update-check.yml file has been modified to include new jobs that run the LGSM_GITHUBBRANCH command with specific arguments.

* feat: Add dependencies for server installation

This commit adds the necessary dependencies to install a game server. The `update-check.yml` file has been updated to include the installation of `bsdmainutils`, `libsdl2-2.0-0:i386`, `libtinfo5:i386`, and `steamcmd`.

* steamcmd only

* steamcmd

* test

* test

* refactor: improve random password generation in install_config.sh

The code change refactors the random password generation in the `install_config.sh` file. Instead of using `tr -dc A-Za-z0-9_ < /dev/urandom | head -c 8 | xargs`, it now uses `tr -dc 'A-Za-z0-9_' < /dev/urandom 2>/dev/null | head -c 8 | xargs`. This change improves the reliability and security of generating random passwords.

* refactor: remove redundant code and set default branch

The commit refactors the code by removing redundant code that sets the branch to "public" if no custom branch is specified. This change simplifies the logic and improves readability.

* test

* fix: fix steamcmd build version retrieval

The code changes in this commit fix an issue with retrieving the build version from SteamCMD. The previous implementation was not correctly capturing the buildid. This has been resolved by adding additional echo statements for debugging purposes.

* test

fix: remove unnecessary app_info_print command

The commit removes the unnecessary `app_info_print` command from the code. This command was not needed to check the buildid.

* fix: GitHub Actions test failure

The code change fixes a failing GitHub Actions test by running SteamCMD twice. The first run is to update the app info, and the second run retrieves the build ID for the specified branch.

* Add steam user and password secret for jk2

* refactor: update steamuser and steampass paths in jk2server config

The code changes refactor the paths for `steamuser` and `steampass` in the configuration file of the `jk2server`. The previous paths were incorrect, so they have been updated to point to the correct location.

* refactor: update steamuser and steampass insertion in LGSM configuration

The code changes refactor the way steamuser and steampass are inserted into the LGSM configuration file. Instead of hardcoding the values, they are now dynamically inserted using environment variables. This improves flexibility and security when setting up the server.

* refactor: simplify steamuser and steampass insertion in update-check.yml

The code changes remove unnecessary sed commands and replace them with a single echo command to insert the values of STEAMCMD_USER and STEAMCMD_PASS into the common.cfg file. This simplifies the code and improves readability.

* feat: update steamuser and steampass in common.cfg

The commit updates the code to properly insert the `steamuser` and `steampass` values in the `common.cfg` file. The previous code was not correctly formatting the values, which caused issues with server installation. This change ensures that the values are properly formatted using double quotes for `steamuser` and single quotes for `steampass`.
2023-09-07 23:12:53 +01:00
Daniel Gibbs
16c4493d1d fix(monitor): migration code 2023-09-07 22:44:02 +01:00
Daniel Gibbs
fe610f3ec9 feat(inss): enable master server checking 2023-09-07 21:25:20 +01:00
Daniel Gibbs
ca184e32e3 fix(monitor): migration code 2023-09-07 21:23:41 +01:00
Daniel Gibbs
8cd16acfd0 fix: make pgrep unique
- Refactored the code to use `pgrep -fcx` instead of `pgrep -fc` for checking process counts.
- Updated print statements to provide more informative messages.
- Renamed some variables for clarity.
- Added newlines after printing information.
2023-09-06 22:01:18 +01:00
Daniel Gibbs
20f5e8d5dc feat(ps): Renamed pstbs to ps
Post Scriptum changed is name removing "The Bloody Seventh" part. I have updated the naming of this game server.
2023-09-06 19:27:05 +01:00
Daniel Gibbs
3959fa4bf4 fix(pstbs): correct gamename 2023-09-06 19:22:23 +01:00
Daniel Gibbs
89ec08c8f1 fix(pvr): add fix for libc 2023-09-06 16:40:34 +01:00
Daniel Gibbs
5593658107 fix(pvr): update executable details
PVR server has changed the name if its executable
2023-09-06 15:41:39 +01:00
Daniel Gibbs
a3c5a847e5 fix(start): lock file created before check
Even if check fails a lock file will be generated to allow monitor to run
2023-09-06 15:20:07 +01:00
Daniel Gibbs
82e5da4b1d fix(info_game): refactor key value pairs parsing
split out space and equals delimited
2023-09-06 14:27:15 +01:00
Daniel Gibbs
65e3a93d0d fix(unt): config is auto generated 2023-09-05 00:01:07 +01:00
Daniel Gibbs
8a9f34321d feat(inss): add optional gslt to start parameters 2023-09-04 23:11:56 +01:00
Daniel Gibbs
ac78fc1b8f
fix(pz): correct start parameters (#4305)
* refactor: remove unnecessary memory allocation in pzserver config

The startparameters variable in the pzserver configuration file was modified to remove the unnecessary memory allocation parameter. This change simplifies the configuration and improves efficiency.

* refactor: simplify startparameters in pzserver config

The startparameters in the pzserver config file have been simplified to only include the server name. This change removes unnecessary parameters and improves readability.
2023-09-04 22:10:41 +01:00
Daniel Gibbs
5f0f12a9b2
feat(vint): migrate to dotnet from mono (#4304)
* adde dotnet repo

* feat: update package dependencies for Ubuntu 16.04, 18.04, and 20.04

- Updated the package dependency for "vints" from "mono-complete" to "aspnetcore-runtime-7.0" in the Ubuntu 16.04, 18.04, and 20.04 CSV files.
- Also updated the package dependency for "vpmc" from "openjdk-8-jre" to "openjdk-11-jre" in the Ubuntu 18.04 and 20.04 CSV files.

This commit ensures that the correct package dependencies are specified for these Ubuntu versions, improving compatibility and functionality of the codebase.

* refactor: update dependency check for ASP.NET Core runtime

The code has been refactored to update the dependency check for the ASP.NET Core runtime. The condition that checks for the presence of "dotnet-runtime-7.0" has been changed to "aspnetcore-runtime-7.0". This ensures that the correct dependency is being checked and improves accuracy in determining if the required runtime is installed.

* fix: fix conditional statement in check_deps.sh

The commit fixes a bug in the conditional statement of the check_deps.sh script. Previously, it incorrectly checked if dotnetversion was empty instead of checking if it was not empty. This caused an incorrect value to be assigned to depstatus and dotnetinstalled variables. The bug has been fixed by correcting the conditional statement.

* refactor: simplify install_config.sh

This commit simplifies the `install_config.sh` file by removing unnecessary code for the "vints" configuration. The configuration is now generated on first run, and the list of config locations is still provided.

* refactor: improve error handling and display in core_exit.sh and install_config.sh

- In core_exit.sh, added a check to set exit code to 4 if it is not already set.
- In install_config.sh, improved the display of missing config file by highlighting the file path.

These changes aim to enhance the error handling and provide clearer information to users.

* feat: add exitcode handling to command_install.sh

The commit adds a check for the exitcode variable in command_install.sh. If it is empty, it sets it to 0. This change ensures proper handling of the exitcode in the script.

* refactor: improve installation process

The code changes in this commit refactor the installation process. The `command_install.sh` file has been modified to remove unnecessary code. Additionally, the `install_complete.sh` file has been updated to provide more informative messages based on the exit code. This improves the overall clarity and user experience during installation.

Co-authored-by: AI Assistant <assistant@example.com>

* refactor: remove redundant code in install_config.sh

The commit removes a redundant function call in the install_config.sh file. The "fn_list_config_locations" function is no longer needed for the "vints" configuration.

* a

* refactor: improve logging in command_stop.sh

- Changed `fn_script_log_error` to `fn_script_log_info` for consistency
- Removed unnecessary empty line

* refactor: dont try to stop a server that is already stopped

* refactor: remove redundant code and improve socket name generation

The commit refactors the code in `command_start.sh` and `linuxgsm.sh` to remove redundant code related to generating a unique tmux socket name. The code now creates a uid file if it doesn't exist, stops the running server, generates a uid using the current timestamp, and updates the socketname accordingly. This change improves the efficiency and reliability of socket name generation.

* refactor: remove unnecessary command_stop.sh call

The code change removes the unnecessary call to `command_stop.sh` in the `linuxgsm.sh` file. This improves efficiency and prevents lingering tmux sessions.

* refactor: remove duplicate code for creating unique tmux socket name

The code changes in `command_start.sh` and `linuxgsm.sh` refactor the creation of a unique tmux socket name. The duplicate code in `linuxgsm.sh` has been removed, resulting in cleaner and more efficient code.

* refactor: improve socketname assignment

The code change refactors the socketname assignment in the linuxgsm.sh script. Instead of directly assigning it to "${sessionname}-$(cat "${datadir}/${selfname}.uid")", it now checks if the file "${datadir}/${selfname}.uid" exists before assigning the value. This improves error handling and prevents potential issues when the file doesn't exist.
2023-09-04 21:24:27 +01:00
Daniel Gibbs
49be44db23 feat: add mono support for Ubuntu 22.04 and Debian 12
This commit adds support for Ubuntu 22.04 and Debian 12 in the check_deps.sh script. It includes the necessary commands to install dependencies for Mono repository on these versions of the operating systems.
2023-09-03 21:13:27 +01:00
Daniel Gibbs
aaff7c9bdb fix: Steam log symlink points to correct location
This commit adds the functionality to create a symbolic link for Steam logs if it is missing. The symlink is created in the specified log directory.
2023-09-02 01:05:06 +01:00
Daniel Gibbs
a5dbb4ad47 fix: add socketname to core_legacy.sh 2023-09-01 23:38:51 +01:00
Daniel Gibbs
b481ff1989 fix: resolve edge case where RHEL servers might have dpkg installed (#4302)
For reasons unknown you can install dpkg in RHEL so instead this now looks for apt, yum or dnf
2023-09-01 23:12:41 +01:00
Daniel Gibbs
7b374249ea
feat: change extip to public ip (#4301)
also change ark parms for epic to use publicip
2023-09-01 22:08:26 +01:00
Daniel Gibbs
6b9393f949 fix: improve sed command in fn_info_game_valve_keyvalues (#4300)
The sed command in the fn_info_game_valve_keyvalues function has been modified to improve its functionality. The change ensures that only the value between double quotes is captured, even if there are additional spaces before or after the value. This enhances the accuracy of extracting values from server configuration files.
2023-08-30 22:58:31 +01:00
Daniel Gibbs
2d6092186c
fix(steamcmd): resolve steamcmd goldsource download issues (#4297)
* 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.

* 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.

* fn_check_steamcmd_appmanifest is now a full check

* 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.

* fix: fix missing SharedDepots in appmanifest_90.acf

The code changes fix a bug where the SharedDepots entry was missing from the appmanifest_90.acf file. The commit updates the error messages and logs to reflect the correct filename. Additionally, it forces an update to resolve the issue.
2023-08-28 22:21:18 +01:00
Daniel Gibbs
4ddd8ee184
feat: tmux uniqueness (#4296)
* refactor: refactor tmux session handling

- 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.

* feat: stop server when generating uid

this should prevent issues when migrating to using uid

* refactor: lockfile handling

- 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

* refactor: improve backup and update monitoring

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.

* refactor: improve logging in core_exit.sh

- 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

* refactor: improve code readability and remove redundant code

- 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.

* feat: add exitbypass flag to prevent lingering tmux sessions

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.

* refactor: Refactor lockfile names for consistency and clarity

- 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.

* refactor: refactor check_last_update.sh, command_backup.sh, command_debug.sh, command_mods_remove.sh, command_monitor.sh, command_start.sh, command_stop.sh, command_ts3_server_pass.sh and core_steamcmd.sh

- Refactored code to improve readability and maintainability.
- Renamed variables for clarity.
- Removed unnecessary comments and unused code.
- Fixed typos and formatting issues.

* refactor: update lock file path in core_steamcmd.sh

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.

* refactor: improve file deletion in command_stop.sh

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.

* refactor: update lockfile name in command_monitor.sh

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.

* refactor: simplify start and stop command checks

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.

* refactor: simplify lockfile names and remove duplicate code

- 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.

* fix: corrected commandname

* fix: commandname skeleton

* refactor: improve file path handling in check_last_update.sh

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.

* feat: add update lock file

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

* refactor: rename libgcc_s.so.1 backup file

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.

* refactor: improve logging and error handling in command_monitor.sh

- 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.
2023-08-28 01:49:47 +01:00
maximalmax90
290eb6be3a
Update update_vintagestory.sh (#4286)
* build(deps): bump github/issue-labeler from 3.1 to 3.2 (#4258)

Bumps [github/issue-labeler](https://github.com/github/issue-labeler) from 3.1 to 3.2.
- [Release notes](https://github.com/github/issue-labeler/releases)
- [Commits](https://github.com/github/issue-labeler/compare/v3.1...v3.2)

---
updated-dependencies:
- dependency-name: github/issue-labeler
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update update_vintagestory.sh

* Update _default.cfg

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-27 22:03:44 +01:00
Daniel Gibbs
d83e9d9c57
feat: Migrate stats to Google GA-4 (#4295)
* refactor: simplify Google Analytics event tracking

This commit simplifies the code for sending Google Analytics events by using a single POST request instead of multiple cURL commands. The new approach sends all necessary parameters in a JSON payload, reducing redundancy and improving efficiency. Additionally, unnecessary event tracking for summary statistics has been removed.

Co-authored-by: AI Assistant <assistant@example.com>

* add plausable event api

* refactor: remove unnecessary header in info_stats.sh

The commit removes an unnecessary header in the info_stats.sh file. This change simplifies the code and improves readability.

* feat: add country code of external IP address

This commit adds functionality to retrieve the country code of the external IP address. If the country code is not already stored in a file, it uses curl to fetch it from https://ipapi.co/country and saves it in "${tmpdir}/countrycode.txt". If curl fails, an error message is displayed.

* feat: add country code to Google Analytics tracking

This commit adds the country code parameter to the Google Analytics tracking request in the `info_stats.sh` file. It also includes various server statistics such as CPU usage, memory usage, disk usage, distro name, game name, RAM usage, server CPU details, server disk details, server RAM details, and version information.

* refactor: update country code parameter in info_stats.sh

The commit updates the country code parameter in the info_stats.sh file. The previous parameter "country" has been changed to "countryId" for better clarity and consistency.

* feat: add countryId and version to Google Analytics tracking

This commit adds the "countryId" and "version" parameters to the Google Analytics tracking in the info_stats.sh script. Now, when the script sends data to Google Analytics, it includes information about the country and version of LinuxGSM being used.

* refactor: remove unused countryId parameter in info_stats.sh

The commit removes the unused "countryId" parameter from the info_stats.sh file in the lgsm/modules directory. This change improves code cleanliness and eliminates unnecessary code.

* feat: add LinuxGSM stats tracking

This commit adds functionality to track LinuxGSM server statistics using Google Analytics and a custom API. The code now sends POST requests to both services, providing information such as CPU usage, memory usage, disk space, server hardware details, and game-specific data. Additionally, the commit includes an alert feature that sends event data to Discord if enabled.

Co-authored-by: [Author Name]

* refactor: update event name in info_stats.sh

The commit updates the event name in the info_stats.sh file from "linuxgsm" to "pageview". This change ensures that the correct event is being tracked when sending data to the stats.linuxgsm.com API.

* feat: add virtual environment to info_distro, info_game, and info_stats modules

- Added code to retrieve the virtual environment using systemd-detect-virt command.
- Updated the condition for RHEL based distros in info_distro module.
- Removed code related to country code retrieval from external IP address in info_game module.
- Added virtual environment field to the payload sent to Google Analytics and LinuxGSM API in info_stats module.

* feat: remove unnecessary header in info_stats.sh

The commit removes an unnecessary header in the info_stats.sh file. The header was causing an issue with the API request.

* feat: update server stats and enabled alerts

- Updated the server stats to include virtual environment, LinuxGSM version, and enabled alerts.
- Removed unnecessary code for sending alert statistics.

* feat: add alert options to info_stats module

This commit adds new alert options to the info_stats module. The added options include discordalert, emailalert, gotifyalert, iftttalert, mailgunalert, pushbulletalert, pushoveralert, rocketchatalert, slackalert, and telegramalert. These options allow users to configure different types of alerts for their game server statistics.

* feat: add virtual environment tracking to info_stats module

This commit adds the ability to track the virtual environment in the info_stats module. The "virtualenvironment" field is now included in the data sent to Google Analytics.

* feat: add dynamic payload generation for Google Analytics

This commit adds the ability to dynamically generate the payload for sending events to Google Analytics. The payload now includes properties such as `discordalert`, `emailalert`, `gotifyalert`, and more, based on their respective values. This allows for more flexibility in customizing the payload sent to Google Analytics.

The code changes can be found in `info_stats.sh`.

* refactor: simplify payload construction

The code changes in this commit refactor the payload construction in the `info_stats.sh` file. The changes simplify the process by removing repetitive if statements and consolidating the payload parameters. This improves readability and maintainability of the code.

* refactor: refactor alert options in info_stats.sh

Refactored the code in info_stats.sh to improve readability and maintainability. Replaced individual alert options with a unified "alert" option, which now accepts values like "discord", "email", "gotify", etc. This change simplifies the code and makes it easier to add or modify alert options in the future.

* feat: Send stats to Google Analytics GA4

This commit adds the functionality to send server statistics to Google Analytics GA4. The payload includes metrics such as CPU usage, disk usage, memory usage, and server information. The data is sent using a POST request to the Google Analytics API.

The previous code that sent stats to the LinuxGSM stats endpoint has been removed.

Note: This commit does not include any specific file changes.

* refactor: simplify sending stats to Google Analytics

The code changes refactor the logic for sending stats to Google Analytics. The previous implementation had multiple if statements for different alert types, resulting in repetitive code. The refactored code now uses a function to generate the alert payload and reduces duplication. This improves readability and maintainability of the code.

Co-authored-by: John Doe <johndoe@example.com>

---------

Co-authored-by: AI Assistant <assistant@example.com>
Co-authored-by: John Doe <johndoe@example.com>
2023-08-27 21:50:10 +01:00
Daniel Gibbs
f68818d62b refactor: rename clear-modules command to cm;clear-modules
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.
2023-07-26 22:12:20 +01:00
Daniel Gibbs
6dd9709edb fix: add new info about steamcmd failures
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.
2023-07-26 21:21:35 +01:00
Daniel Gibbs
7d50e3a3a6 Merge branch 'release/v23.4.0' into develop 2023-07-21 21:23:25 +01:00
Daniel Gibbs
edcd2b7c8b feat: add serverfiles directory creation step
This commit adds a new step to the workflow that creates a "serverfiles" directory. This directory will be used for storing server-related files.
2023-07-21 01:00:41 +01:00
Daniel Gibbs
6815e3d3e1 Release v23.4.0 2023-07-21 00:54:39 +01:00
Daniel Gibbs
1ea6ebb4ee refactor(av): update querymode in avserver config
The querymode value in the avserver config file has been changed from 5 to 1. TCP query done on rcon port which may not be on
2023-07-21 00:33:06 +01:00
ChaCha
e9f2453e48
Fix(tmux): better tmux session handling for multiple instance on same server / user session (#3767)
* 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 <clement.chastanier@gmail.com>
Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk>
2023-07-20 22:54:05 +01:00
Daniel Gibbs
ab09a32410
fix: rework wurm server (#4266)
* 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.
2023-07-20 21:13:33 +01:00
Marcin Jakubowski
9be4a09497
fix(armar): fix parsing new a2s config (#4268) 2023-07-20 20:46:12 +01:00
Daniel Gibbs
1149efd57f fix(wet): correct queryport assignment 2023-07-12 15:17:19 +01:00
Marcin Jakubowski
c3d51d2d23
fix(armar): adapts game info to the new specification of server config (#4240)
* fix(armar): adapts game info to the new specification of server config

* fix(armar): back to legacy a2s settings
2023-07-12 14:05:21 +01:00
Daniel Gibbs
bbc5a98b48
feat: download appmanifest files for goldsrc games (#4260)
* 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.
2023-07-12 14:04:34 +01:00
Daniel Gibbs
db692b2610
fix(ti): Update config using evrima branch (#4263)
* 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.
2023-07-12 14:03:50 +01:00
Daniel Gibbs
d34bc29db6
feat: game server config migration (#4262)
* 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.
2023-07-12 12:17:31 +01:00
Daniel Gibbs
ce9f864f24
feat(rw): migrate rising world to unity engine (#4261)
* 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.
2023-07-11 17:27:34 +01:00
Daniel Gibbs
c13a7d003f fix(monitor): improve logging messages
- 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.
2023-07-10 16:42:16 +01:00
Daniel Gibbs
953efca700 fix: add missing Query port information to GoldSrc info message
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.
2023-07-10 13:35:06 +01:00
Daniel Gibbs
7f4111d167 fix(mta): update xml parsing
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.
2023-07-10 10:13:59 +01:00
Daniel Gibbs
e9cfa0103c Merge branch 'hotfix/v23.3.6' into develop 2023-07-05 16:56:04 +01:00
Daniel Gibbs
5cb6c9e3a1 Release v23.3.6 2023-07-05 16:52:39 +01:00
Daniel Gibbs
6726772bb1 refactor: update log directory configuration
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.
2023-07-05 11:18:33 +01:00
Daniel Gibbs
a6d24cdc77 refactor(jc3): update querymode and querytype in jc3server config
The `querymode` has been changed from "2" to "1" and the `querytype` has been cleared in the jc3server configuration file. This change refactors the way server queries are handled.
2023-07-04 21:42:44 +01:00