From 1ae86d97f6e64be3cc9e11f49083cd6db15f2d20 Mon Sep 17 00:00:00 2001 From: Greelan <53196309+Greelan@users.noreply.github.com> Date: Sat, 17 Sep 2022 12:28:49 +1000 Subject: [PATCH] Geyser: overhaul of template (#162) --- geyser.kvp | 121 ++++++++++++++++++++++++++++++--------------- geyserconfig.json | 64 +++++++++++++++++++----- geyserupdates.json | 84 +++++++++++++++++++++++++++++++ 3 files changed, 218 insertions(+), 51 deletions(-) create mode 100644 geyserupdates.json diff --git a/geyser.kvp b/geyser.kvp index 111f359..339a6e1 100644 --- a/geyser.kvp +++ b/geyser.kvp @@ -1,43 +1,86 @@ -App.DisplayName=Geyser -App.RootDir=./Geyser/ -App.WorkingDir= -App.ExecutableWin=java -App.ExecutableLinux=/usr/bin/java -App.Compatibility=None -App.CommandLineArgs=-Xms{{MinMemory}}M -jar {{JarFile}} -App.CommandLineVars={"MinMemory":"1024","JarFile":"Geyser.jar"} -App.EnvironmentVariables={} -App.ExitMethod=String -App.ExitString=geyser stop -App.HasWriteableConsole=True -App.HasReadableConsole=True -App.ApplicationIPBinding=0.0.0.0 -App.ApplicationPort1=19132 -App.ApplicationPort2=19133 -App.ApplicationPort3=19134 -App.MaxUsers=100 -App.AdminMethod=STDIO -App.UpdateSource=FetchURL -App.UpdateSourceData=https://ci.opencollab.dev//job/GeyserMC/job/Geyser/job/master/lastSuccessfulBuild/artifact/bootstrap/standalone/target/Geyser.jar -App.UnzipUpdateSource=False -App.OverwriteExistingFiles=True -App.UseRandomAdminPassword=True -App.ApplicationReadyMode=RegexMatch - -Console.FilterMatchRegex=\[\d?\d?;?\d?m -Console.FilterMatchReplacement= -Console.AppReadyRegex=^\[\d{2}:\d{2}:\d{2} INFO\] Done \(\d+.\d+s\)! Run \/geyser help for help!$ -Console.UserJoinRegex=^\[\d{2}:\d{2}:\d{2} INFO\] (?.+) \(logged in as: (?.+)\) has connected to remote java server on address (?.+)$ -Console.UserLeaveRegex=^\[\d{2}:\d{2}:\d{2} INFO\] (?.+) has disconnected from remote Java server on address (?.+) because of (?.+)$ -Console.ThrowawayMessageRegex= -Console.UserActions={} - Meta.DisplayName=Geyser Meta.Description=Geyser Minecraft Proxy Meta.OS=Windows, Linux -Meta.Author=https://github.com/Galaxyzd -Meta.URL=https://github.com/CubeCoders/AMPTemplates/blob/main/geysermc.kvp +Meta.Arch=x86_64 +Meta.Author=Greelan +Meta.URL=https://geysermc.org/ Meta.DisplayImageSource=url:https://camo.githubusercontent.com/2c38e59629bbb0f2e632c231416baf222119b55a24803cf548e04c26e2785760/68747470733a2f2f6765797365726d632e6f72672f696d672f6765797365722d313736302d3836302e706e67 -Meta.ConfigManifest=configmanifest.json -Meta.ConfigRoot=GenericModule.kvp -Meta.Hidden=true +Meta.EndpointURIFormat=steam://connect/{0} +Meta.ConfigManifest=geyserconfig.json +Meta.MetaConfigManifest= +Meta.ConfigRoot=geyser.kvp +Meta.MinAMPVersion=2.4.0.2 +Meta.SpecificDockerImage= +Meta.DockerRequired=False +Meta.ContainerPolicy=Supported +Meta.ContainerPolicyReason= +Meta.Prerequsites=[] +Meta.ConfigReleaseState=NotSpecified +Meta.NoCommercialUsage=False +App.DisplayName=Geyser +App.RootDir=./geyser/ +App.BaseDirectory=./geyser/ +App.ExecutableWin=java\bin\java.exe +App.ExecutableLinux=java/bin/java +App.WorkingDir= +App.LinuxCommandLineArgs= +App.WindowsCommandLineArgs= +App.CommandLineArgs=-Xms{{MinMemory}}M -Xmx{{MaxMemory}}M {{CustomJavaArgs}} -jar Geyser.jar {{$PlatformArgs}} --bedrock.port={{$ServerPort}} {{$FormattedArgs}} nogui +App.UseLinuxIOREDIR=False +App.AppSettings={} +App.EnvironmentVariables={} +App.CommandLineParameterFormat=--{0}="{1}" +App.CommandLineParameterDelimiter= +App.ExitMethod=String +App.ExitTimeout=30 +App.ExitString=geyser stop +App.ExitFile=app_exit.lck +App.HasWriteableConsole=True +App.HasReadableConsole=True +App.SupportsLiveSettingsChanges=False +App.LiveSettingChangeCommandFormat=set {0} "{1}" +App.ApplicationIPBinding=0.0.0.0 +App.Ports=[{"Protocol":"UDP","Port":19132,"Ref":"ServerPort","Name":"Server Port","Description":"Port for server traffic"}] +App.PrimaryApplicationPortRef=ServerPort +App.UniversalSleepApplicationUDPPortRef=ServerPort +App.UniversalSleepSteamQueryPortRef= +App.MaxUsers=100 +App.UseRandomAdminPassword=False +App.RemoteAdminPassword=Password123 +App.AdminMethod=STDIO +App.AdminLoginTransform=None +App.RCONConnectDelaySeconds=5 +App.RCONConnectRetrySeconds=5 +App.RCONHeartbeatMinutes=0 +App.RCONHeartbeatCommand=ping +App.TelnetLoginFormat={0} +App.UpdateSources=@IncludeJson[geyserupdates.json] +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=(\[m|\[\d+?;?\d+?m) +Console.FilterMatchReplacement= +Console.ThrowawayMessageRegex= +Console.AppReadyRegex=^\[[\d:]+ INFO\] Done \([\d.]+s\)! Run \/geyser help for help!$ +Console.UserJoinRegex=^\[[\d:]+ INFO\] (?.+?) \(logged in as: .+\) has connected to remote java server on address (?.+?)$ +Console.UserLeaveRegex=^\[[\d:]+ INFO\] (?.+?) has disconnected from remote Java server on address (?.+?) because of (?.+)$ +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/geyserconfig.json b/geyserconfig.json index 86c0e65..c18a390 100644 --- a/geyserconfig.json +++ b/geyserconfig.json @@ -1,18 +1,58 @@ [ { - "DisplayName": "Minimum Memory (MB)", - "Description": "The minimum memory allocated to Geyser, in MB", - "FieldName": "MinMemory", - "Keywords": "memory", - "InputType": "number", - "Category": "Geyser Configuration" + "DisplayName":"Java Version", + "Category":"Java Settings", + "Description":"Sets the Java version to install. Must be a major version number only such as 18 or 19, not a subversion. Check the [Geyser wiki](https://wiki.geysermc.org/geyser/setup/) for versions compatible with Geyser, and the [Oracle website](https://www.oracle.com/java/technologies/downloads/) for available downloads. Server must be updated after changing this setting", + "Keywords":"java,version", + "FieldName":"JavaVersion", + "InputType":"number", + "MinValue":"17", + "IsFlagArgument":false, + "ParamFieldName":"JavaVersion", + "IncludeInCommandLine":false, + "DefaultValue":"18", + "EnumValues":{} }, { - "DisplayName": "JAR File", - "Description": "The JAR file to execute", - "FieldName": "JarFile", - "Keywords": "jar", - "InputType": "text", - "Category": "Geyser Configuration" + "DisplayName":"Minimum Memory", + "Category":"Java Settings", + "Description":"Java's minimum heap size", + "Keywords":"minimum,memory,heap", + "FieldName":"MinMemory", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"MinMemory", + "IncludeInCommandLine":false, + "DefaultValue":"1024", + "Suffix":"MB", + "EnumValues":{} + }, + { + "DisplayName":"Maximum Memory", + "Category":"Java Settings", + "Description":"Java's maximum heap size", + "Keywords":"maximum,memory,heap", + "FieldName":"MaxMemory", + "InputType":"number", + "IsFlagArgument":false, + "ParamFieldName":"MaxMemory", + "IncludeInCommandLine":false, + "DefaultValue":"1024", + "Suffix":"MB", + "EnumValues":{} + }, + { + "DisplayName":"Additional Java Startup Parameters", + "Category":"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":"", + "Placeholder":"-XX:+UseG1GC", + "EnumValues":{} } ] diff --git a/geyserupdates.json b/geyserupdates.json new file mode 100644 index 0000000..22e4042 --- /dev/null +++ b/geyserupdates.json @@ -0,0 +1,84 @@ +[ + { + "UpdateStageName":"Server Download", + "UpdateSourcePlatform":"All", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://ci.opencollab.dev/job/GeyserMC/job/Geyser/job/master/lastSuccessfulBuild/artifact/bootstrap/standalone/target/Geyser.jar", + "UpdateSourceTarget":"{{$FullRootDir}}", + "OverwriteExistingFiles":true + }, + { + "UpdateStageName":"Java Download", + "UpdateSourcePlatform":"Windows", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://download.oracle.com/java/{{JavaVersion}}/latest/jdk-{{JavaVersion}}_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 .\\geyser\\java" + }, + { + "UpdateStageName":"Java Download", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"FetchURL", + "UpdateSourceData":"https://download.oracle.com/java/{{JavaVersion}}/latest/jdk-{{JavaVersion}}_linux-x64_bin.tar.gz", + "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 .\\geyser\\jdk* .\\geyser\\java" + }, + { + "UpdateStageName":"Replace Java Directory", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"Executable", + "UpdateSourceData":"/bin/bash", + "UpdateSourceArgs":"-c 'rm -rf ./geyser/java ; mv ./geyser/jdk* ./geyser/java'" + }, + { + "UpdateStageName":"Pause Update Stages", + "UpdateSourcePlatform":"All", + "UpdateSource":"Pause", + "UpdateSourceArgs":"2" + }, + { + "UpdateStageName":"Set Executable Flag", + "UpdateSourcePlatform":"Linux", + "UpdateSource":"SetExecutableFlag", + "UpdateSourceArgs":"{{$FullBaseDir}}java/bin/java" + }, + { + "UpdateStageName":"Start Server", + "UpdateSourcePlatform":"All", + "UpdateSource":"StartApplication" + }, + { + "UpdateStageName":"Wait For Server Start", + "UpdateSourcePlatform":"All", + "UpdateSource":"WaitForStartupComplete" + }, + { + "UpdateStageName":"Stop Server", + "UpdateSourcePlatform":"All", + "UpdateSource":"ShutdownApplication" + } +] \ No newline at end of file