Fix paths of files that are supposed to be in the mc data dir (fixes #40)
This commit is contained in:
@@ -85,7 +85,8 @@ public class ReplayMod {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public File getReplayFolder() throws IOException {
|
public File getReplayFolder() throws IOException {
|
||||||
File folder = new File(getSettingsRegistry().get(Setting.RECORDING_PATH));
|
String path = getSettingsRegistry().get(Setting.RECORDING_PATH);
|
||||||
|
File folder = new File(path.startsWith("./") ? getMinecraft().mcDataDir : null, path);
|
||||||
FileUtils.forceMkdir(folder);
|
FileUtils.forceMkdir(folder);
|
||||||
return folder;
|
return folder;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,10 +8,10 @@ import com.replaymod.online.gui.GuiSaveModifiedReplay;
|
|||||||
import com.replaymod.online.handler.GuiHandler;
|
import com.replaymod.online.handler.GuiHandler;
|
||||||
import com.replaymod.replay.ReplayModReplay;
|
import com.replaymod.replay.ReplayModReplay;
|
||||||
import com.replaymod.replay.events.ReplayCloseEvent;
|
import com.replaymod.replay.events.ReplayCloseEvent;
|
||||||
import de.johni0702.minecraft.gui.container.GuiScreen;
|
|
||||||
import com.replaymod.replaystudio.replay.ReplayFile;
|
import com.replaymod.replaystudio.replay.ReplayFile;
|
||||||
import com.replaymod.replaystudio.replay.ZipReplayFile;
|
import com.replaymod.replaystudio.replay.ZipReplayFile;
|
||||||
import com.replaymod.replaystudio.studio.ReplayStudio;
|
import com.replaymod.replaystudio.studio.ReplayStudio;
|
||||||
|
import de.johni0702.minecraft.gui.container.GuiScreen;
|
||||||
import net.minecraftforge.common.config.Configuration;
|
import net.minecraftforge.common.config.Configuration;
|
||||||
import net.minecraftforge.fml.common.FMLCommonHandler;
|
import net.minecraftforge.fml.common.FMLCommonHandler;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
@@ -24,6 +24,8 @@ import org.apache.logging.log4j.Logger;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import static net.minecraft.client.Minecraft.getMinecraft;
|
||||||
|
|
||||||
@Mod(modid = ReplayModOnline.MOD_ID, useMetadata = true)
|
@Mod(modid = ReplayModOnline.MOD_ID, useMetadata = true)
|
||||||
public class ReplayModOnline {
|
public class ReplayModOnline {
|
||||||
public static final String MOD_ID = "replaymod-online";
|
public static final String MOD_ID = "replaymod-online";
|
||||||
@@ -101,7 +103,8 @@ public class ReplayModOnline {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public File getDownloadsFolder() {
|
public File getDownloadsFolder() {
|
||||||
return new File(core.getSettingsRegistry().get(Setting.DOWNLOAD_PATH));
|
String path = core.getSettingsRegistry().get(Setting.DOWNLOAD_PATH);
|
||||||
|
return new File(path.startsWith("./") ? getMinecraft().mcDataDir : null, path);
|
||||||
}
|
}
|
||||||
|
|
||||||
public File getDownloadedFile(int id) {
|
public File getDownloadedFile(int id) {
|
||||||
|
|||||||
@@ -1,11 +1,17 @@
|
|||||||
package com.replaymod.render;
|
package com.replaymod.render;
|
||||||
|
|
||||||
import com.replaymod.core.ReplayMod;
|
import com.replaymod.core.ReplayMod;
|
||||||
|
import net.minecraft.crash.CrashReport;
|
||||||
|
import net.minecraft.util.ReportedException;
|
||||||
import net.minecraftforge.common.config.Configuration;
|
import net.minecraftforge.common.config.Configuration;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
||||||
|
import org.apache.commons.io.FileUtils;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
@Mod(modid = ReplayModRender.MOD_ID, useMetadata = true)
|
@Mod(modid = ReplayModRender.MOD_ID, useMetadata = true)
|
||||||
public class ReplayModRender {
|
public class ReplayModRender {
|
||||||
public static final String MOD_ID = "replaymod-render";
|
public static final String MOD_ID = "replaymod-render";
|
||||||
@@ -32,6 +38,17 @@ public class ReplayModRender {
|
|||||||
core.getSettingsRegistry().register(Setting.class);
|
core.getSettingsRegistry().register(Setting.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public File getVideoFolder() {
|
||||||
|
String path = core.getSettingsRegistry().get(Setting.RENDER_PATH);
|
||||||
|
File folder = new File(path.startsWith("./") ? core.getMinecraft().mcDataDir : null, path);
|
||||||
|
try {
|
||||||
|
FileUtils.forceMkdir(folder);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new ReportedException(CrashReport.makeCrashReport(e, "Cannot create video folder."));
|
||||||
|
}
|
||||||
|
return folder;
|
||||||
|
}
|
||||||
|
|
||||||
public Configuration getConfiguration() {
|
public Configuration getConfiguration() {
|
||||||
return configuration;
|
return configuration;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,8 @@ public class VideoWriter implements FrameConsumer<RGBFrame> {
|
|||||||
System.out.println("Starting " + settings.getExportCommand() + " with args: " + commandArgs);
|
System.out.println("Starting " + settings.getExportCommand() + " with args: " + commandArgs);
|
||||||
String[] cmdline = new CommandLine(executable).addArguments(commandArgs).toStrings();
|
String[] cmdline = new CommandLine(executable).addArguments(commandArgs).toStrings();
|
||||||
process = new ProcessBuilder(cmdline).directory(outputFolder).start();
|
process = new ProcessBuilder(cmdline).directory(outputFolder).start();
|
||||||
OutputStream exportLogOut = new TeeOutputStream(new FileOutputStream("export.log"), ffmpegLog);
|
File exportLogFile = new File(Minecraft.getMinecraft().mcDataDir, "export.log");
|
||||||
|
OutputStream exportLogOut = new TeeOutputStream(new FileOutputStream(exportLogFile), ffmpegLog);
|
||||||
new StreamPipe(process.getInputStream(), exportLogOut).start();
|
new StreamPipe(process.getInputStream(), exportLogOut).start();
|
||||||
new StreamPipe(process.getErrorStream(), exportLogOut).start();
|
new StreamPipe(process.getErrorStream(), exportLogOut).start();
|
||||||
outputStream = process.getOutputStream();
|
outputStream = process.getOutputStream();
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import com.google.gson.GsonBuilder;
|
|||||||
import com.google.gson.InstanceCreator;
|
import com.google.gson.InstanceCreator;
|
||||||
import com.replaymod.render.RenderSettings;
|
import com.replaymod.render.RenderSettings;
|
||||||
import com.replaymod.render.ReplayModRender;
|
import com.replaymod.render.ReplayModRender;
|
||||||
import com.replaymod.render.Setting;
|
|
||||||
import com.replaymod.render.rendering.VideoRenderer;
|
import com.replaymod.render.rendering.VideoRenderer;
|
||||||
import com.replaymod.replay.ReplayHandler;
|
import com.replaymod.replay.ReplayHandler;
|
||||||
import com.replaymod.replaystudio.pathing.path.Timeline;
|
import com.replaymod.replaystudio.pathing.path.Timeline;
|
||||||
@@ -410,7 +409,7 @@ public class GuiRenderSettings extends GuiScreen implements Closeable {
|
|||||||
|
|
||||||
private File generateOutputFile(RenderSettings.EncodingPreset encodingPreset) {
|
private File generateOutputFile(RenderSettings.EncodingPreset encodingPreset) {
|
||||||
String fileName = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss").format(new Date());
|
String fileName = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss").format(new Date());
|
||||||
File folder = new File(ReplayModRender.instance.getCore().getSettingsRegistry().get(Setting.RENDER_PATH));
|
File folder = ReplayModRender.instance.getVideoFolder();
|
||||||
return new File(folder, fileName + "." + encodingPreset.getFileExtension());
|
return new File(folder, fileName + "." + encodingPreset.getFileExtension());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user