* feat(alert): add new alert types
- Added new alert types for different scenarios such as stopped, started, restarted, monitor session failure, monitor query failure, wipe, and info.
- Updated the `alert.sh` script to include functions for each new alert type.
- Modified the `command_monitor.sh` script to use the appropriate alert type based on the monitoring results.
* feat: remove more info if not enabled
* refactor: refactor alert functions and add color codes
This commit refactors the alert functions in the `alert.sh` module. It adds color codes for different types of alerts, such as green for started/restarted alerts, red for stopped/monitor session/query/permissions alerts, and blue for update/config/wipe/info alerts. The commit also updates the alert emoji to better represent each type of alert.
* feat: add colour to discord alert
* refactor: improve Pushbullet alert sending
The code in the `alert_pushbullet.sh` file has been refactored to improve the way Pushbullet alerts are sent. The curl command now includes the access token as a header instead of in the URL, resulting in more secure communication with the Pushbullet API. This change enhances the reliability and security of sending Pushbullet alerts.
* feat: add alert icon and footer to Discord alerts
- Added a new variable `alerticon` to store the URL of the alert icon image.
- Included the `alerticon` in the JSON payload for both short info and no info alerts.
- Added a footer with text "Sent by LinuxGSM v23.5.3" to the JSON payload for both short info and no info alerts.
This commit enhances the appearance of Discord alerts by adding an icon, a footer, and additional information about the sender.
* refactor(alert): refactor alert functions
- Refactored the alert functions to improve code readability and maintainability.
- Renamed variables for better clarity and consistency.
- Updated function names to be more descriptive of their purpose.
- Reorganized the order of function definitions for better organization.
* feat: add first batch of icons
* refactor: improve serverlist validation script
The commit refactors the serverlist validation script to include a new check. It now compares all game servers listed in `serverlist.csv` to `$shortname-icon.png` files in `lgsm/data/gameicons`. If a game server is listed in `serverlist.csv`, it should have a corresponding `$shortname-icon.png` file. The commit adds a loop that checks for the existence of these files and outputs an error message if any are missing.
* another batch of icons
* more icons
* updated icons
a
* feat: add serverlist game icon validation
This commit adds a new script `serverlist-validate-game-icons.sh` that checks if all the game servers listed in `serverlist.csv` have a corresponding `shortname-icon.png` file. It also verifies that the number of game icons matches the number of servers in `serverlist.csv`. The script is executed as part of the workflow defined in `serverlist-validate.yml`.
Co-authored-by: [co-author-name]
* refactor: improve game icon validation script
The commit refactors the game icon validation script to improve its functionality. It adds a check for unexpected game icons and ensures that the number of game icons matches the number of servers in serverlist.csv. The commit also updates error messages for better clarity and readability.
* refactor: remove unused mumble-icon.png game icon
The code changes involve removing the unused mumble-icon.png game icon. This change helps to clean up the codebase by removing unnecessary files.
* feat: update game icons
Updated the game icons for bf1942, pmc, vints, vpmc, and wmc. Changed resolution to 32px
* feat(alert): add alert action and information to Discord message
- Added a new variable `alertaction` to store the action performed in the alert
- Modified the Discord message template to include the alert action and information
- Updated the author name in the Discord message template to "LinuxGSM Alert"
The changes allow for more informative and descriptive alerts in Discord messages.
* feat(alert.sh): add alertaction variable
This commit adds the `alertaction` variable to the `fn_alert_*` functions in the `alert.sh` module. The `alertaction` variable is used to specify the action that triggered the alert, such as "Started", "Stopped", "Restarted", etc. This allows for more informative and descriptive alerts.
* refactor: rework email alert
* feat: add environment detail
* refactor: simplify Discord and Pushbullet alert message handling
The code changes in this commit refactor the way Discord and Pushbullet alert messages are handled. The previous implementation used separate variables for short information and no information scenarios, but now it uses a single variable for both cases. Additionally, the code now checks if the "alerturl" is empty instead of comparing it to a specific value.
These changes improve code readability and maintainability by reducing redundancy and simplifying conditional logic.
* title
* fix: update Pushover alert message formatting
The commit fixes the formatting of the Pushover alert message by removing unnecessary information and adding a conditional check for the presence of an alert URL.
* refactor: improve formatting of server IP value in Discord alert
The code changes in this commit refactor the formatting of the server IP value in the Discord alert. The value is now enclosed in single quotes for better readability.
* refactor: improve alert message formatting and remove unnecessary code
The commit refactors the alert message formatting in the `alert_pushbullet.sh`, `alert_slack.sh`, and `alert_telegram.sh` files. It improves the structure and readability of the messages by using proper markdown syntax. Additionally, it removes unnecessary code from the files to simplify their implementation.
* more changes
* feat: add server name and information fields to Discord alert
The code changes in the `alert_discord.sh` file include adding new fields for server name and information to the JSON payload sent in a Discord alert. This allows for more detailed information about the server to be included in the alert message.
refactor: improve conditional logic for Gotify alerts
In the `alert_gotify.sh` file, the code changes involve improving the conditional logic for determining which JSON payload to use when sending a Gotify alert. The updated logic checks if an alert URL is provided and selects the appropriate JSON payload accordingly.
chore: update field names in IFTTT alerts
The changes made in `alert_ifttt.sh` involve updating field names in the JSON payloads used for IFTTT alerts. The field names have been modified to match a consistent format across all fields.
fix: correct body formatting in Pushbullet alerts
The code changes made in `alert_pushbullet.sh` address an issue with incorrect body formatting in Pushbullet alerts. The body of the alert now includes separate lines for each piece of information, such as server name, information, game, server IP, hostname, and more info.
refactor: improve attachment structure in RocketChat alerts
In `alert_rocketchat.sh`, the code changes involve improving the attachment structure of RocketChat alerts. The updated structure includes separate sections for server name, information, game, server IP, hostname, and more info.
feat: add additional sections to Slack alerts
The changes made in `alert_slack.sh` include adding additional sections to Slack alerts. These sections provide separate blocks of text for server name and information within each message.
feat: add HTML formatting to Telegram alerts
In `alert_telegram.sh`, HTML formatting has been added to Telegram alerts. This allows for bold text styling and clickable links within each message sent via Telegram.
* bug
* bug
* refactor: improve alert message formatting
- Refactored the code in `alert_pushover.sh` and `alert_telegram.sh` to improve the formatting of the alert messages.
- Updated the message structure to include the server name before other information.
- Added line breaks for better readability.
- Made sure that all variables are properly interpolated within the messages.
* bug
* remove rocketchattoken
* feat: add alert types for server start, stop, restart, and wipe
- Added new alert types for server start, stop, restart, and wipe.
- Updated the `alert.sh` module to include functions for handling these new alert types.
- Modified the `command_start.sh`, `command_stop.sh`, and `command_wipe.sh` modules to trigger the corresponding alerts when appropriate.
- Updated the `alert_rocketchat.sh` module to display the relevant information for each alert type in Rocket.Chat notifications.
* refactor: update alert messages in lgsm/modules/alert.sh
- Updated the alert messages for when the game server is stopped, started, restarted, and when an LinuxGSM update is received.
- Changed the wording to use "has been" instead of "has" for consistency.
- Added a mention that the server has been restarted after receiving an LinuxGSM update.
* bug
* refactor: update alert emojis and add server time
- Updated the alert emojis in the `alert.sh` module.
- Added the server time to the alert messages in various modules (`alert_discord.sh`, `alert_gotify.sh`, `alert_ifttt.sh`, `alert_pushbullet.sh`, `alert_pushover.sh`, `alert_rocketchat.sh`, and `alert_slack.sh`).
* refactor: remove date from alert messages
The commit refactors the code in `alert_discord.sh` and `alert_slack.sh` to remove the date from the alert messages sent by LinuxGSM. This change simplifies the message content while still indicating that it was sent by LinuxGSM and includes the version number.
* feat: add statusalert option to server configs
This commit adds the "statusalert" option to the default configuration files for various game servers. The "statusalert" option allows users to enable or disable alerts on server start, stop, and restart events. This feature provides more flexibility in managing server notifications.
* feat: add alert for update and restart if necessary
The code change adds an alert for updates and restarts the service if necessary. This ensures that the service is restarted after an update to prevent any issues.
* feat: add backup alert functionality
This commit adds a new function `fn_alert_backup` to the `alert.sh` module. This function sends an alert when the system has been backed up. The alert includes a message, action, emoji, sound, and color.
In addition, this commit modifies the `command_backup.sh` module to trigger the backup alert by setting the variable `alert` to "backup" and calling `alert.sh`.
The purpose of these changes is to provide notifications when backups are created.
Co-authored-by: AI Assistant <[email protected]>
* refactor: change alert color to green
The code in the `alert.sh` file has been refactored to change the alert color from blue to green. This change updates the `alertcolourhex` and `alertcolourdec` variables accordingly.
---------
Co-authored-by: AI Assistant <[email protected]>
* refactor: remove unnecessary comments in default server configurations
The commit removes unnecessary comments from the default server configurations. The comments were providing instructions to edit the configuration files with care, but they are not needed and can be safely removed.
* refactor: update server names in default configuration files
- Updated the servername value in multiple default configuration files to "LinuxGSM" for consistency.
- Refactored the code to reflect the changes made.
* refactor: rename fn_script_log_fatal to fn_script_log_faail
to create more consistency with naming
* feat: improve console output formatting
- Added separator function to improve readability of console output.
- Replaced multiple instances of manual separators with the new function.
- Updated commit message to follow conventional commit standard.
* refactor: remove unnecessary fn_sleep_time calls
This commit removes the fn_sleep_time function calls that are no longer needed in multiple modules. The fn_sleep_time function was used to introduce a delay, but it is no longer necessary for the current implementation.
* better standardise random
* removed bold where not required
The code change modifies the tail command in the fn_info_logs function to exclude lines containing "==>". This improves the display of log files by filtering out unnecessary information.
- Updated the IP and port settings for ckserver, colserver, fctrserver, hwserver, ohdserver, rustserver, and untserver.
- Added a link to the documentation for predefined parameters in ckserver and hwserver.
- Modified the startparameters value in colserver to include additional parameters.
- Changed the branch value in fctrserver to "stable".
- Updated the servername value in hwserver and ohdserver to "LinuxGSM".
- Modified the defaultmap value in hwserver to "nullius".
- Removed optional comments from hwerver regarding defaultmap and creativemode values.
- Updated gamemode values in rusterver and untserer with their respective options.
* 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.
* 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.
* 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: 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.
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
- 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
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.
* feat(btl): rename bt1944 to btl (#4124)
* fix(bt1944): update binary file
* feat(btl): rename bt1944 to btl
* rename gameworld to worldname
* rename autosaveinverval to saveinterval
* rust seed
* add exit code to details
* update some variables
* comment
* update random
* current refactor
* modules
* json
* xml
* add core modules to functions dir
* functions
* fix
* use xmllint for parsing xml
* check root
* check logs
* sdtd
* quakec
* changes
* remove dev null
* arma3
* add detect details
* config origin
* fix: cmw mkdir bug
* ini improvements
* further ini improvements
* dst ini
* revert
* httpport
* max players
* source engine
* fix: cannot iterate over null
* fix quakec
* fix(nec): no query port
* more updates
* more updated
* more
* more
* telnet ip
* first test of details checking
* more details updates
* more standardizing
* comment out steamport in not set
* kf2 master server true
* update roserver
* fix bug
* looks for file called config and uses that
* test
test
test
test
test
* download correct configs
* test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
* remove blank lines
* update var names
* fail
* continue on error
* install xmllint
* adjust quakec
* fix dst
* fix java
* re order mcb
* fix query port mc
* fix mom
* fix pc
* pc add http port
* add api and http port
* change naming to http from web admin
* api port
* http
* pc2
* add query raw
* list cluster config
* servercfgparse
* update avserver
* tidy up steam ports
* more servers completed
* fix sb
* no config file
* no config file
* add emserver config install
* codacy
* add legacy vars
* add more legacy
* add xmllint
* mta xmllint
* codacy
* codacy
* feat: Added Option to prefix logs with timestamps
* feat: Added Option to prefix logs with timestamps
* Add parameters to every game
* feat: Switched timestamp enabling from True/False to on/off
* feat: Added quotes on variables
* add to new configs
* renamed to logtimestamp
* remove gawk as a requirement
gawk is a standard tool on linux distros and no check is required
* tidy
* rename to addtimestamp
---------
Co-authored-by: Reda.drissi.e <[email protected]>
Co-authored-by: Daniel Gibbs <[email protected]>
* add query port to rust
* fix variable in config
* feat(docker): add docker image list to csv
* Update _default.cfg
fix server.queryport
---------
Co-authored-by: Daniel Gibbs <[email protected]>