* 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>
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 <clement.chastanier@gmail.com>
Co-authored-by: Daniel Gibbs <me@danielgibbs.co.uk>
* 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 `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.
The querymode and querytype values in the mohaaserver config have been updated. The new values are querymode="1" and an empty string for querytype. This change refactors the configuration to use a different method for querying game server information.
The commit updates the querymode to "1" and removes the value for querytype in the _default.cfg file. This change refactors the configuration related to querying game servers.
Mordhau query port no longer starts with the server. Disabling querying
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.
- Set `consoleverbose` to "yes" in BTL Server configuration
- Remove redundant line in KF Server configuration
- Remove redundant line in RO Server configuration
- Update VH Server executable path and remove redundant line
- Update BTL Server game version to Ubuntu 20.04 in serverlist.csv
Added triggers to the workflow file `trigger-docker-build.yml` to build Docker images for LinuxGSM and GameServer. The trigger for GameServer is dependent on the completion of the LinuxGSM build.
Added triggers to the workflow file `trigger-docker-build.yml` to build Docker images for LinuxGSM and GameServer. The trigger for GameServer is dependent on the completion of the LinuxGSM build.
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
- Updated the operating system version for Action: Source server from ubuntu-22.04 to ubuntu-20.04
- Updated the operating system version for Arma Reforger server from ubuntu-22.04 to ubuntu-20.04
The `querymode` and `querytype` values in the btserver configuration file have been updated. The new values are `1` for `querymode` and an empty string for `querytype`. This change ensures that the correct query mode is used for server queries.
The commit updates the `querymode` to "1" and removes the value for `querytype` in the UT3 server configuration file. This change ensures that the correct query mode is used for server queries.
The query mode has been changed from "4" (gsquery) to "5" (tcp) in the solserver configuration file. Additionally, the query type has been cleared. This ensures that the server uses TCP for querying and removes any specific query type.
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.
The commit adds the libxml2-utils package to several CSV files. This change is necessary for the proper functioning of some scripts that depend on this package.