Move cache folders into central (hidden) location (closes #343)

This commit is contained in:
Jonas Herzig
2020-11-05 16:59:08 +01:00
parent 3ce10d4855
commit 76bec31cd8
9 changed files with 86 additions and 37 deletions

View File

@@ -5,8 +5,7 @@ import com.replaymod.core.utils.Utils;
import com.replaymod.editor.ReplayModEditor;
import com.replaymod.replay.gui.overlay.GuiMarkerTimeline;
import com.replaymod.replaystudio.data.Marker;
import com.replaymod.replaystudio.replay.ZipReplayFile;
import com.replaymod.replaystudio.studio.ReplayStudio;
import com.replaymod.replaystudio.replay.ReplayFile;
import de.johni0702.minecraft.gui.GuiRenderer;
import de.johni0702.minecraft.gui.container.GuiContainer;
import de.johni0702.minecraft.gui.container.GuiPanel;
@@ -61,7 +60,7 @@ public class GuiEditReplay extends AbstractGuiPopup<GuiEditReplay> {
super(container);
this.inputPath = inputPath;
try (ZipReplayFile replayFile = new ZipReplayFile(new ReplayStudio(), inputPath.toFile())) {
try (ReplayFile replayFile = ReplayMod.instance.openReplay(inputPath)) {
markers = replayFile.getMarkers().or(HashSet::new);
timeline = new EditTimeline(new HashSet<>(markers), markers -> this.markers = markers);
timeline.setSize(300, 20)
@@ -148,7 +147,7 @@ public class GuiEditReplay extends AbstractGuiPopup<GuiEditReplay> {
ProgressPopup progressPopup = new ProgressPopup(this);
new Thread(() -> {
try (ZipReplayFile replayFile = new ZipReplayFile(new ReplayStudio(), inputPath.toFile())) {
try (ReplayFile replayFile = ReplayMod.instance.openReplay(inputPath)) {
replayFile.writeMarkers(markers);
replayFile.save();
} catch (IOException e) {

View File

@@ -3,7 +3,6 @@ package com.replaymod.editor.gui;
import com.replaymod.core.ReplayMod;
import com.replaymod.core.versions.MCVer;
import com.replaymod.replaystudio.PacketData;
import com.replaymod.replaystudio.Studio;
import com.replaymod.replaystudio.data.Marker;
import com.replaymod.replaystudio.filter.SquashFilter;
import com.replaymod.replaystudio.filter.StreamFilter;
@@ -12,14 +11,11 @@ import com.replaymod.replaystudio.io.ReplayOutputStream;
import com.replaymod.replaystudio.protocol.PacketTypeRegistry;
import com.replaymod.replaystudio.replay.ReplayFile;
import com.replaymod.replaystudio.replay.ReplayMetaData;
import com.replaymod.replaystudio.replay.ZipReplayFile;
import com.replaymod.replaystudio.stream.IteratorStream;
import com.replaymod.replaystudio.studio.ReplayStudio;
import com.replaymod.replaystudio.us.myles.ViaVersion.api.Pair;
import com.replaymod.replaystudio.util.Utils;
import org.apache.commons.io.FilenameUtils;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -52,7 +48,7 @@ public class MarkerProcessor {
public static final String MARKER_NAME_SPLIT = "_RM_SPLIT";
private static boolean hasWork(Path path) throws IOException {
try (ZipReplayFile inputReplayFile = new ZipReplayFile(new ReplayStudio(), path.toFile())) {
try (ReplayFile inputReplayFile = ReplayMod.instance.openReplay(path)) {
return inputReplayFile.getMarkers().or(HashSet::new).stream().anyMatch(m -> m.getName() != null && m.getName().startsWith("_RM_"));
}
}
@@ -109,9 +105,10 @@ public class MarkerProcessor {
}
public static List<Pair<Path, ReplayMetaData>> apply(Path path, Consumer<Float> progress) throws IOException {
ReplayMod mod = ReplayMod.instance;
if (!hasWork(path)) {
ReplayMetaData metaData;
try (ZipReplayFile inputReplayFile = new ZipReplayFile(new ReplayStudio(), path.toFile())) {
try (ReplayFile inputReplayFile = mod.openReplay(path)) {
metaData = inputReplayFile.getMetaData();
}
return Collections.singletonList(new Pair<>(path, metaData));
@@ -121,9 +118,7 @@ public class MarkerProcessor {
int splitCounter = 0;
PacketTypeRegistry registry = MCVer.getPacketTypeRegistry(true);
Studio studio = new ReplayStudio();
SquashFilter squashFilter = new SquashFilter();
squashFilter.init(studio, null);
List<Pair<Path, ReplayMetaData>> outputPaths = new ArrayList<>();
@@ -135,7 +130,7 @@ public class MarkerProcessor {
Files.createDirectories(inputPath.getParent());
Files.move(path, inputPath);
try (ZipReplayFile inputReplayFile = new ZipReplayFile(studio, inputPath.toFile())) {
try (ReplayFile inputReplayFile = mod.openReplay(inputPath)) {
List<Marker> markers = inputReplayFile.getMarkers().or(HashSet::new)
.stream().sorted(Comparator.comparing(Marker::getTime)).collect(Collectors.toList());
Iterator<Marker> markerIterator = markers.iterator();
@@ -152,8 +147,7 @@ public class MarkerProcessor {
while (nextPacket != null && outputFileSuffixes.hasNext()) {
Path outputPath = path.resolveSibling(replayName + outputFileSuffixes.next() + ".mcpr");
File outputFile = outputPath.toFile();
try (ZipReplayFile outputReplayFile = new ZipReplayFile(studio, null, outputFile)) {
try (ReplayFile outputReplayFile = mod.openReplay(null, outputPath)) {
long duration = 0;
Set<Marker> outputMarkers = new HashSet<>();
ReplayMetaData metaData = inputReplayFile.getMetaData();