fix_steamcmd.sh 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/bin/bash
  2. # LinuxGSM fix_steamcmd.sh function
  3. # Author: Daniel Gibbs
  4. # Website: https://linuxgsm.com
  5. # Description: Resolves various issues related to SteamCMD.
  6. local commandname="FIX"
  7. local commandaction="Fix"
  8. local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
  9. # Fixes: [S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam,or a local steamclient.so.
  10. if [ ! -f "${HOME}/.steam/sdk32/steamclient.so" ]; then
  11. fixname="steamclient.so general"
  12. fn_fix_msg_start
  13. mkdir -pv "${HOME}/.steam/sdk32" >> "${lgsmlog}"
  14. cp -v "${steamcmddir}/linux32/steamclient.so" "${HOME}/.steam/sdk32/steamclient.so" >> "${lgsmlog}"
  15. fn_fix_msg_end
  16. fi
  17. if [ "${gamename}" == "Serious Sam 3: BFE" ]; then
  18. # Fixes: .steam/bin32/libsteam.so: cannot open shared object file: No such file or directory
  19. if [ ! -f "${HOME}/.steam/bin32/libsteam.so" ]; then
  20. fixname="libsteam.so"
  21. fn_fix_msg_start
  22. mkdir -pv "${HOME}/.steam/bin32" >> "${lgsmlog}"
  23. cp -v "${serverfiles}/Bin/libsteam.so" "${HOME}/.steam/bin32/libsteam.so" >> "${lgsmlog}"
  24. fn_fix_msg_end
  25. fi
  26. elif [ "${gamename}" == "Hurtworld" ]; then
  27. # Fixes: [S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.so.
  28. if [ ! -f "${serverfiles}/Hurtworld_Data/Plugins/x86/steamclient.so" ]; then
  29. fixname="steamclient.so x86"
  30. fn_fix_msg_start
  31. cp -v "${steamcmddir}/linux32/steamclient.so" "${serverfiles}/Hurtworld_Data/Plugins/x86/steamclient.so" >> "${lgsmlog}"
  32. fn_fix_msg_end
  33. fi
  34. if [ ! -f "${serverfiles}/Hurtworld_Data/Plugins/x86_64/steamclient.so" ]; then
  35. fixname="steamclient.so x86_64"
  36. fn_fix_msg_start
  37. cp -v "${steamcmddir}/linux32/steamclient.so" "${serverfiles}/Hurtworld_Data/Plugins/x86_64/steamclient.so" >> "${lgsmlog}"
  38. fn_fix_msg_end
  39. fi
  40. elif [ "${gamename}" == "Tower Unite" ]; then
  41. # Fixes: [S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.so.
  42. if [ ! -f "${executabledir}/steamclient.so" ]; then
  43. fixname="steamclient.so"
  44. fn_fix_msg_start
  45. cp -v "${serverfiles}/linux64/steamclient.so" "${executabledir}/steamclient.so" >> "${lgsmlog}"
  46. fn_fix_msg_end
  47. fi
  48. fi