From 5a19f61147a39aa467d24513ebbd0495fcd312bf Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Sun, 30 Apr 2023 13:01:37 +1000 Subject: [PATCH] Add Mindustry (#341) --- mindustry.kvp | 94 ++++++++ mindustryconfig.json | 506 ++++++++++++++++++++++++++++++++++++++++++ mindustryupdates.json | 89 ++++++++ 3 files changed, 689 insertions(+) create mode 100644 mindustry.kvp create mode 100644 mindustryconfig.json create mode 100644 mindustryupdates.json diff --git a/mindustry.kvp b/mindustry.kvp new file mode 100644 index 0000000..3e13665 --- /dev/null +++ b/mindustry.kvp @@ -0,0 +1,94 @@ +Meta.DisplayName=Mindustry +Meta.Description=Mindustry Dedicated Server +Meta.OS=Windows, Linux +Meta.AarchSupport=Native +Meta.Arch=All +Meta.Author=Greelan +Meta.URL=https://mindustrygame.github.io/ +Meta.DisplayImageSource=steam:1127400 +Meta.EndpointURIFormat=steam://connect/{0} +Meta.ConfigManifest=mindustryconfig.json +Meta.MetaConfigManifest= +Meta.ConfigRoot=mindustry.kvp +Meta.MinAMPVersion=2.4.3.2 +Meta.SpecificDockerImage= +Meta.DockerRequired=False +Meta.ContainerPolicy=Supported +Meta.ContainerPolicyReason= +Meta.ExtraSetupStepsURI= +Meta.Prerequsites=[] +Meta.ExtraContainerPackages=[] +Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +App.DisplayName=Mindustry +App.RootDir=./mindustry/ +App.BaseDirectory=./mindustry/ +App.SteamWorkshopDownloadLocation= +App.ExecutableWin=java\bin\java.exe +App.ExecutableLinux=java/bin/java +App.WorkingDir= +App.LinuxCommandLineArgs= +App.WindowsCommandLineArgs= +App.CommandLineArgs={{CustomJavaArgs}} -jar server-release.jar config port {{$ServerPort}},config socketInputPort {{$SocketInputPort}},{{host}}{{$FormattedArgs}} +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={"SteamAppId":"1127400"} +App.CommandLineParameterFormat={0} "{1}" +App.CommandLineParameterDelimiter=, +App.ExitMethod=String +App.ExitTimeout=30 +App.ExitString=exit +App.ExitFile=app_exit.lck +App.HasWriteableConsole=True +App.HasReadableConsole=True +App.SupportsLiveSettingsChanges=False +App.LiveSettingChangeCommandFormat={0} {1} +App.ApplicationIPBinding=0.0.0.0 +App.Ports=[{"Protocol":"Both","Port":6567,"Ref":"ServerPort","Name":"Server Port","Description":"Port for server traffic"},{"Protocol":"TCP","Port":6569,"Ref":"SocketInputPort","Name":"Socket Input Port","Description":"Port for socket input traffic"}] +App.AdminPortRef=0 +App.PrimaryApplicationPortRef=ServerPort +App.UniversalSleepApplicationUDPPortRef=ServerPort +App.UniversalSleepSteamQueryPortRef=0 +App.MaxUsers=100 +App.UseRandomAdminPassword=True +App.PersistRandomPassword=True +App.RemoteAdminPassword= +App.AdminMethod=STDIO +App.AdminLoginTransform=None +App.LoginTransformPrefix= +App.RCONConnectDelaySeconds=5 +App.RCONConnectRetrySeconds=5 +App.RCONHeartbeatMinutes=0 +App.RCONHeartbeatCommand=ping +App.TelnetLoginFormat={0} +App.UpdateSources=App.UpdateSources=@IncludeJson[mindustryupdates.json] +App.PreStartStages=[] +App.Compatibility=None +App.SteamUpdateAnonymousLogin=True +App.SteamForceLoginPrompt=False +App.RapidStartup=False +App.MonitorChildProcess=False +App.MonitorChildProcessWaitMs=100 +App.MonitorChildProcessName= +App.SupportsUniversalSleep=False +App.WakeupMode=Any +App.ApplicationReadyMode=RegexMatch +App.TemplateMatchRegex={{(\$?[\w]+)}} +Console.FilterMatchRegex=\[\d+m +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex= +Console.AppReadyRegex=^\[[\d-]+ [\d:]+\] \[I\] Server loaded\. Type 'help' for help\.$ +Console.UserJoinRegex=^\[[\d-]+ [\d:]+\] \[I\] (?.+?) has connected\. \[(?.+?)\]$ +Console.UserLeaveRegex=^\[[\d-]+ [\d:]+\] \[I\] (?.+?) has disconnected\. \[(?.+?)\] \(.*\)$ +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=True +Limits.SleepOnStart=False +Limits.SleepDelayMinutes=5 +Limits.DozeDelay=2 +Limits.AutoRetryCount=5 +Limits.SleepStartThresholdSeconds=25 diff --git a/mindustryconfig.json b/mindustryconfig.json new file mode 100644 index 0000000..e20b587 --- /dev/null +++ b/mindustryconfig.json @@ -0,0 +1,506 @@ +[ + { + "DisplayName":"Enable Logging", + "Category":"Mindustry Server Settings", + "Description":"Enables logging to files by default", + "Keywords":"", + "FieldName":"logging", + "InputType":"text", + "Hidden":true, + "IsFlagArgument":false, + "ParamFieldName":"config logging", + "IncludeInCommandLine":true, + "DefaultValue":"true", + "EnumValues":{} + }, + { + "DisplayName":"Server Version", + "Category":"Mindustry Server Settings", + "Description":"Sets the [server version](https://github.com/Anuken/Mindustry/tags) to install. Blank (default) = latest release. NOTE: Update the server after changing this setting", + "Keywords":"server,version,release", + "FieldName":"ServerVersion", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"ServerVersion", + "IncludeInCommandLine":false, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Server Name", + "Category":"Mindustry Server Settings", + "Description":"Sets the server name as displayed on clients. Don't include commas", + "Keywords":"server,name", + "FieldName":"name", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"config name", + "IncludeInCommandLine":true, + "DefaultValue":"AMP Powered Mindustry Server", + "EnumValues":{} + }, + { + "DisplayName":"Server Description", + "Category":"Mindustry Server Settings", + "Description":"Sets the server description, displayed under the name. Maximum 100 characters. Don't include commas", + "Keywords":"server,description,desc", + "FieldName":"desc", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"config desc", + "IncludeInCommandLine":true, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Message Of The Day", + "Category":"Mindustry Server Settings", + "Description":"Sets the message displayed to players on connection (MOTD). Don't include commas", + "Keywords":"motd,welcome,message", + "FieldName":"motd", + "InputType":"Textarea", + "IsFlagArgument":false, + "ParamFieldName":"config motd", + "IncludeInCommandLine":true, + "DefaultValue":"Welcome to Mindustry!", + "EnumValues":{} + }, + { + "DisplayName":"Initial Map", + "Category":"Mindustry Server Settings", + "Description":"Sets the map to initially load, if any. None = server won't be \"opened\", and no game started (unless Load Saved Slot is set). Random = random map started in Survival mode. If Custom is selected, you must also set the Custom Map Name", + "Keywords":"host,map", + "FieldName":"host", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"host", + "IncludeInCommandLine":false, + "DefaultValue":"", + "EnumValues":{ + "":"None (default)", + "host,":"Random", + "host Ancient_Caldera {{Mode}},":"Ancient Caldera", + "host Archipelago {{Mode}},":"Archipelago", + "host Debris_Field {{Mode}},":"Debris Field", + "host Domain {{Mode}},":"Domain", + "host Fork {{Mode}},":"Fork", + "host Fortress {{Mode}},":"Fortress", + "host Glacier {{Mode}},":"Glacier", + "host Islands {{Mode}},":"Islands", + "host Labyrinth {{Mode}},":"Labyrinth", + "host Maze {{Mode}},":"Maze", + "host Molten_Lake {{Mode}},":"Molten Lake", + "host Mud_Flats {{Mode}},":"Mud Flats", + "host Passage {{Mode}},":"Passage", + "host Shattered {{Mode}},":"Shattered", + "host Tendrils {{Mode}},":"Tendrils", + "host Triad {{Mode}},":"Triad", + "host Veins {{Mode}},":"Veins", + "host Wasteland {{Mode}},":"Wasteland", + "host {{CustomMapName}} {{Mode}},":"Custom" + } + }, + { + "DisplayName":"Custom Map Name", + "Category":"Mindustry Server Settings", + "Description":"Sets the name of a custom map to initially load. The map must be included in config/maps. \"Custom\" must be selected under Initial Map", + "Keywords":"custom,map", + "FieldName":"CustomMapName", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"CustomMapName", + "IncludeInCommandLine":false, + "DefaultValue":"", + "EnumValues":{} + }, + { + "DisplayName":"Map Shuffle Mode", + "Category":"Mindustry Server Settings", + "Description":"Sets the map shuffling mode", + "Keywords":"map,shuffle", + "FieldName":"shuffle", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"shuffle", + "IncludeInCommandLine":true, + "DefaultValue":"all", + "EnumValues":{ + "none":"No shuffling", + "all":"Shuffle all maps (default)", + "custom":"Shuffle only custom maps", + "builtin":"Shuffle only default maps" + } + }, + { + "DisplayName":"Game Mode", + "Category":"Mindustry Server Settings", + "Description":"Sets the initial game mode", + "Keywords":"game,mode", + "FieldName":"Mode", + "InputType":"enum", + "IsFlagArgument":false, + "ParamFieldName":"Mode", + "IncludeInCommandLine":false, + "DefaultValue":"survival", + "EnumValues":{ + "survival":"Survival (default)", + "sandbox":"Sandbox", + "attack":"Attack", + "pvp":"PvP" + } + }, + { + "DisplayName":"Load Saved Slot", + "Category":"Mindustry Server Settings", + "Description":"Sets the saved slot (as included in config/saves, without the .msav extension) to initially load. The Initial Map must be set to None for the saved slot to load, and a game cannot be running", + "Keywords":"load,save", + "FieldName":"load", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"load", + "IncludeInCommandLine":true, + "DefaultValue":"", + "SkipIfEmpty":true, + "EnumValues":{} + }, + { + "DisplayName":"Server Mods", + "Category":"Mindustry Server Settings", + "Description":"Mods can be enabled by including them in config/mods", + "Keywords":"mods", + "FieldName":"Mods", + "InputType":"hidden", + "IsFlagArgument":false, + "ParamFieldName":"Mods", + "IncludeInCommandLine":false, + "EnumValues":{} + }, + { + "DisplayName":"Player Limit", + "Category":"Mindustry Server Settings", + "Description":"Sets the maximum number of players that may connect to the server at one time", + "Keywords":"maximum,players,clients,limit,maxplayers", + "FieldName":"$MaxUsers", + "InputType":"number", + "MinValue":"1", + "IsFlagArgument":false, + "ParamFieldName":"playerlimit", + "IncludeInCommandLine":true, + "DefaultValue":"100", + "Placeholder":"100", + "Suffix":"players", + "EnumValues":{} + }, + { + "DisplayName":"Enable Whitelist", + "Category":"Mindustry Server Settings", + "Description":"If set, the server whitelist will be enabled. Manage the whitelisted players from the console using \"whitelist [add/remove] [ID]\"", + "Keywords":"whitelist", + "FieldName":"whitelist", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"config whitelist", + "IncludeInCommandLine":true, + "DefaultValue":"false", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Auto Pause When Empty", + "Category":"Mindustry Server Settings", + "Description":"If set, any running game will be paused when no player is online", + "Keywords":"auto,pause,empty,autopause", + "FieldName":"autoPause", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"config autoPause", + "IncludeInCommandLine":true, + "DefaultValue":"false", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Enable Autosave", + "Category":"Mindustry Server Settings", + "Description":"If enabled, the server will periodically save the map during play", + "Keywords":"save,enable,autosave", + "FieldName":"autosave", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"config autosave", + "IncludeInCommandLine":true, + "DefaultValue":"false", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Autosave Interval", + "Category":"Mindustry Server Settings", + "Description":"Sets the time interval between autosaves, if autosave is enabled", + "Keywords":"save,autosave,interval,autosavespacing", + "FieldName":"autosaveSpacing", + "InputType":"number", + "MinValue":"1", + "IsFlagArgument":false, + "ParamFieldName":"config autosaveSpacing", + "IncludeInCommandLine":true, + "DefaultValue":"300", + "Placeholder":"300", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Maximum Autosave Quantity", + "Category":"Mindustry Server Settings", + "Description":"Sets the maximum quantity of autosaves to be retained. Older saves will be replaced when the limit is reached", + "Keywords":"maximum,autosaves,autosaveamount", + "FieldName":"autosaveAmount", + "InputType":"number", + "MinValue":"1", + "IsFlagArgument":false, + "ParamFieldName":"config autosaveAmount", + "IncludeInCommandLine":true, + "DefaultValue":"10", + "Placeholder":"10", + "Suffix":"autosaves", + "EnumValues":{} + }, + { + "DisplayName":"Enable Debug Logging", + "Category":"Mindustry Server Settings", + "Description":"If set, debug logging will be enabled on the server", + "Keywords":"log,logging,debug", + "FieldName":"debug", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"config debug", + "IncludeInCommandLine":true, + "DefaultValue":"false", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Enable Strict Mode", + "Category":"Mindustry Gameplay Settings", + "Description":"If set, strict mode will be enabled - the server will correct positions and prevent duplicate UUIDs", + "Keywords":"strict,mode", + "FieldName":"strict", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"config strict", + "IncludeInCommandLine":true, + "DefaultValue":"true", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Allow Custom Clients", + "Category":"Mindustry Gameplay Settings", + "Description":"If enabled, custom clients will be allowed to connect to the server", + "Keywords":"custom,clients,allowcustomclients", + "FieldName":"allowCustomClients", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"config allowCustomClients", + "IncludeInCommandLine":true, + "DefaultValue":"false", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Show Connect/Disconnect Messages", + "Category":"Mindustry Gameplay Settings", + "Description":"If set, player connect and disconnect messages will be displayed", + "Keywords":"connect,disconnect,message,showconnectmessages", + "FieldName":"showConnectMessages", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"config showConnectMessages", + "IncludeInCommandLine":true, + "DefaultValue":"true", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Enable Vote Kick", + "Category":"Mindustry Gameplay Settings", + "Description":"If set, votekick will be enabled", + "Keywords":"vote,kick,enablevotekick", + "FieldName":"enableVotekick", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"config enableVotekick", + "IncludeInCommandLine":true, + "DefaultValue":"true", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Enable Anti-spam", + "Category":"Mindustry Gameplay Settings", + "Description":"If enabled, spammers will be automatically kicked and rate-limited", + "Keywords":"spam,spammers,antispam", + "FieldName":"antiSpam", + "InputType":"checkbox", + "IsFlagArgument":false, + "ParamFieldName":"config antiSpam", + "IncludeInCommandLine":true, + "DefaultValue":"true", + "EnumValues":{ + "False":"false", + "True":"true" + } + }, + { + "DisplayName":"Message Rate Limit", + "Category":"Mindustry Server Settings", + "Description":"Sets the message rate limit. 0 = disabled", + "Keywords":"message,rate,limit,messageratelimit", + "FieldName":"messageRateLimit", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"config messageRateLimit", + "IncludeInCommandLine":true, + "DefaultValue":"0", + "Placeholder":"0", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Message Spam Kick", + "Category":"Mindustry Server Settings", + "Description":"Sets how many times a player must send a message before the cooldown to get kicked. 0 = disabled", + "Keywords":"message,spam,kick,messagespamkick", + "FieldName":"messageSpamKick", + "InputType":"number", + "MinValue":"0", + "IsFlagArgument":false, + "ParamFieldName":"config messageSpamKick", + "IncludeInCommandLine":true, + "DefaultValue":"3", + "Placeholder":"3", + "EnumValues":{} + }, + { + "DisplayName":"Chat Spam Limit", + "Category":"Mindustry Server Settings", + "Description":"Sets the limit for the chat packet count sent within 2 seconds that will lead to a blacklist and kick. Not the same as a rate limit", + "Keywords":"chat,spam,blacklist,kick,chatspamlimit", + "FieldName":"chatSpamLimit", + "InputType":"number", + "MinValue":"1", + "IsFlagArgument":false, + "ParamFieldName":"config chatSpamLimit", + "IncludeInCommandLine":true, + "DefaultValue":"20", + "Placeholder":"20", + "EnumValues":{} + }, + { + "DisplayName":"Packet Spam Limit", + "Category":"Mindustry Server Settings", + "Description":"Sets the limit for the packet count sent within 3 seconds that will lead to a blacklist and kick", + "Keywords":"packet,spam,blacklist,kick,packetspamlimit", + "FieldName":"packetSpamLimit", + "InputType":"number", + "MinValue":"1", + "IsFlagArgument":false, + "ParamFieldName":"config packetSpamLimit", + "IncludeInCommandLine":true, + "DefaultValue":"300", + "Placeholder":"300", + "EnumValues":{} + }, + { + "DisplayName":"Block Interaction Rate Limit Window", + "Category":"Mindustry Server Settings", + "Description":"Sets the block interaction rate limit window", + "Keywords":"block,interaction,rate,limit,window,interactratewindow", + "FieldName":"interactRateWindow", + "InputType":"number", + "MinValue":"1", + "IsFlagArgument":false, + "ParamFieldName":"config interactRateWindow", + "IncludeInCommandLine":true, + "DefaultValue":"6", + "Placeholder":"6", + "Suffix":"seconds", + "EnumValues":{} + }, + { + "DisplayName":"Block Interaction Rate Limit", + "Category":"Mindustry Server Settings", + "Description":"Sets the block interaction rate limit", + "Keywords":"block,interaction,rate,limit,interactratelimit", + "FieldName":"interactRateLimit", + "InputType":"number", + "MinValue":"1", + "IsFlagArgument":false, + "ParamFieldName":"config interactRateLimit", + "IncludeInCommandLine":true, + "DefaultValue":"25", + "Placeholder":"25", + "EnumValues":{} + }, + { + "DisplayName":"Minimum Interactions For Kick", + "Category":"Mindustry Server Settings", + "Description":"Sets how many times a player must interact inside the window to get kicked", + "Keywords":"block,interaction,window,kick,interactratekick", + "FieldName":"interactRateKick", + "InputType":"number", + "MinValue":"1", + "IsFlagArgument":false, + "ParamFieldName":"config interactRateKick", + "IncludeInCommandLine":true, + "DefaultValue":"60", + "Placeholder":"60", + "EnumValues":{} + }, + { + "DisplayName":"Client Entity Snapshot Interval", + "Category":"Mindustry Gameplay Settings", + "Description":"Sets the client entity snapshot interval", + "Keywords":"client,snapshot,interval,snapshotinterval", + "FieldName":"snapshotInterval", + "InputType":"number", + "MinValue":"1", + "IsFlagArgument":false, + "ParamFieldName":"config snapshotInterval", + "IncludeInCommandLine":true, + "DefaultValue":"200", + "Placeholder":"200", + "Suffix":"milliseconds", + "EnumValues":{} + }, + { + "DisplayName":"Additional Java Startup Parameters", + "Category":"Mindustry Java Settings", + "Description":"Additional Java arguments (not server arguments) as startup parameters that are not otherwise set by AMP. Use with care", + "Keywords":"custom,java,arguments,parameters", + "FieldName":"CustomJavaArgs", + "InputType":"text", + "IsFlagArgument":false, + "ParamFieldName":"CustomJavaArgs", + "IncludeInCommandLine":false, + "DefaultValue":"", + "EnumValues":{} + } +] diff --git a/mindustryupdates.json b/mindustryupdates.json new file mode 100644 index 0000000..bafc875 --- /dev/null +++ b/mindustryupdates.json @@ -0,0 +1,89 @@ +[ + { + "UpdateStageName":"Server Download", + "UpdateSourcePlatform":"All", + "UpdateSource":"GithubRelease", + "UpdateSourceArgs":"Anuken/Mindustry", + "UpdateSourceData":"server-release.jar", + "UpdateSourceVersion":"{{ServerVersion}}", + "UpdateSourceTarget":"{{$FullRootDir}}", + "OverwriteExistingFiles":true + }, + { + "UpdateStageName":"Java Download", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://download.oracle.com/java/17/latest/jdk-17_windows-x64_bin.zip", + "UpdateSourceTarget":"{{$FullRootDir}}", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true + }, + { + "UpdateStageName":"Remove Old Java Directory", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"Executable", + "UpdateSourceData":"cmd.exe", + "UpdateSourceArgs":"/C rd /S /Q .\\mindustry\\java" + }, + { + "UpdateStageName":"Java Download", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz", + "UpdateSourceArch":"x86_64", + "UpdateSourceTarget":"{{$FullRootDir}}", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true + }, + { + "UpdateStageName":"Java Download", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://download.oracle.com/java/17/latest/jdk-17_linux-aarch64_bin.tar.gz", + "UpdateSourceArch":"aarch64", + "UpdateSourceTarget":"{{$FullRootDir}}", + "UnzipUpdateSource":true, + "OverwriteExistingFiles":true, + "DeleteAfterExtract":true + }, + { + "UpdateStageName":"Pause Update Stages", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"Pause", + "UpdateSourceArgs":"1" + }, + { + "UpdateStageName":"Rename New Java Directory", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"Executable", + "UpdateSourceData":"cmd.exe", + "UpdateSourceArgs":"/C move .\\mindustry\\jdk* .\\mindustry\\java" + }, + { + "UpdateStageName":"Replace Java Directory", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"Executable", + "UpdateSourceData":"/bin/bash", + "UpdateSourceArgs":"-c 'rm -rf ./mindustry/java ; mv ./mindustry/jdk* ./mindustry/java ; chmod +x ./mindustry/java/bin/java'" + }, + { + "UpdateStageName":"Create Maps Directory", + "UpdateSourcePlatform":"All", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}config/maps" + }, + { + "UpdateStageName":"Create Mods Directory", + "UpdateSourcePlatform":"All", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}config/mods" + }, + { + "UpdateStageName":"Create Saves Directory", + "UpdateSourcePlatform":"All", + "UpdateSource":"CreateDirectory", + "UpdateSourceArgs":"{{$FullBaseDir}}config/saves" + } +] \ No newline at end of file