57 lines
1.3 KiB
Java
57 lines
1.3 KiB
Java
package com.mojang.realmsclient.client;
|
|
|
|
import net.fabricmc.api.EnvType;
|
|
import net.fabricmc.api.Environment;
|
|
import net.minecraft.Util;
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
public class UploadStatus {
|
|
private volatile long bytesWritten;
|
|
private volatile long totalBytes;
|
|
private long previousTimeSnapshot = Util.getMillis();
|
|
private long previousBytesWritten;
|
|
private long bytesPerSecond;
|
|
|
|
public void setTotalBytes(long totalBytes) {
|
|
this.totalBytes = totalBytes;
|
|
}
|
|
|
|
public long getTotalBytes() {
|
|
return this.totalBytes;
|
|
}
|
|
|
|
public long getBytesWritten() {
|
|
return this.bytesWritten;
|
|
}
|
|
|
|
public void onWrite(long bytes) {
|
|
this.bytesWritten += bytes;
|
|
}
|
|
|
|
public boolean uploadStarted() {
|
|
return this.bytesWritten != 0L;
|
|
}
|
|
|
|
public boolean uploadCompleted() {
|
|
return this.bytesWritten == this.getTotalBytes();
|
|
}
|
|
|
|
public double getPercentage() {
|
|
return Math.min((double)this.getBytesWritten() / this.getTotalBytes(), 1.0);
|
|
}
|
|
|
|
public void refreshBytesPerSecond() {
|
|
long l = Util.getMillis();
|
|
long m = l - this.previousTimeSnapshot;
|
|
if (m >= 1000L) {
|
|
long n = this.bytesWritten;
|
|
this.bytesPerSecond = 1000L * (n - this.previousBytesWritten) / m;
|
|
this.previousBytesWritten = n;
|
|
this.previousTimeSnapshot = l;
|
|
}
|
|
}
|
|
|
|
public long getBytesPerSecond() {
|
|
return this.bytesPerSecond;
|
|
}
|
|
}
|