mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-01-05 15:00:29 +00:00
Merge branch 'mc-1.16.x' into mc-1.17.x
This commit is contained in:
commit
05da4dd362
@ -173,7 +173,6 @@ public abstract class ComputerScreenBase<T extends ContainerComputerBase> extend
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer.rewind();
|
|
||||||
toUpload.add( new FileUpload( name, buffer, digest ) );
|
toUpload.add( new FileUpload( name, buffer, digest ) );
|
||||||
}
|
}
|
||||||
catch( IOException e )
|
catch( IOException e )
|
||||||
|
@ -56,7 +56,7 @@ public interface IContainerComputer
|
|||||||
void continueUpload( @Nonnull UUID uploadId, @Nonnull List<FileSlice> slices );
|
void continueUpload( @Nonnull UUID uploadId, @Nonnull List<FileSlice> slices );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Finish off an upload. This either writes the uploaded files or
|
* Finish off an upload. This either writes the uploaded files or informs the user that files will be overwritten.
|
||||||
*
|
*
|
||||||
* @param uploader The player uploading files.
|
* @param uploader The player uploading files.
|
||||||
* @param uploadId The unique ID of this upload.
|
* @param uploadId The unique ID of this upload.
|
||||||
|
@ -53,10 +53,9 @@ public class FileSlice
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
bytes.rewind();
|
ByteBuffer other = file.duplicate();
|
||||||
file.position( offset );
|
other.position( offset ); // TODO: In 1.17 we can use a separate put(idx, _) method.
|
||||||
file.put( bytes );
|
other.put( bytes );
|
||||||
file.rewind();
|
|
||||||
|
|
||||||
if( bytes.remaining() != 0 ) throw new IllegalStateException( "Should have read the whole buffer" );
|
if( bytes.remaining() != 0 ) throw new IllegalStateException( "Should have read the whole buffer" );
|
||||||
}
|
}
|
||||||
|
@ -56,7 +56,7 @@ public class FileUpload
|
|||||||
|
|
||||||
public boolean checksumMatches()
|
public boolean checksumMatches()
|
||||||
{
|
{
|
||||||
// This is meant to be a checksum. Doesn't need to be cryptographically secure, hence non constant time.
|
// This is meant to be a checksum. Doesn't need to be cryptographically secure, hence non-constant time.
|
||||||
byte[] digest = getDigest( bytes );
|
byte[] digest = getDigest( bytes );
|
||||||
return digest != null && Arrays.equals( checksum, digest );
|
return digest != null && Arrays.equals( checksum, digest );
|
||||||
}
|
}
|
||||||
@ -66,9 +66,8 @@ public class FileUpload
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
bytes.rewind();
|
|
||||||
MessageDigest digest = MessageDigest.getInstance( "SHA-256" );
|
MessageDigest digest = MessageDigest.getInstance( "SHA-256" );
|
||||||
digest.update( bytes );
|
digest.update( bytes.duplicate() );
|
||||||
return digest.digest();
|
return digest.digest();
|
||||||
}
|
}
|
||||||
catch( NoSuchAlgorithmException e )
|
catch( NoSuchAlgorithmException e )
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
*/
|
*/
|
||||||
package dan200.computercraft.shared.network.server;
|
package dan200.computercraft.shared.network.server;
|
||||||
|
|
||||||
import dan200.computercraft.ComputerCraft;
|
|
||||||
import dan200.computercraft.shared.computer.core.IContainerComputer;
|
import dan200.computercraft.shared.computer.core.IContainerComputer;
|
||||||
import dan200.computercraft.shared.computer.core.ServerComputer;
|
import dan200.computercraft.shared.computer.core.ServerComputer;
|
||||||
import dan200.computercraft.shared.computer.upload.FileSlice;
|
import dan200.computercraft.shared.computer.upload.FileSlice;
|
||||||
@ -122,9 +121,9 @@ public class UploadFileMessage extends ComputerServerMessage
|
|||||||
buf.writeByte( slice.getFileId() );
|
buf.writeByte( slice.getFileId() );
|
||||||
buf.writeVarInt( slice.getOffset() );
|
buf.writeVarInt( slice.getOffset() );
|
||||||
|
|
||||||
slice.getBytes().rewind();
|
ByteBuffer bytes = slice.getBytes().duplicate();
|
||||||
buf.writeShort( slice.getBytes().remaining() );
|
buf.writeShort( bytes.remaining() );
|
||||||
buf.writeBytes( slice.getBytes() );
|
buf.writeBytes( bytes );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,7 +157,6 @@ public class UploadFileMessage extends ComputerServerMessage
|
|||||||
|
|
||||||
int canWrite = Math.min( remaining, capacity - currentOffset );
|
int canWrite = Math.min( remaining, capacity - currentOffset );
|
||||||
|
|
||||||
ComputerCraft.log.info( "Adding slice from {} to {}", currentOffset, currentOffset + canWrite - 1 );
|
|
||||||
contents.position( currentOffset ).limit( currentOffset + canWrite );
|
contents.position( currentOffset ).limit( currentOffset + canWrite );
|
||||||
slices.add( new FileSlice( fileId, currentOffset, contents.slice() ) );
|
slices.add( new FileSlice( fileId, currentOffset, contents.slice() ) );
|
||||||
currentOffset += canWrite;
|
currentOffset += canWrite;
|
||||||
|
Loading…
Reference in New Issue
Block a user