Parcourir la source

fix(rust): add default-terminal setting for Oxide (#4383)

* fix(rust): add default-terminal setting for Oxide

This commit fixes issue #4268 by adding the line "set -g default-terminal "screen-256color"" to the ~/.tmux.conf file. This ensures compatibility with tmux version 3.3 or higher when running RustDedicated servers with Oxide.Rust.dll.

* add gamelog to start parameters
Daniel Gibbs il y a 2 ans
Parent
commit
c7aedf5a77

+ 2 - 1
lgsm/config-default/config-lgsm/rustserver/_default.cfg

@@ -28,7 +28,7 @@ saveinterval="300" # Auto-save in seconds.
 tickrate="30"      # default: 30, range: 15-100.
 
 ## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-startparameters="-batchmode +app.listenip ${ip} +app.port ${appport} +server.ip ${ip} +server.port ${port} +server.queryport ${queryport} +server.tickrate ${tickrate} +server.hostname \"${servername}\" +server.identity \"${selfname}\" +server.gamemode ${gamemode} +server.level \"${serverlevel}\" +server.seed ${seed} +server.salt ${salt} +server.maxplayers ${maxplayers} +server.worldsize ${worldsize} +server.saveinterval ${saveinterval} +rcon.web ${rconweb} +rcon.ip ${ip} +rcon.port ${rconport} +rcon.password \"${rconpassword}\" -logfile"
+startparameters="-batchmode +app.listenip ${ip} +app.port ${appport} +server.ip ${ip} +server.port ${port} +server.queryport ${queryport} +server.tickrate ${tickrate} +server.hostname \"${servername}\" +server.identity \"${selfname}\" +server.gamemode ${gamemode} +server.level \"${serverlevel}\" +server.seed ${seed} +server.salt ${salt} +server.maxplayers ${maxplayers} +server.worldsize ${worldsize} +server.saveinterval ${saveinterval} +rcon.web ${rconweb} +rcon.ip ${ip} +rcon.port ${rconport} +rcon.password \"${rconpassword}\" -logfile ${gamelog}"
 
 #### LinuxGSM Settings ####
 
@@ -184,6 +184,7 @@ backupdir="${lgsmdir}/backup"
 gamelogdir="${logdir}/server"
 lgsmlogdir="${logdir}/script"
 consolelogdir="${logdir}/console"
+gamelog="${gamelogdir}/${selfname}-game.log"
 lgsmlog="${lgsmlogdir}/${selfname}-script.log"
 consolelog="${consolelogdir}/${selfname}-console.log"
 alertlog="${lgsmlogdir}/${selfname}-alert.log"

+ 18 - 0
lgsm/modules/fix_rust.sh

@@ -30,3 +30,21 @@ if [ -f "${serverfiles}/carbon/tools/environment.sh" ]; then
 	# shellcheck source=/dev/null
 	source "${serverfiles}/carbon/tools/environment.sh"
 fi
+
+# fix for #4268
+# insert set -g default-terminal "screen-256color" into ~/.tmux.conf
+if [ -f "${serverfiles}/RustDedicated_Data/Managed/Oxide.Rust.dll" ]; then
+	# tmux version is 3.3 or higher
+	tmuxvdigit="$(tmux -V | sed "s/tmux //" | sed -n '1 p' | tr -cd '[:digit:]')"
+	if [ "${tmuxvdigit}" -ge "33" ]; then
+		if [ ! -f "${HOME}/.tmux.conf" ]; then
+			touch "${HOME}/.tmux.conf"
+		fi
+		if ! grep -q "set -g default-terminal \"screen-256color\"" "${HOME}/.tmux.conf"; then
+			fixname="tmux screen-256color"
+			fn_fix_msg_start
+			echo "set -g default-terminal \"screen-256color\"" >> "${HOME}/.tmux.conf"
+			fn_fix_msg_end
+		fi
+	fi
+fi