diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 3fe826b..a87bf31 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -6,7 +6,6 @@ - diff --git a/src/main/java/org/strassburger/mcrun/RunServerMojo.java b/src/main/java/org/strassburger/mcrun/RunServerMojo.java index 83d0a37..f11d540 100644 --- a/src/main/java/org/strassburger/mcrun/RunServerMojo.java +++ b/src/main/java/org/strassburger/mcrun/RunServerMojo.java @@ -18,30 +18,77 @@ import java.util.List; @Mojo(name = "run", defaultPhase = LifecyclePhase.PACKAGE) public class RunServerMojo extends AbstractMojo { + /** + * Path to the plugin jar to deploy. Defaults to the project's build output jar. + * Override if your jar is assembled elsewhere or has a classifier. + */ @Parameter(defaultValue = "${project.build.directory}/${project.build.finalName}.jar") private File pluginJar; + /** + * Directory where the test server will be created and run. + * The server jar, plugins folder, and all generated files (eula.txt, world, logs, etc.) + * will be placed here. Defaults to ${project.basedir}/server. + */ @Parameter(defaultValue = "${project.basedir}/server") private File serverDirectory; + /** + * File name for the downloaded or provided server jar, relative to {@code serverDirectory}. + * Defaults to server.jar. + */ @Parameter(defaultValue = "server.jar") private String serverJarName; + /** + * The server software to download. Defaults to paper. + * Can be one paper or spigot. + */ @Parameter(defaultValue = "paper") private String serverSoftware; + /** + * The Minecraft version to run, e.g. 1.21.4. Required. + */ @Parameter(required = true) private String mcVersion; + /** + * Heap size passed to both {@code -Xmx} and {@code -Xms}. + * Accepts standard JVM memory notation, e.g. 2G, 512M. + * Defaults to 2G. + */ @Parameter(defaultValue = "2G") private String memory; - @Parameter(defaultValue = "true") + /** + * When {@code true}, automatically creates {@code eula.txt} with {@code eula=true} + * in the server directory if it does not already exist, bypassing the manual + * acceptance step. Defaults to {@code false}. + * + *

By setting this to {@code true} you are indicating that you accept the + * Minecraft End User License Agreement.

+ */ + @Parameter(defaultValue = "false") private boolean acceptEula; + /** + * Additional JVM arguments to pass to the server process. + * These are inserted after -Xmx/-Xms and before -jar. + * + *
{@code
+     * 
+     *     -XX:+UseG1GC
+     *     -XX:+ParallelRefProcEnabled
+     * 
+     * }
+ */ @Parameter private List jvmArgs = new ArrayList<>(); + /** + * The port the Minecraft server will listen on. Passed to the server via --port. + */ @Parameter private Integer port;