Skip to content

Commit 4b5549b

Browse files
committed
Add task for regenerating IDE project files
1 parent 22153df commit 4b5549b

File tree

5 files changed

+37
-3
lines changed

5 files changed

+37
-3
lines changed

src/main/java/org/mcphackers/mcp/tasks/TaskDecompile.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ protected Stage[] setStages() {
7272
}
7373
}), stage(getLocalizedStage("decompile"), () -> {
7474
new Decompiler(this, rdiOut, ffOut, mcp.getLibraries(), mcp).decompile();
75-
new EclipseProjectWriter().createProject(mcp, side, ClassUtils.getSourceFromClassVersion(classVersion));
76-
new IdeaProjectWriter().createProject(mcp, side, ClassUtils.getSourceFromClassVersion(classVersion));
75+
}), stage(getLocalizedStage("generateRunConfigs", 84), () -> {
76+
new TaskGenerateRunConfigs(this.side, this.mcp);
7777
}), stage(getLocalizedStage("patch"), 88, () -> {
7878
if (mcp.getOptions().getBooleanParameter(TaskParameter.PATCHES) && Files.exists(patchesPath)) {
7979
TaskApplyPatch.patch(this, ffOut, ffOut, patchesPath);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package org.mcphackers.mcp.tasks;
2+
3+
import org.mcphackers.mcp.MCP;
4+
import org.mcphackers.mcp.tools.ClassUtils;
5+
import org.mcphackers.mcp.tools.project.EclipseProjectWriter;
6+
import org.mcphackers.mcp.tools.project.IdeaProjectWriter;
7+
8+
public class TaskGenerateRunConfigs extends TaskStaged {
9+
public TaskGenerateRunConfigs(Side side, MCP instance) {
10+
super(side, instance);
11+
}
12+
13+
@Override
14+
protected Stage[] setStages() {
15+
return new Stage[]{
16+
stage("generateRunConfig", 0, () -> {
17+
int classVersion = 8;
18+
new EclipseProjectWriter().createProject(mcp, side, ClassUtils.getSourceFromClassVersion(classVersion));
19+
new IdeaProjectWriter().createProject(mcp, side, ClassUtils.getSourceFromClassVersion(classVersion));
20+
})
21+
};
22+
}
23+
}

src/main/java/org/mcphackers/mcp/tasks/mode/TaskMode.java

+7
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.mcphackers.mcp.tasks.TaskCreatePatch;
1717
import org.mcphackers.mcp.tasks.TaskDecompile;
1818
import org.mcphackers.mcp.tasks.TaskDownloadUpdate;
19+
import org.mcphackers.mcp.tasks.TaskGenerateRunConfigs;
1920
import org.mcphackers.mcp.tasks.TaskRecompile;
2021
import org.mcphackers.mcp.tasks.TaskReobfuscate;
2122
import org.mcphackers.mcp.tasks.TaskRun;
@@ -150,6 +151,12 @@ public class TaskMode {
150151
.setProgressBars(true)
151152
.addRequirement((mcp, side) -> Files.isReadable(MCPPaths.get(mcp, MCPPaths.SOURCE, side)))
152153
.build();
154+
public static TaskMode GENERATE_RUN_CONFIGS = new TaskModeBuilder()
155+
.setName("generateRunConfigs")
156+
.setTaskClass(TaskGenerateRunConfigs.class)
157+
.setProgressBars(true)
158+
.addRequirement((mcp, side) -> Files.isReadable(MCPPaths.get(mcp, MCPPaths.SOURCE, side)))
159+
.build();
153160
public static TaskMode EXIT = new TaskModeBuilder()
154161
.setName("exit")
155162
.setProgressBars(false)

src/main/java/org/mcphackers/mcp/tools/project/IdeaProjectWriter.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,9 @@ public void writeLibraries(MCP mcp, Path projectFolder, Version version) throws
138138
if (Files.exists(MCPPaths.get(mcp, "libraries/" + lib + ".jar"))) {
139139
String libraryName = lib.substring(lib.lastIndexOf("/") + 1);
140140
Path libraryXML = librariesFolder.resolve(libraryName + ".xml");
141-
Files.createFile(libraryXML);
141+
if (!Files.exists(libraryXML)) {
142+
Files.createFile(libraryXML);
143+
}
142144
try (XMLWriter writer = new XMLWriter(Files.newBufferedWriter(libraryXML))) {
143145
// No XML header???
144146
writer.startAttribute("component name=\"libraryTable\"");

src/main/resources/lang/en_US.lang

+2
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ task.start = Start
6666
task.start.desc = Run client or server from compiled classes
6767
task.cleanup = Cleanup
6868
task.cleanup.desc = Delete all source and class folders
69+
task.generateRunConfigs = Generate run configs
70+
task.generateRunConfigs.desc = Regenerates run configurations for IDEs
6971
task.exit = Exit
7072
task.exit.desc = Exit the program
7173
task.updatemd5 = Update MD5

0 commit comments

Comments
 (0)