Fixed serverside crash due to Screen
This commit is contained in:
parent
3321d1c90e
commit
2344ef9606
3 changed files with 36 additions and 24 deletions
|
@ -1,13 +1,10 @@
|
|||
package ru.bclib.api.dataexchange.handler.autosync;
|
||||
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.fabricmc.fabric.api.networking.v1.PacketByteBufs;
|
||||
import net.fabricmc.fabric.api.networking.v1.PacketSender;
|
||||
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.util.ProgressListener;
|
||||
import ru.bclib.gui.screens.ProgressScreen;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
|
@ -34,22 +31,6 @@ import java.util.UUID;
|
|||
* and assemble the original message from those chunks on the client.
|
||||
*/
|
||||
public class Chunker extends DataHandler.FromServer {
|
||||
private static ProgressScreen progressScreen;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public static void setProgressScreen(ProgressScreen scr){
|
||||
progressScreen = scr;
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public static ProgressScreen getProgressScreen(){
|
||||
return progressScreen;
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public static ProgressListener getProgressListener(){
|
||||
return progressScreen;
|
||||
}
|
||||
|
||||
/**
|
||||
* Responsible for assembling the original ByteBuffer created by {@link PacketChunkSender} on the
|
||||
|
@ -101,7 +82,7 @@ public class Chunker extends DataHandler.FromServer {
|
|||
}
|
||||
|
||||
public boolean testFinished(){
|
||||
ProgressListener listener = getProgressListener();
|
||||
ProgressListener listener = ChunkerProgress.getProgressListener();
|
||||
if (listener!=null){
|
||||
listener.progressStagePercentage((100*receivedCount)/chunkCount);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
package ru.bclib.api.dataexchange.handler.autosync;
|
||||
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.minecraft.util.ProgressListener;
|
||||
import ru.bclib.gui.screens.ProgressScreen;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public class ChunkerProgress {
|
||||
private static ProgressScreen progressScreen;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public static void setProgressScreen(ProgressScreen scr){
|
||||
progressScreen = scr;
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public static ProgressScreen getProgressScreen(){
|
||||
return progressScreen;
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public static ProgressListener getProgressListener(){
|
||||
return progressScreen;
|
||||
}
|
||||
}
|
|
@ -403,10 +403,14 @@ public class HelloClient extends DataHandler.FromServer {
|
|||
});
|
||||
}
|
||||
|
||||
Minecraft.getInstance()
|
||||
.setScreen(Chunker.getProgressScreen());
|
||||
this.onCloseSyncFilesScreen();
|
||||
}));
|
||||
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
private void onCloseSyncFilesScreen(){
|
||||
Minecraft.getInstance()
|
||||
.setScreen(ChunkerProgress.getProgressScreen());
|
||||
}
|
||||
|
||||
private void processOfferedFile(List<AutoSyncID> requestFiles, AutoSyncID aid) {
|
||||
|
@ -427,12 +431,13 @@ public class HelloClient extends DataHandler.FromServer {
|
|||
whenFinished.accept(true);
|
||||
}
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
private void requestFileDownloads(List<AutoSyncID> files) {
|
||||
BCLib.LOGGER.info("Starting download of Files:" + files.size());
|
||||
|
||||
final ProgressScreen progress = new ProgressScreen(null, new TranslatableComponent("title.bclib.filesync.progress"), new TranslatableComponent("message.bclib.filesync.progress"));
|
||||
progress.progressStart(new TranslatableComponent("message.bclib.filesync.progress.stage.empty"));
|
||||
Chunker.setProgressScreen(progress);
|
||||
ChunkerProgress.setProgressScreen(progress);
|
||||
|
||||
DataExchangeAPI.send(new RequestFiles(files));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue