diff --git a/README.md b/README.md index e69de29..d167455 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,3 @@ +SmileyFace UT Server Tool +========================= + diff --git a/files/rulesets/00-Comp-Duelplus10.json b/files/rulesets/00-Comp-Duelplus10.json deleted file mode 100644 index a351d1c..0000000 --- a/files/rulesets/00-Comp-Duelplus10.json +++ /dev/null @@ -1,41 +0,0 @@ -{ -"uniqueTag": "DuelPlus10", -"categories": [ - "Comp" -], -"title": "Duel+ 10min", -"toolTip": "Ultimate 1v1 test of deathmatch skill", -"description": "Same ruleset, unofficial server.\n\nMutators: UT+, TeamSkins, WeaponSkins, HitSounds, CustomHUD, HiddenWeaponsUTPL\nOptions: MaxPlayers=2, TimeLimit=10, WeaponStay=OFF, Amp=OFF, PickupTimers=OFF", -"mapPrefixes": [], -"maxMapsInList": 0, -"epicMaps": "/Game/RestrictedAssets/Maps/WIP/DM-ASDF,/Game/EpicInternal/Lea/DM-Lea,/Game/RestrictedAssets/Maps/WIP/DM-Solo", -"defaultMap": "/Game/RestrictedAssets/Maps/WIP/DM-ASDF", -"customMapList": [ - "/Game/DM-BoneBone_Textured", - "/Game/Maps/DM-Deep-03g", - "/Game/Maps/DM-Erase/DM-EraseV2_a04", - "/Game/dc/Ironic/DM-Alanis" -], -"maxPlayers": 2, -"maxTeamCount": 2, -"maxTeamSize": 1, -"maxPartySize": 1, -"displayTexture": "Texture2D'/Game/RestrictedAssets/UI/GameModeBadges/GB_Duel.GB_Duel'", -"gameMode" : "/Game/dc/FuckDuelSpawns/DuelPlus.DuelPlus_C", -"gameOptions" : "?MaxPlayers=2?TimeLimit=10?ignoreidle=1?GoalScore=0?MaxSpecators=10?ForceNoBots=1?ForceRespawn=1?mutator=UTPlus,UTPlusMovement,MutHitsounds,MutTeamskins,WeaponSkins,CustomHUD,NoPickupTimerMutator,WeaponReplacement?WTR=/Game/UT+/UTPlus/UT+GrenadeLauncher.UT+GrenadeLauncher_C:/Game/UT+/UTPlus/UT+BioRifle.UT+BioRifle_C?", -"requiredPackages" : [ - "CustomHUD", - "MutHitSounds", - "MutTeamskins", - "WeaponSkins", - "UTPlus", - "UTPlusMovement", - "NoPickupTimerMutator" -], -"bTeamGame": true, -"bCompetitiveMatch": false, -"optionFlags": 65535, -"bHideFromUI": false, -"minPlayersToStart": 2, -"epicForceUIVisibility": 0 -}, diff --git a/files/rulesets/00-Comp-Duelplus5.json b/files/rulesets/00-Comp-Duelplus5.json deleted file mode 100644 index ca95d6c..0000000 --- a/files/rulesets/00-Comp-Duelplus5.json +++ /dev/null @@ -1,41 +0,0 @@ -{ -"uniqueTag": "DuelPlus5", -"categories": [ - "Comp" -], -"title": "Duel+ 5min", -"toolTip": "Ultimate 1v1 test of deathmatch skill", -"description": "Same ruleset, unofficial server.\n\nMutators: UT+, TeamSkins, WeaponSkins, HitSounds, CustomHUD, HiddenWeaponsUTPL\nOptions: MaxPlayers=2, TimeLimit=10, WeaponStay=OFF, Amp=OFF, PickupTimers=OFF", -"mapPrefixes": [], -"maxMapsInList": 0, -"epicMaps": "/Game/RestrictedAssets/Maps/WIP/DM-ASDF,/Game/EpicInternal/Lea/DM-Lea,/Game/RestrictedAssets/Maps/WIP/DM-Solo", -"defaultMap": "/Game/RestrictedAssets/Maps/WIP/DM-ASDF", -"customMapList": [ - "/Game/DM-BoneBone_Textured", - "/Game/Maps/DM-Deep-03g", - "/Game/Maps/DM-Erase/DM-EraseV2_a04", - "/Game/dc/Ironic/DM-Alanis" -], -"maxPlayers": 2, -"maxTeamCount": 2, -"maxTeamSize": 1, -"maxPartySize": 1, -"displayTexture": "Texture2D'/Game/RestrictedAssets/UI/GameModeBadges/GB_Duel.GB_Duel'", -"gameMode" : "/Game/dc/FuckDuelSpawns/DuelPlus.DuelPlus_C", -"gameOptions" : "?MaxPlayers=2?TimeLimit=5?ignoreidle=1?GoalScore=0?MaxSpecators=10?ForceNoBots=1?ForceRespawn=1?mutator=UTPlus,UTPlusMovement,MutHitsounds,MutTeamskins,WeaponSkins,CustomHUD,NoPickupTimerMutator,WeaponReplacement?WTR=/Game/UT+/UTPlus/UT+GrenadeLauncher.UT+GrenadeLauncher_C:/Game/UT+/UTPlus/UT+BioRifle.UT+BioRifle_C?", -"requiredPackages" : [ - "CustomHUD", - "MutHitSounds", - "MutTeamskins", - "WeaponSkins", - "UTPlus", - "UTPlusMovement", - "NoPickupTimerMutator" -], -"bTeamGame": true, -"bCompetitiveMatch": false, -"optionFlags": 65535, -"bHideFromUI": false, -"minPlayersToStart": 2, -"epicForceUIVisibility": 0 -}, diff --git a/files/rulesets/4-Weapons-Blitz.json b/files/rulesets/4-Weapons-Blitz.json deleted file mode 100644 index e90e982..0000000 --- a/files/rulesets/4-Weapons-Blitz.json +++ /dev/null @@ -1,58 +0,0 @@ -{ -"uniqueTag": "MYBLITZ", -"categories": [ - "Weapons" -], -"title": "Blitz", -"toolTip": "Blitz Mode", -"description": "Blitz", -"description": "Blitz\n\nMutators: UT+, TeamSkins, WeaponSkins, HitSounds\nOptions: MaxPlayers=12, TimeLimit=20, WeaponStay=OFF, Translocator=ON\n\n*Under Construction*", -"mapPrefixes": [], -"maxMapsInList": 0, -"epicMaps": "", -"defaultMap": "", -"customMapList": [ - "/Game/FR-Farage", - "/Game/FR-Ozone", - "/Game/FR-Quarry", - "/Game/GSC/Maps/FR-Scrapyard", - "/Game/Maps/FR-Canyon/FR-CanyonWIP4", - "/Game/Maps/FR-CastleTest03", - "/Game/Maps/FR-ChocolateFactory/FR-ChocolateFactory", - "/Game/Maps/FR-ChocolateFactory/FR-FudgeFactory", - "/Game/Maps/FR-Foundry/FR-Foundry-WIP6", - "/Game/Maps/FR-Horus/FR-Horus_WIP02", - "/Game/Maps/FR-Nova/FR-Nova_CUP", - "/Game/Maps/FR-Nova/FR-Nova_WIP2", - "/Game/Maps/H27/FR-Morphine-Beta005", - "/Game/Maps/Sprint/FR-Sprint-Beta002", - "/Game/Mogno/FR-Chill/FR-Chill_V2", - "/Game/RestrictedAssets/Maps/FR-DormantCoast", - "/Game/RestrictedAssets/Maps/WIP/FR-Blackstone-UC", - "/Game/RestrictedAssets/Maps/WIP/FR-HighRoad-UC", - "/Game/dmshaft/FR-MeltDownpdv2019superior", - "/Game/fr_crescendo/FR-Crescendo", - "/Game/tidu/Maps/FR-Spacecadet_01" -], -"maxPlayers": 12, -"maxTeamCount": 2, -"maxTeamSize": 5, -"maxPartySize": 5, -"displayTexture": "Texture2D'/Game/RestrictedAssets/UI/GameModeBadges/GB_CTF.GB_CTF'", -"gameMode": "/Script/UnrealTournament.UTCTFGameMode", -"gameOptions": "?BalanceTeams=false?TimeLimit=20?GoalScore=0?botfill=2?ignoreidle=1?mutator=MutHitsounds,UTPlus,UTPlusMovement,WeaponSkins,MutTeamskins,NoPickupTimerMutator,NoSpawnProtectionMutator", -"requiredPackages" : [ - "MutHitsounds", - "MutTeamskins", - "UTPlus", - "UTPlusMovement", - "WeaponSkins", - "NoPickupTimerMutator", - "NoSpawnProtectionMutator" -], -"bTeamGame": true, -"bCompetitiveMatch": false, -"optionFlags": 65535, -"bHideFromUI": false, -"epicForceUIVisibility": 0 -}, diff --git a/smileyface/app.py b/smileyface/app.py index cdca9bd..2d7b519 100644 --- a/smileyface/app.py +++ b/smileyface/app.py @@ -1,4 +1,5 @@ from . import hub_machine +from . import datalayer import app_skellington from app_skellington import _util @@ -36,6 +37,7 @@ class SmileyFace(app_skellington.ApplicationContainer): def _services(self): self['model'] = lambda: hub_machine.UTServerMachine(self.ctx) + self['datalayer'] = lambda: datalayer.DataLayer(self.ctx) def interactive_shell(self): pass diff --git a/smileyface/datalayer.py b/smileyface/datalayer.py new file mode 100644 index 0000000..397ba49 --- /dev/null +++ b/smileyface/datalayer.py @@ -0,0 +1,5 @@ + +class DataLayer: + def __init__(self, ctx): + self.ctx = ctx + diff --git a/smileyface/config_editor.py b/smileyface/gameconfig_edit.py similarity index 100% rename from smileyface/config_editor.py rename to smileyface/gameconfig_edit.py diff --git a/smileyface/hub_machine.py b/smileyface/hub_machine.py index bbad18e..5ae8acb 100644 --- a/smileyface/hub_machine.py +++ b/smileyface/hub_machine.py @@ -1,4 +1,4 @@ -from .config_editor import UnrealIniFile, GameIniSpecial +from .gameconfig_edit import UnrealIniFile, GameIniSpecial from ._util import md5sum_file from app_skellington import _util @@ -412,7 +412,7 @@ ssh {remote_game_host} chown ut4.ut4 {remote_game_dir} -R project_dir = self.ctx.config['app']['project_dir'] src_dir = '/'.join([project_dir, 'files/rulesets']) - out_dir = '/'.join([project_dir, '/instance/LinuxServer/UnrealTournament/Saved/Rulesets']) + out_dir = '/'.join([project_dir, '/instance/LinuxServer/UnrealTournament/Saved/Config/Rulesets']) out_filename='/'.join([out_dir, 'ruleset.json']) cmd = 'mkdir -pv {out_dir}'.format(**{ @@ -423,7 +423,7 @@ ssh {remote_game_host} chown ut4.ut4 {remote_game_dir} -R self.ctx.log['ut4'].info('out filename=%s', out_filename) # echo {\"rules\":[ > "$OUT_FILENAME" - cmd = 'echo {{\"rules\":[ > "{out_filename}"'.format(out_filename=out_filename) + cmd = "echo '{{\"rules\":[' > \"{out_filename}\"".format(out_filename=out_filename) self._invoke_command(cmd) cmd = 'for f in "{src_dir}"/*.json ; do cat "$f" >> "{out_filename}" ; done'.format( diff --git a/smileyface/server_onoff.py b/smileyface/server_onoff.py new file mode 100644 index 0000000..e69de29 diff --git a/smileyface/server_upload.py b/smileyface/server_upload.py new file mode 100644 index 0000000..e69de29 diff --git a/ut4-server-ctl.sh b/ut4-server-ctl.sh index c6365dc..96023a3 100755 --- a/ut4-server-ctl.sh +++ b/ut4-server-ctl.sh @@ -119,7 +119,7 @@ # BELOW has been moved to vars-dallas # ---------------------------------------- # -export PROJECT_DIR="/home/mathew/dev/zavage/ut4-server-ctl" +export PROJECT_DIR="/home/mathew/dev/zavage/smileyface" # # # For creating RedirectReferences= Lines # export REDIRECT_PROTOCOL="https" diff --git a/vars-dallas b/vars-dallas index 3949822..1ef8a60 100644 --- a/vars-dallas +++ b/vars-dallas @@ -1,5 +1,5 @@ -export PROJECT_DIR="/home/mathew/dev/zavage/ut4-server-ctl" -export CONFIG_DIR="/home/mathew/dev/zavage/ut4-server-ctl/server-dallas/config" +export PROJECT_DIR="/home/mathew/dev/zavage/smileyface" +export CONFIG_DIR="/home/mathew/dev/zavage/smileyface/server-dallas/config" export REDIRECT_PROTOCOL="https" export REDIRECT_URL="ut4-redirect.zavage.net" diff --git a/vars-fremont b/vars-fremont index 47d09df..108448b 100644 --- a/vars-fremont +++ b/vars-fremont @@ -1,5 +1,5 @@ -export PROJECT_DIR="/home/mathew/dev/zavage/ut4-server-ctl" -export CONFIG_DIR="/home/mathew/dev/zavage/ut4-server-ctl/server-fremont/config" +export PROJECT_DIR="/home/mathew/dev/zavage/smileyface" +export CONFIG_DIR="/home/mathew/dev/zavage/smileyface/server-fremont/config" export REDIRECT_PROTOCOL="https" export REDIRECT_URL="ut4-redirect.zavage.net"