diff --git a/call-of-dutybo2.kvp b/call-of-dutybo2.kvp new file mode 100644 index 000000000..f399fbb78 --- /dev/null +++ b/call-of-dutybo2.kvp @@ -0,0 +1,105 @@ +Meta.DisplayName=Call of Duty: Black Ops II +Meta.Description=Call of Duty: Black Ops II Dedicated Server using the Plutonium launcher +Meta.OS=Windows, Linux +Meta.AarchSupport=Unknown +Meta.Arch=x86_64 +Meta.Author=Greelan +Meta.URL=https://www.callofduty.com/au/en/blackops2 +Meta.DisplayImageSource=steam:202970 +Meta.EndpointURIFormat=steam://connect/{ip}:{GenericModule.App.Ports.$ServerPort} +Meta.ConfigManifest=call-of-dutybo2config.json +Meta.MetaConfigManifest=call-of-dutybo2metaconfig.json +Meta.ConfigRoot=call-of-dutybo2.kvp +Meta.MinAMPVersion=2.5.0.4 +Meta.SpecificDockerImage=cubecoders/ampbase:wine8 +Meta.DockerRequired=False +Meta.DockerBaseReadOnly=False +Meta.ContainerPolicy=SupportedOnWindows, RecommendedOnLinux +Meta.ContainerPolicyReason=The server requires Wine to run on Linux. Using a container avoids the need to install this dependency on the host. +Meta.ExtraSetupStepsURI= +Meta.Prerequsites=[] +Meta.ExtraContainerPackages=[] +Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +Meta.ConfigVersion=1.0 +Meta.ReleaseNotes= +Meta.BreakingReleaseNotes= +Meta.AppConfigId=33c34501-5f7b-492c-9fb8-b3340247194e +Meta.ImportableExtensions=[] +App.DisplayName=Call of Duty: Black Ops II +App.RootDir=./call-of-dutybo2/ +App.BaseDirectory=./call-of-dutybo2/server/ +App.SteamWorkshopDownloadLocation= +App.ExecutableWin=server\bin\plutonium-bootstrapper-win32.exe +App.ExecutableLinux=/usr/bin/wine +App.WorkingDir=server +App.LinuxCommandLineArgs=bin/plutonium-bootstrapper-win32.exe +App.WindowsCommandLineArgs= +App.CommandLineArgs={{$PlatformArgs}} {{GameMode}} +set fs_basepath "{{$FullBaseDir}}" +net_port {{$ServerPort}} +net_ip {{$ApplicationIPBinding}} +rcon_password "{{$RemoteAdminPassword}}" {{$FormattedArgs}} +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={"SteamAppId":"202970","WINEPREFIX":"{{$FullRootDir}}.wine","WINEARCH":"win64","WINEDEBUG":"-all"} +App.CommandLineParameterFormat=+set {0} "{1}" +App.CommandLineParameterDelimiter= +App.ExitMethod=String +App.ExitTimeout=30 +App.ExitString=quit +App.ExitFile=app_exit.lck +App.HasWriteableConsole=True +App.HasReadableConsole=True +App.UDPLogger=False +App.SupportsLiveSettingsChanges=False +App.LiveSettingChangeCommandFormat=set {0} "{1}" +App.ForceIPBinding=False +App.SupportsIPv6=False +App.ApplicationIPBinding=0.0.0.0 +App.Ports=[{"Protocol":"Both","Port":4976,"Ref":"ServerPort","Name":"Server Port","Description":"Port for game traffic"}] +App.AdminPortRef=ServerPort +App.PrimaryApplicationPortRef=ServerPort +App.UniversalSleepApplicationUDPPortRef=0 +App.UniversalSleepSteamQueryPortRef=0 +App.MaxUsers=18 +App.UseRandomAdminPassword=True +App.PersistRandomPassword=True +App.RemoteAdminPassword= +App.AdminMethod=QuakeRCON +App.IgnoreSTDOUTAfterRCON=False +App.AdminLoginTransform=None +App.LoginTransformPrefix= +App.RCONConnectDelaySeconds=5 +App.RCONConnectRetrySeconds=5 +App.RCONHeartbeatMinutes=0 +App.RCONHeartbeatCommand=ping +App.TelnetLoginFormat=login {0} +App.UpdateSources=@IncludeJson[call-of-dutybo2updates.json] +App.PreStartStages=[] +App.ForceUpdate=False +App.ForceUpdateReason= +App.Compatibility=None +App.SteamUpdateAnonymousLogin=False +App.SteamForceLoginPrompt=True +App.RapidStartup=False +App.SmartExcludeExemptions=["*.cfg","*.conf","*.config","*.ini","*.json","*.xml","*.properties","*.kvp","*.yml","*.yaml","*.toml","*.lua"] +App.DumpFullChildProcessTree=False +App.MonitorChildProcessName=^bin\/plutonium-bootstrapper-win32\.exe .+ \+set fs_basepath {{$FullBaseDir}} \+net_port {{$ServerPort}}.+$ +App.SupportsUniversalSleep=False +App.WakeupMode=Any +App.ApplicationReadyMode=RCONConnected +Console.FilterMatchRegex=\e\[(\d+;)*(\d+)?[ABCDHJKfmsu]|\e\[?[?\>\=\da-z]+ +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex=^((WARNING|ERROR): Shader.+|Could not find Wine Gecko.*)$ +Console.AppReadyRegex=^$ +Console.UserJoinRegex=^$ +Console.UserLeaveRegex=^$ +Console.UserChatRegex=^$ +Console.UpdateAvailableRegex=^\[\d\d:\d\d:\d\d\] \[INFO\] A new server update is available! v[\d\.]+.$ +Console.MetricsRegex= +Console.SuppressLogAtStart=False +Console.ActivateLogRegex= +Console.UserActions={} +Limits.SleepMode=False +Limits.SleepOnStart=False +Limits.SleepDelayMinutes=5 +Limits.DozeDelay=2 +Limits.AutoRetryCount=2 +Limits.SleepStartThresholdSeconds=25 diff --git a/call-of-dutybo2config.json b/call-of-dutybo2config.json new file mode 100644 index 000000000..86f73ad72 --- /dev/null +++ b/call-of-dutybo2config.json @@ -0,0 +1,405 @@ +[ + { + "DisplayName":"RCON Password", + "Category":"CoD BO2 Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"$RemoteAdminPassword", + "InputType":"text", + "Hidden":true, + "ParamFieldName":"rcon_password", + "EnumValues":{} + }, + { + "DisplayName":"Continuous Log", + "Category":"CoD BO2 Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"g_logSync", + "InputType":"number", + "Hidden":true, + "ParamFieldName":"g_logSync", + "DefaultValue":"2", + "EnumValues":{} + }, + { + "DisplayName":"Log File Name", + "Category":"CoD BO2 Server Settings", + "Description":"", + "Keywords":"", + "FieldName":"g_log", + "InputType":"text", + "Hidden":true, + "ParamFieldName":"g_log", + "DefaultValue":"logs\\games_mp.log", + "EnumValues":{} + }, + { + "DisplayName":"Game Mode", + "Category":"CoD BO2 Server Settings", + "Description":"Sets the game mode. Configure the relevant config file accordingly - 'storage/t6/dedicated.cfg' for Multiplayer, 'storage/t6/dedicated_zm.cfg' for Zombies", + "Keywords":"game,mode,gamemode", + "FieldName":"GameMode", + "InputType":"enum", + "ParamFieldName":"GameMode", + "DefaultValue":"t6mp \"{{$FullBaseDir}}\" -dedicated +set key {{ServerKey}} +set fs_game \"{{Mod}}\" +sv_config dedicated.cfg", + "EnumValues":{ + "t6mp \"{{$FullBaseDir}}\" -dedicated +set key {{ServerKey}} +set fs_game \"{{Mod}}\" +sv_config dedicated.cfg":"Multiplayer (default)", + "t6zm \"{{$FullBaseDir}}\" -dedicated +set key {{ServerKey}} +set fs_game \"{{Mod}}\" +sv_config dedicated_zm.cfg":"Zombies" + } + }, + { + "DisplayName":"Server Key", + "Category":"CoD BO2 Server Settings", + "Description":"Sets the [server key](https://platform.plutonium.pw/serverkeys) required to run the server. This also sets the server name. A Plutonium account must be at least one week old to create a key, and game ownership must be [verified](https://forum.plutonium.pw/topic/32250/an-update-on-game-ownership-verification)", + "Keywords":"server,key,serverkey", + "FieldName":"ServerKey", + "InputType":"password", + "ParamFieldName":"ServerKey", + "DefaultValue":"", + "Required":true, + "EnumValues":{} + }, + { + "DisplayName":"Server Password", + "Category":"CoD BO2 Server Settings", + "Description":"Sets the password to join the server. Default is no password", + "Keywords":"password,g_password", + "FieldName":"g_password", + "InputType":"password", + "ParamFieldName":"g_password", + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Load Mod", + "Category":"CoD BO2 Server Settings", + "Description":"Sets the mod to load when starting the server, based on the path to the mod in the Mods directory", + "Keywords":"mods,mod,fs_game", + "FieldName":"Mod", + "InputType":"text", + "ParamFieldName":"Mod", + "IncludeInCommandLine":true, + "SkipIfEmpty":true, + "DefaultValue":"", + "Placeholder":"Mods/pezbot_bo2", + "EnumValues":{} + }, + { + "DisplayName":"Player Limit", + "Category":"CoD BO2 Server Settings", + "Description":"Sets the maximum number of players allowed on the server at one time. Maximum 18 for Multiplayer, 8 for Zombies", + "Keywords":"max,players,limit,sv_maxclients", + "FieldName":"$MaxUsers", + "InputType":"number", + "MinValue":"1", + "MaxValue":"18", + "ParamFieldName":"sv_maxclients", + "DefaultValue":"8", + "Placeholder":"8", + "Suffix":"players", + "EnumValues":{} + }, + { + "DisplayName":"Fast Download URL", + "Category":"CoD BO2 Server Settings", + "Description":"Sets the URL for fast download of mods", + "Keywords":"base,url,download,redirection,sv_wwwBaseURL", + "FieldName":"sv_wwwBaseURL", + "InputType":"url", + "ParamFieldName":"seta sv_wwwBaseURL", + "DefaultValue":"", + "Placeholder":"http://domain.tld/t6", + "EnumValues":{} + }, + { + "DisplayName":"Server Voice Chat Mode", + "Category":"CoD BO2 Server Settings", + "Description":"Sets the server voice chat mode", + "Keywords":"voice,chat,mode,sv_voice", + "FieldName":"sv_voice", + "InputType":"enum", + "ParamFieldName":"sv_voice", + "DefaultValue":"2", + "EnumValues":{ + "0":"Disabled", + "1":"Everyone hears", + "2":"Teams only hear (default)" + } + }, + { + "DisplayName":"Server Voice Chat Quality", + "Category":"CoD BO2 Server Settings", + "Description":"Sets the server voice quality level", + "Keywords":"voice,chat,quality,sv_voicequality", + "FieldName":"sv_voicequality", + "InputType":"number", + "MinValue":"0", + "MaxValue":"9", + "ParamFieldName":"sv_voicequality", + "DefaultValue":"3", + "Placeholder":"3", + "EnumValues":{} + }, + { + "DisplayName":"Allow Aim Assist", + "Category":"CoD BO2 Gameplay Settings", + "Description":"If set, Aim Assist will be allowed on gamepads", + "Keywords":"aim,assist,sv_allowAimAssist", + "FieldName":"sv_allowAimAssist", + "InputType":"checkbox", + "ParamFieldName":"sv_allowAimAssist", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Enable Demo Recording", + "Category":"CoD BO2 Gameplay Settings", + "Description":"If set, matches will be recorded as demo files", + "Keywords":"demo,recording,enable,demo_enabled", + "FieldName":"demo_enabled", + "InputType":"checkbox", + "ParamFieldName":"demo_enabled", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Server Say Name", + "Category":"CoD BO2 Gameplay Settings", + "Description":"Sets the name that server-side 'say' commands show up as", + "Keywords":"server,say,name,sv_sayname", + "FieldName":"sv_sayname", + "InputType":"text", + "ParamFieldName":"sv_sayname", + "DefaultValue":"Console", + "Placeholder":"Console", + "EnumValues":{} + }, + { + "DisplayName":"Show Perks on Spawn (Multiplayer)", + "Category":"CoD BO2 Gameplay Settings", + "Description":"If set, currently equipped perks will be displayed on the HUD when spawning", + "Keywords":"perks,hud,spawn,scr_showperksonspawn", + "FieldName":"scr_showperksonspawn", + "InputType":"checkbox", + "ParamFieldName":"scr_showperksonspawn", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Delete Explosives On Spawn (Multiplayer)", + "Category":"CoD BO2 Gameplay Settings", + "Description":"If set, thrown lethal explosives will be removed when killed", + "Keywords":"explosives,spawn,delete,scr_deleteexplosivesonspawn", + "FieldName":"scr_deleteexplosivesonspawn", + "InputType":"checkbox", + "ParamFieldName":"scr_deleteexplosivesonspawn", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Disable Custom Classes (Multiplayer)", + "Category":"CoD BO2 Gameplay Settings", + "Description":"If set, custom classes will be disabled", + "Keywords":"disable,custom,classes,scr_disable_cac", + "FieldName":"scr_disable_cac", + "InputType":"checkbox", + "ParamFieldName":"scr_disable_cac", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Maximum Rank (Multiplayer)", + "Category":"CoD BO2 Gameplay Settings", + "Description":"Every player with a level above the set value will be blocked", + "Keywords":"maximum,rank,block,scr_max_rank", + "FieldName":"scr_max_rank", + "InputType":"number", + "MinValue":"0", + "MaxValue":"1000", + "ParamFieldName":"scr_max_rank", + "DefaultValue":"0", + "Placeholder":"0", + "EnumValues":{} + }, + { + "DisplayName":"Minimum Prestige (Multiplayer)", + "Category":"CoD BO2 Gameplay Settings", + "Description":"Every player with a prestige below the set value will be blocked", + "Keywords":"minimum,prestige,block,scr_min_prestige", + "FieldName":"scr_min_prestige", + "InputType":"number", + "MinValue":"0", + "MaxValue":"15", + "ParamFieldName":"scr_min_prestige", + "DefaultValue":"0", + "Placeholder":"0", + "EnumValues":{} + }, + { + "DisplayName":"Enable Item Restriction (Multiplayer)", + "Category":"CoD BO2 Gameplay Settings", + "Description":"If set, enables the custom restriction system", + "Keywords":"enable,item,restriction,sv_enableItemRestriction", + "FieldName":"sv_enableItemRestriction", + "InputType":"checkbox", + "ParamFieldName":"sv_enableItemRestriction", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Restriction List File (Multiplayer)", + "Category":"CoD BO2 Gameplay Settings", + "Description":"Sets the file name for the restriction system", + "Keywords":"restriction,list,file,sv_restrictionList", + "FieldName":"sv_restrictionList", + "InputType":"text", + "ParamFieldName":"sv_restrictionList", + "DefaultValue":"restricted.cfg", + "Placeholder":"restricted.cfg", + "EnumValues":{} + }, + { + "DisplayName":"Custom Team Names (Multiplayer)", + "Category":"CoD BO2 Gameplay Settings", + "Description":"Sets custom team names on the scoreboard", + "Keywords":"custom,team,names,g_customteamnames", + "FieldName":"g_customteamnames", + "InputType":"text", + "ParamFieldName":"g_customteamnames", + "DefaultValue":"allies,Team 1|axis,Team 2", + "Placeholder":"allies,Team 1|axis,Team 2", + "EnumValues":{} + }, + { + "DisplayName":"Allow Depth Of Field (Multiplayer)", + "Category":"CoD BO2 Gameplay Settings", + "Description":"If disabled, clients will not be allowed to have Depth of Field, in order to prevent glitches and gain performance", + "Keywords":"depth,field,dof,sv_allowDof", + "FieldName":"sv_allowDof", + "InputType":"checkbox", + "ParamFieldName":"sv_allowDof", + "DefaultValue":"0", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"DSR-50 Patches (Multiplayer)", + "Category":"CoD BO2 Gameplay Settings", + "Description":"If set, DSR-50 patches will be applied on the server", + "Keywords":"dsr50,patches,sv_patch_dsr50", + "FieldName":"sv_patch_dsr50", + "InputType":"checkbox", + "ParamFieldName":"sv_patch_dsr50", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Minimum Starting Players (Zombies)", + "Category":"CoD BO2 Gameplay Settings", + "Description":"Sets the minimum players needed to start the game. Do NOT set this higher than the Player Limit!", + "Keywords":"zombies,minimum,starting,players,zombies_minplayers", + "FieldName":"zombies_minplayers", + "InputType":"number", + "MinValue":"1", + "MaxValue":"8", + "ParamFieldName":"zombies_minplayers", + "DefaultValue":"1", + "Placeholder":"1", + "Suffix":"players", + "EnumValues":{} + }, + { + "DisplayName":"Enable Gun Game (Zombies)", + "Category":"CoD BO2 Gameplay Settings", + "Description":"If set, Pluto's custom Gun Game will be enabled", + "Keywords":"zombies,gungame,gun,game,enable,zm_gungame", + "FieldName":"zm_gungame", + "InputType":"checkbox", + "ParamFieldName":"zm_gungame", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Enable Sharp Shooter (Zombies)", + "Category":"CoD BO2 Gameplay Settings", + "Description":"If set, Pluto's custom Sharp Shooter will be enabled", + "Keywords":"zombies,sharpshooter,enable,zm_sharpshooter", + "FieldName":"zm_sharpshooter", + "InputType":"checkbox", + "ParamFieldName":"zm_sharpshooter", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Difficulty Level (Zombies)", + "Category":"CoD BO2 Gameplay Settings", + "Description":"Sets the difficulty level for Zombies mode. If set to Easy, it must be manually set on the client as well", + "Keywords":"zombies,difficulty,zombies,zmDifficulty", + "FieldName":"zmDifficulty", + "InputType":"enum", + "ParamFieldName":"zmDifficulty", + "DefaultValue":"1", + "EnumValues":{ + "0":"Easy", + "1":"Normal" + } + }, + { + "DisplayName":"Fix Weapons (Zombies)", + "Category":"CoD BO2 Gameplay Settings", + "Description":"If set, fixes the SMR's ADS spread, 870 MCS's penetration damage, and allow sprinting with Galvaknuckles", + "Keywords":"fix,zombies,weapons,sv_fix_zm_weapons", + "FieldName":"sv_fix_zm_weapons", + "InputType":"checkbox", + "ParamFieldName":"sv_fix_zm_weapons", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + }, + { + "DisplayName":"Patch Weapons (Zombies)", + "Category":"CoD BO2 Gameplay Settings", + "Description":"If set, applies Post DLC1 changes to tar21_zm, type95_zm, xm8_zm, an94_zm, hamr_zm, rpd_zm, pdw57_zm and kard_zm", + "Keywords":"patch,zombies,weapons,sv_patch_zm_weapons", + "FieldName":"sv_patch_zm_weapons", + "InputType":"checkbox", + "ParamFieldName":"sv_patch_zm_weapons", + "DefaultValue":"1", + "EnumValues":{ + "False":"0", + "True":"1" + } + } +] \ No newline at end of file diff --git a/call-of-dutybo2metaconfig.json b/call-of-dutybo2metaconfig.json new file mode 100644 index 000000000..b362aceb1 --- /dev/null +++ b/call-of-dutybo2metaconfig.json @@ -0,0 +1,30 @@ +[ + { + "ConfigFile":"storage/t6/dedicated.cfg", + "AutoMap":true, + "ConfigType":"kvp", + "ConfigFormat":"{0} \"{1}\"", + "ConfigFormatRegex":"^(?:\\/\\/)?(?.+?) \"(?.*?)\".*$" + }, + { + "ConfigFile":"storage/t6/dedicated.cfg", + "AutoMap":true, + "ConfigType":"kvp", + "ConfigFormat":"{0} {1}", + "ConfigFormatRegex":"^(?:\\/\\/)?(?[^\"]+?) (?[^\"]*?)(?: .*)?$" + }, + { + "ConfigFile":"storage/t6/dedicated_zm.cfg", + "AutoMap":true, + "ConfigType":"kvp", + "ConfigFormat":"{0} \"{1}\"", + "ConfigFormatRegex":"^(?:\\/\\/)?(?.+?) \"(?.*?)\".*$" + }, + { + "ConfigFile":"storage/t6/dedicated_zm.cfg", + "AutoMap":true, + "ConfigType":"kvp", + "ConfigFormat":"{0} {1}", + "ConfigFormatRegex":"^(?:\\/\\/)?(?[^\"]+?) (?[^\"]*?)(?: .*)?$" + } +] \ No newline at end of file diff --git a/call-of-dutybo2updates.json b/call-of-dutybo2updates.json new file mode 100644 index 000000000..22d6d1523 --- /dev/null +++ b/call-of-dutybo2updates.json @@ -0,0 +1,110 @@ +[ + { + "UpdateStageName":"SteamCMD Multiplayer Client Download", + "UpdateSourcePlatform":"All", + "UpdateSource":"SteamCMD", + "UpdateSourceData":"202990", + "UpdateSourceTarget":"{{$FullBaseDir}}", + "UpdateSourceArgs":"202970", + "ForceDownloadPlatform":"Windows" + }, + { + "UpdateStageName":"SteamCMD Zombies Client Download", + "UpdateSourcePlatform":"All", + "UpdateSource":"SteamCMD", + "UpdateSourceData":"212910", + "UpdateSourceTarget":"{{$FullBaseDir}}", + "UpdateSourceArgs":"202970", + "ForceDownloadPlatform":"Windows" + }, + { + "UpdateStageName":"Create Plutonium Updater Directory", + "UpdateSourcePlatform":"All", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullRootDir}}plutonium-updater" + }, + { + "UpdateStageName":"Plutonium Updater Download", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://github.com/mxve/plutonium-updater.rs/releases/latest/download/plutonium-updater-x86_64-pc-windows-msvc.zip", + "UpdateSourceTarget":"{{$FullRootDir}}plutonium-updater", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true + }, + { + "UpdateStageName":"Plutonium Installation", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"Executable", + "UpdateSourceData":"cmd.exe", + "UpdateSourceArgs":"/C cd call-of-dutybo2\\plutonium-updater && plutonium-updater.exe -e \"games/iw5mp.exe\" -e \"games/iw5sp.exe\" -e \"games/t5mp.exe\" -e \"games/t5sp.exe\" -e \"games/t4mp.exe\" -e \"games/t4sp.exe\" -e \"storage/iw5\" -e \"storage/t5\" -e \"storage/t4\" -sfd \"{{$FullBaseDir}}\"", + "SkipOnFailure":false + }, + { + "UpdateStageName":"Plutonium Updater Download", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://github.com/mxve/plutonium-updater.rs/releases/latest/download/plutonium-updater-x86_64-unknown-linux-gnu.tar.gz", + "UpdateSourceTarget":"{{$FullRootDir}}plutonium-updater", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true + }, + { + "UpdateStageName":"Plutonium Installation", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"Executable", + "UpdateSourceData":"/bin/bash", + "UpdateSourceArgs":"-c 'cd call-of-dutybo2/plutonium-updater && chmod +x plutonium-updater && ./plutonium-updater -e \"games/iw5mp.exe\" -e \"games/iw5sp.exe\" -e \"games/t5mp.exe\" -e \"games/t5sp.exe\" -e \"games/t4mp.exe\" -e \"games/t4sp.exe\" -e \"storage/iw5\" -e \"storage/t5\" -e \"storage/t4\" -sfd \"{{$FullBaseDir}}\"'", + "SkipOnFailure":false + }, + { + "UpdateStageName":"Create Config Download Directory", + "UpdateSourcePlatform":"All", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullRootDir}}configs" + }, + { + "UpdateStageName":"Plutonium Config Files Download", + "UpdateSourcePlatform":"All", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://github.com/xerxes-at/T6ServerConfigs/archive/master.zip", + "UpdateSourceTarget":"{{$FullRootDir}}configs", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true + }, + { + "UpdateStageName":"Config Files Copy", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"Executable", + "UpdateSourceData":"/bin/bash", + "UpdateSourceArgs":"-c '\\cp -r -n ./call-of-dutybo2/configs/T6ServerConfigs-master/localappdata/Plutonium/storage/t6/* ./call-of-dutybo2/server/storage/t6 >/dev/null 2>&1 && rm -rf ./call-of-dutybo2/configs/'", + "SkipOnFailure":false + }, + { + "UpdateStageName":"Config Files Copy", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"Executable", + "UpdateSourceData":"cmd.exe", + "UpdateSourceArgs":"/C robocopy call-of-dutybo2\\configs\\T6ServerConfigs-master\\localappdata\\Plutonium\\storage\\t6 call-of-dutybo2\\server\\storage\\t6 /E /XC /XN /XO > NUL 2>&1 & @if %ERRORLEVEL% GTR 7 (exit /b %ERRORLEVEL%) else (rd /S /Q call-of-dutybo2\\configs)", + "SkipOnFailure":false + }, + { + "UpdateStageName":"Initialise Wine", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"Executable", + "UpdateSourceData":"/bin/bash", + "UpdateSourceArgs":"-c 'WINEPREFIX=\"{{$FullRootDir}}.wine\" WINEARCH=win64 WINEDEBUG=-all /usr/bin/wineboot --init --update'", + "SkipOnFailure":false + }, + { + "UpdateStageName":"Disable Prefix Sound", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"Executable", + "UpdateSourceData":"/bin/bash", + "UpdateSourceArgs":"-c 'cd call-of-dutybo2 && wget -q -N https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks && chmod +x winetricks; export WINEPREFIX=\"{{$FullRootDir}}.wine\"; export WINEARCH=win64; ./winetricks sound=disabled > winescript_log.txt 2>&1'", + "SkipOnFailure":true + } +] \ No newline at end of file