ReplayMod: Prevent file backup while saving replay (#1562)

This commit is contained in:
ReinforceZwei 2021-05-01 20:38:41 +08:00 committed by GitHub
parent ad14edad2e
commit 750684e010
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -31,6 +31,7 @@ namespace MinecraftClient.Protocol
private BinaryWriter recordStream;
private DateTime recordStartTime;
private DateTime lastPacketTime;
private bool prepareCleanUp = false;
private bool cleanedUp = false;
private static bool logOutput = true;
@ -111,8 +112,7 @@ namespace MinecraftClient.Protocol
{
if (!cleanedUp)
{
MetaData.duration = Convert.ToInt32((lastPacketTime - recordStartTime).TotalMilliseconds);
MetaData.SaveToFile();
prepareCleanUp = true;
CloseRecordStream();
CreateReplayFile();
cleanedUp = true;
@ -136,6 +136,9 @@ namespace MinecraftClient.Protocol
{
WriteLog("Creating replay file.");
MetaData.duration = Convert.ToInt32((lastPacketTime - recordStartTime).TotalMilliseconds);
MetaData.SaveToFile();
using (Stream recordingFile = new FileStream(Path.Combine(temporaryCache, recordingTmpFileName), FileMode.Open))
{
using (Stream metaDataFile = new FileStream(Path.Combine(temporaryCache, MetaData.MetaDataFileName), FileMode.Open))
@ -163,7 +166,7 @@ namespace MinecraftClient.Protocol
/// <param name="replayFileName"></param>
public void CreateBackupReplay(string replayFileName)
{
if (cleanedUp)
if (cleanedUp || prepareCleanUp)
return;
WriteDebugLog("Creating backup replay file.");