diff --git a/src/main/java/de/guntram/mcmod/crowdintranslate/GradlePlugin/CrowdinTranslateParameters.java b/src/main/java/de/guntram/mcmod/crowdintranslate/GradlePlugin/CrowdinTranslateParameters.java index d7bbee0..50e9eb7 100644 --- a/src/main/java/de/guntram/mcmod/crowdintranslate/GradlePlugin/CrowdinTranslateParameters.java +++ b/src/main/java/de/guntram/mcmod/crowdintranslate/GradlePlugin/CrowdinTranslateParameters.java @@ -1,40 +1,17 @@ package de.guntram.mcmod.crowdintranslate.GradlePlugin; -public class CrowdinTranslateParameters { - String crowdinProjectName; - String minecraftProjectName; - String jsonSourceName; - boolean verbose; - +import org.gradle.api.provider.Property; + +public abstract class CrowdinTranslateParameters { public void setCrowdinProjectname(String s) { - crowdinProjectName = s; - } - - public String getCrowdinProjectName() { - return crowdinProjectName; - } - - public void setMinecraftProjectName(String s) { - minecraftProjectName = s; - } - - public String getMinecraftProjectName() { - return minecraftProjectName; - } - - public void setJsonSourceName(String s) { - jsonSourceName = s; - } - - public String getJsonSourceName() { - return jsonSourceName; - } - - public void setVerbose(boolean b) { - verbose = b; - } - - public boolean getVerbose() { - return verbose; + getCrowdinProjectName().set(s); } + + public abstract Property getCrowdinProjectName(); + + public abstract Property getMinecraftProjectName(); + + public abstract Property getJsonSourceName(); + + public abstract Property getVerbose(); } diff --git a/src/main/java/de/guntram/mcmod/crowdintranslate/GradlePlugin/CrowdinTranslatePlugin.java b/src/main/java/de/guntram/mcmod/crowdintranslate/GradlePlugin/CrowdinTranslatePlugin.java index 3edf45a..da6f308 100644 --- a/src/main/java/de/guntram/mcmod/crowdintranslate/GradlePlugin/CrowdinTranslatePlugin.java +++ b/src/main/java/de/guntram/mcmod/crowdintranslate/GradlePlugin/CrowdinTranslatePlugin.java @@ -7,20 +7,25 @@ import org.gradle.api.Plugin; import org.gradle.api.Project; +import org.gradle.api.provider.Property; +import org.gradle.api.tasks.Input; /** * * @author gbl */ public class CrowdinTranslatePlugin implements Plugin { - - public static CrowdinTranslateParameters parameters; - @Override public void apply(Project project) { - - parameters = project.getExtensions() + final CrowdinTranslateParameters parameters = project.getExtensions() .create("crowdintranslate", CrowdinTranslateParameters.class); - project.getTasks().create("downloadTranslations", DownloadTask.class); + parameters.getVerbose().convention(false); + + project.getTasks().register("downloadTranslations", DownloadTask.class).configure(task -> { + task.getCrowdinProjectName().set(parameters.getCrowdinProjectName()); + task.getMinecraftProjectName().set(parameters.getMinecraftProjectName()); + task.getJsonSourceName().set(parameters.getJsonSourceName()); + task.getVerbose().set(parameters.getVerbose()); + }); } } diff --git a/src/main/java/de/guntram/mcmod/crowdintranslate/GradlePlugin/DownloadTask.java b/src/main/java/de/guntram/mcmod/crowdintranslate/GradlePlugin/DownloadTask.java index 3e0832a..c64c78f 100644 --- a/src/main/java/de/guntram/mcmod/crowdintranslate/GradlePlugin/DownloadTask.java +++ b/src/main/java/de/guntram/mcmod/crowdintranslate/GradlePlugin/DownloadTask.java @@ -2,26 +2,41 @@ import de.guntram.mcmod.crowdintranslate.CrowdinTranslate; import org.gradle.api.DefaultTask; +import org.gradle.api.provider.Property; +import org.gradle.api.tasks.Input; +import org.gradle.api.tasks.Optional; import org.gradle.api.tasks.TaskAction; -public class DownloadTask extends DefaultTask { +public abstract class DownloadTask extends DefaultTask { + @Input + @Optional + public abstract Property getCrowdinProjectName(); + + @Input + public abstract Property getMinecraftProjectName(); + + @Input + public abstract Property getJsonSourceName(); + + @Input + public abstract Property getVerbose(); + @TaskAction public void action() { - CrowdinTranslateParameters parms = CrowdinTranslatePlugin.parameters; - if (parms.getCrowdinProjectName() == null) { + if (!getCrowdinProjectName().isPresent()) { System.err.println("No crowdin project name given, nothing downloaded"); return; } - String[] args = new String[ (parms.getVerbose() ? 4 : 3) ]; + String[] args = new String[ (getVerbose().get() ? 4 : 3) ]; int argc = 0; - if (parms.getVerbose()) { + if (getVerbose().get()) { args[argc++] = "-v"; } - String cpn = parms.getCrowdinProjectName(); - String mpn = parms.getMinecraftProjectName(); + String cpn = getCrowdinProjectName().get(); + String mpn = getMinecraftProjectName().get(); args[argc++] = cpn; args[argc++] = (mpn == null ? cpn : mpn); - args[argc++] = parms.getJsonSourceName(); + args[argc++] = getJsonSourceName().get(); CrowdinTranslate.main(args); this.setDidWork(true);