-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2 from Sterbweise/develop
Fix plutonium update + First stable release
- Loading branch information
Showing
45 changed files
with
6,345 additions
and
895 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
#!/bin/bash | ||
|
||
# File: installGameBinaries.sh | ||
# Description: Script to install game binaries for the Plutonium Call of Duty: Black Ops Server | ||
# Version: 1.0.0 | ||
# Author: Sterbweise | ||
# Last Updated: 12/12/2024 | ||
|
||
# Import global configurations | ||
if [ "$1" = "--install" ]; then | ||
source /opt/T5Server/.config/config.sh | ||
fi | ||
|
||
# Function to install game binaries | ||
installGameBinaries () { | ||
{ | ||
# Create directory structure for Plutonium | ||
mkdir -p "$WORKDIR/Plutonium/storage/t5/"{gamesettings,scripts,mods} | ||
|
||
# Clone T5ServerConfigs repository | ||
rm -rf /tmp/T5ServerConfigs | ||
checkAndInstallCommand "git" "git" | ||
git clone https://github.com/xerxes-at/T5ServerConfig.git /tmp/T5ServerConfigs | ||
|
||
# Install rsync if not present | ||
checkAndInstallCommand "rsync" "rsync" | ||
|
||
# Copy configuration files | ||
if [ -d "/tmp/T5ServerConfigs/localappdata/Plutonium/storage/t5" ]; then | ||
mkdir -p "$WORKDIR/Plutonium/storage/t5" | ||
rsync -a --delete "/tmp/T5ServerConfigs/localappdata/Plutonium/storage/t5/" "$WORKDIR/Plutonium/storage/t5" | ||
fi | ||
|
||
# Clean up T5ServerConfigs | ||
rm -rf /tmp/T5ServerConfigs | ||
|
||
# Download required files from torrent | ||
checkAndInstallCommand "aria2c" "aria2" | ||
# Clean up any existing pluto_t5_full_game files/directories in /tmp | ||
rm -rf /tmp/pluto_t5_full_game* | ||
aria2c --dir=/tmp --seed-time=0 --console-log-level=error --summary-interval=1 --select-file=$(aria2c -S "$WORKDIR/Resources/sources/pluto_t5_full_game.torrent" | grep -E "main/|zone/|binkw32.dll|localization.txt" | cut -d'|' -f1 | tr '\n' ',' | tr -d ' ') "$WORKDIR/Resources/sources/pluto_t5_full_game.torrent" | ||
|
||
# Move downloaded files to Resources | ||
rsync -a "/tmp/pluto_t5_full_game/main" "$WORKDIR/Server/" | ||
rsync -a "/tmp/pluto_t5_full_game/zone" "$WORKDIR/Server/" | ||
rsync -a "/tmp/pluto_t5_full_game/binkw32.dll" "$WORKDIR/Server/binkw32.dll" | ||
rsync -a "/tmp/pluto_t5_full_game/localization.txt" "$WORKDIR/Server/localization.txt" | ||
|
||
# Clean up downloaded files | ||
rm -rf /tmp/pluto_t5_full_game | ||
|
||
# Setup Plutonium updater | ||
if [ ! -f "$WORKDIR/Plutonium/plutonium-updater" ]; then | ||
cd "$WORKDIR/Plutonium/" || exit | ||
checkAndInstallCommand "wget" "wget" | ||
wget -q -O plutonium-updater.tar.gz https://github.com/mxve/plutonium-updater.rs/releases/latest/download/plutonium-updater-x86_64-unknown-linux-gnu.tar.gz | ||
checkAndInstallCommand "tar" "tar" | ||
tar xf plutonium-updater.tar.gz plutonium-updater | ||
rm plutonium-updater.tar.gz | ||
chmod +x plutonium-updater | ||
fi | ||
|
||
# Make T5Server.sh executable | ||
chmod +x "$WORKDIR/Plutonium/T5Server.sh" | ||
} > /dev/null 2>&1 & | ||
showProgressIndicator "$(getMessage "binary")" | ||
|
||
# Verify installation | ||
if [ ! -f "$WORKDIR/Plutonium/plutonium-updater" ]; then | ||
printf "${COLORS[RED]}Error:${COLORS[RESET]} Game binaries installation failed.\n" | ||
printf "You can try running the installation script separately by executing:\n" | ||
printf "cd .config/binaries && ./installGameBinaries.sh\n" | ||
fi | ||
} | ||
|
||
# Run the installation function if --install is provided | ||
if [ "$1" = "--import" ]; then | ||
: | ||
elif [ "$1" = "--install" ]; then | ||
installGameBinaries | ||
else | ||
echo "Usage: $0 [--install] | [--import]" | ||
echo "This script installs game binaries. Use --install or no argument to proceed with installation." | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
#!/bin/bash | ||
|
||
# File: uninstallGameBinaries.sh | ||
# Description: Script to uninstall game binaries for the Plutonium Call of Duty: Black Ops Server | ||
# Version: 1.0.0 | ||
# Author: Sterbweise | ||
# Last Updated: 12/12/2024 | ||
|
||
# Import global configurations | ||
if [ "$1" = "--uninstall" ]; then | ||
source /opt/T5Server/.config/config.sh | ||
fi | ||
|
||
# Function to uninstall game binaries | ||
uninstallGameBinaries () { | ||
{ | ||
# Remove the main game directories | ||
rm -rf "$WORKDIR/Server" | ||
|
||
# Remove the Plutonium directory | ||
rm -rf "$WORKDIR/Plutonium" | ||
|
||
# Remove the Resources directory if it exists | ||
if [ -d "$WORKDIR/Resources" ]; then | ||
rm -rf "$WORKDIR/Resources" | ||
fi | ||
|
||
# Remove the entire WORKDIR if it's empty | ||
if [ -z "$(ls -A "$WORKDIR")" ]; then | ||
rm -rf "$WORKDIR" | ||
fi | ||
|
||
} > /dev/null 2>&1 & | ||
showProgressIndicator "$(getMessage "uninstall_binary")" | ||
|
||
# Verify uninstallation | ||
if [ ! -d "$WORKDIR/Server" ] && [ ! -d "$WORKDIR/Plutonium" ]; then | ||
printf "${COLORS[GREEN]}Success:${COLORS[RESET]} Game binaries have been uninstalled.\n" | ||
else | ||
printf "${COLORS[RED]}Error:${COLORS[RESET]} Game binaries uninstallation may have failed.\n" | ||
printf "You can try manually removing the directories:\n" | ||
printf "$WORKDIR/Server\n" | ||
printf "$WORKDIR/Plutonium\n" | ||
fi | ||
} | ||
|
||
# Run the uninstallation function if --uninstall is provided | ||
if [ "$1" = "--import" ]; then | ||
: | ||
elif [ "$1" = "--uninstall" ]; then | ||
uninstallGameBinaries | ||
else | ||
echo "Usage: $0 [--uninstall] | [--import]" | ||
echo "This script uninstalls game binaries. Use --uninstall or no argument to proceed with uninstallation." | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
#!/bin/bash | ||
|
||
# config.sh - Configuration file for Plutonium Call of Duty: Black Ops Server | ||
# Version: 1.0.0 | ||
# Author: Sterbweise | ||
# Last Updated: 12/12/2024 | ||
|
||
# Description: | ||
# This script defines global variables and configurations used across the server installation | ||
# and management scripts. It includes settings for work directories, distribution detection, | ||
# color codes for output formatting, and language preferences. | ||
|
||
# Usage: | ||
# This file is sourced by other scripts and should not be executed directly. | ||
|
||
# Note: Modify the variables in this file to customize your server setup. | ||
|
||
# Set default language and locale settings | ||
# These ensure consistent character encoding and language behavior across the system | ||
export LANG=C.UTF-8 | ||
export LC_ALL=C.UTF-8 | ||
|
||
# Work directory | ||
# This is the base directory where the server files will be installed | ||
WORKDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." &> /dev/null && pwd)" | ||
|
||
# Distribution detection | ||
# Automatically detects the Linux distribution and version | ||
if [ -f /etc/os-release ]; then | ||
. /etc/os-release | ||
DISTRO=$ID | ||
VERSION=$VERSION_ID | ||
else | ||
# Default to Debian 10 if detection fails | ||
DISTRO="debian" | ||
VERSION="10" | ||
fi | ||
|
||
# Color codes for terminal output | ||
# Import color definitions from utility/colors.sh | ||
source "$(dirname "${BASH_SOURCE[0]}")/utility/colors.sh" | ||
|
||
|
||
# Global variables | ||
# These variables are used across different scripts for configuration | ||
language=0 # Default language setting (0 for English) | ||
firewall="" # Firewall configuration (empty string for default behavior) | ||
ssh_port=22 # Default SSH port | ||
dotnet="" # .NET installation flag (empty string for default behavior) | ||
|
||
# Function to check and install required commands | ||
checkAndInstallCommand() { | ||
local command=$1 | ||
local package=$2 | ||
if ! command -v "$command" &> /dev/null; then | ||
printf "Installing %s...\n" "$package" | ||
apt-get install -y "$package" > /dev/null 2>&1 | ||
fi | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
#!/bin/bash | ||
|
||
# File: installDependencies.sh | ||
# Description: Script to install dependencies for the Plutonium Call of Duty: Black Ops Server | ||
# Version: 1.0.0 | ||
# Author: Sterbweise | ||
# Last Updated: 12/12/2024 | ||
|
||
# Import global configurations | ||
if [ "$1" = "--install" ]; then | ||
source /opt/T5Server/.config/config.sh | ||
fi | ||
|
||
# Function to install dependencies | ||
installDependencies() { | ||
{ | ||
apt-get update | ||
# Install system utilities | ||
apt-get install -y \ | ||
sudo \ | ||
aria2 \ | ||
tar \ | ||
wget \ | ||
gnupg2 \ | ||
software-properties-common \ | ||
apt-transport-https \ | ||
curl \ | ||
rsync \ | ||
procps | ||
|
||
# Install required libraries | ||
apt-get install -y \ | ||
libssl1.1 \ | ||
libcurl4 \ | ||
libc6:i386 \ | ||
libstdc++6:i386 | ||
|
||
} > /dev/null 2>&1 & | ||
showProgressIndicator "$(getMessage "dependencies_install")" | ||
|
||
# Verify installation | ||
if ! command -v wget &> /dev/null || ! command -v gpg &> /dev/null || ! command -v curl &> /dev/null || ! dpkg -s software-properties-common &> /dev/null || ! dpkg -s apt-transport-https &> /dev/null | ||
then | ||
printf "${COLORS[RED]}Error:${COLORS[RESET]} Dependencies installation failed.\n" | ||
printf "Attempting reinstallation...\n" | ||
apt-get install -y sudo wget gnupg2 software-properties-common apt-transport-https curl | ||
if ! command -v wget &> /dev/null || ! command -v gpg &> /dev/null || ! command -v curl &> /dev/null || ! dpkg -s software-properties-common &> /dev/null || ! dpkg -s apt-transport-https &> /dev/null | ||
then | ||
printf "${COLORS[RED]}Error:${COLORS[RESET]} Reinstallation failed. Please check your internet connection and try again.\n" | ||
exit 1 | ||
fi | ||
fi | ||
|
||
if [ "$1" = "--install" ]; then | ||
printf "${COLORS[GREEN]}Success:${COLORS[RESET]} Dependencies have been installed.\n" | ||
fi | ||
} | ||
|
||
# Run the installation function if --install is provided | ||
if [ "$1" = "--import" ]; then | ||
: | ||
elif [ "$1" = "--install" ]; then | ||
installDependencies | ||
else | ||
echo "Usage: $0 [--install] | [--import]" | ||
echo "This script installs dependencies. Use --install or no argument to proceed with installation." | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
#!/bin/bash | ||
|
||
# File: uninstallDependencies.sh | ||
# Description: Script to uninstall dependencies for the Plutonium Call of Duty: Black Ops Server | ||
# Version: 1.0.0 | ||
# Author: Sterbweise | ||
# Last Updated: 12/12/2024 | ||
|
||
# Import global configurations | ||
if [ "$1" = "--uninstall" ]; then | ||
source /opt/T5Server/.config/config.sh | ||
fi | ||
|
||
# Function to uninstall dependencies | ||
uninstallDependencies() { | ||
{ | ||
apt-get remove -y software-properties-common apt-transport-https | ||
apt-get autoremove -y | ||
} > /dev/null 2>&1 & | ||
showProgressIndicator "$(getMessage "cleanup")" | ||
|
||
# Verify uninstallation | ||
if dpkg -s software-properties-common &> /dev/null || dpkg -s apt-transport-https &> /dev/null | ||
then | ||
printf "${COLORS[RED]}Error:${COLORS[RESET]} Dependencies uninstallation failed.\n" | ||
printf "Attempting manual removal...\n" | ||
apt-get remove -y software-properties-common apt-transport-https | ||
apt-get autoremove -y | ||
if dpkg -s software-properties-common &> /dev/null || dpkg -s apt-transport-https &> /dev/null | ||
then | ||
printf "${COLORS[RED]}Error:${COLORS[RESET]} Manual removal failed. Some dependencies may still be present.\n" | ||
else | ||
printf "${COLORS[GREEN]}Success:${COLORS[RESET]} Dependencies have been manually removed.\n" | ||
fi | ||
else | ||
if [ "$1" = "--uninstall" ]; then | ||
printf "${COLORS[GREEN]}Success:${COLORS[RESET]} Dependencies have been uninstalled.\n" | ||
fi | ||
fi | ||
} | ||
|
||
# Run the uninstallation function if --uninstall is provided | ||
if [ "$1" = "--import" ]; then | ||
: | ||
elif [ "$1" = "--uninstall" ]; then | ||
uninstallDependencies | ||
else | ||
echo "Usage: $0 [--uninstall] | [--import]" | ||
echo "This script uninstalls dependencies. Use --uninstall or no argument to proceed with uninstallation." | ||
fi |
Oops, something went wrong.