Compare commits

...

5 commits

6 changed files with 85 additions and 43 deletions

View file

@ -151,16 +151,28 @@ public class EntityPlayerMP extends EntityPlayer implements ICrafting {
}
if (var1 && !this.loadedChunks.isEmpty()) {
ChunkCoordIntPair var7 = (ChunkCoordIntPair) this.loadedChunks.get(0);
if (var7 != null) {
boolean var8 = false;
if (this.playerNetServerHandler.getNumChunkDataPackets() < 4) {
var8 = true;
}
// Patch start
HashSet<ChunkCoordIntPair> queue = new HashSet<>();
for (int count = 0; !this.loadedChunks.isEmpty() && count < 9; count++) {
//ChunkCoordIntPair var7 = (ChunkCoordIntPair) this.loadedChunks.get(0);
ChunkCoordIntPair var7 = (ChunkCoordIntPair) this.loadedChunks.remove(0);
if (var7 != null) {
//boolean var8 = false;
//if (this.playerNetServerHandler.getNumChunkDataPackets() < 4) {
// var8 = true;
//}
if (var8) {
WorldServer var9 = this.mcServer.getWorldManager(this.dimension);
this.loadedChunks.remove(var7);
//if (var8) {
// WorldServer var9 = this.mcServer.getWorldManager(this.dimension);
// this.loadedChunks.remove(var7);
queue.add(var7);
}
}
if (!queue.isEmpty()) {
WorldServer var9 = this.mcServer.getWorldManager(this.dimension);
for (ChunkCoordIntPair var7 : queue) {
// Patch end
this.playerNetServerHandler.sendPacket(new Packet51MapChunk(var7.chunkXPos * 16, 0, var7.chunkZPos * 16, 16, 128, 16, var9));
List var5 = var9.getTileEntityList(var7.chunkXPos * 16, 0, var7.chunkZPos * 16, var7.chunkXPos * 16 + 16, 128, var7.chunkZPos * 16 + 16);

View file

@ -69,11 +69,13 @@ public class NetworkManager {
Object var2 = this.sendQueueLock;
synchronized (var2) {
this.sendQueueByteLength += var1.getPacketSize() + 1;
if (var1.isChunkDataPacket) {
this.chunkDataPackets.add(var1);
} else {
// Patch start
//if (var1.isChunkDataPacket) {
// this.chunkDataPackets.add(var1);
//} else {
this.dataPackets.add(var1);
}
//}
// Patch end
}
}

View file

@ -33,7 +33,10 @@ class NetworkReaderThread extends Thread {
}
try {
sleep(100L);
// Patch start
//sleep(100L);
sleep(20L);
// Patch end
} catch (InterruptedException var15) {
}
} finally {
@ -46,9 +49,11 @@ class NetworkReaderThread extends Thread {
}
}
var1 = NetworkManager.threadSyncObject;
synchronized (var1) {
--NetworkManager.numReadThreads;
}
// Patch start
//var1 = NetworkManager.threadSyncObject;
//synchronized (var1) {
// --NetworkManager.numReadThreads;
//}
// Patch end
}
}

View file

@ -30,7 +30,10 @@ class NetworkWriterThread extends Thread {
}
try {
sleep(100L);
// Patch start
//sleep(100L);
sleep(20L);
// Patch end
} catch (InterruptedException var16) {
}
@ -55,9 +58,11 @@ class NetworkWriterThread extends Thread {
}
}
var1 = NetworkManager.threadSyncObject;
synchronized (var1) {
--NetworkManager.numWriteThreads;
}
// Patch start
//var1 = NetworkManager.threadSyncObject;
//synchronized (var1) {
// --NetworkManager.numWriteThreads;
//}
// Patch end
}
}

View file

@ -81,16 +81,18 @@ public abstract class Packet {
return null;
}
PacketCounter var4 = (PacketCounter) packetStats.get(Integer.valueOf(var6));
if (var4 == null) {
var4 = new PacketCounter((Empty1) null);
packetStats.put(Integer.valueOf(var6), var4);
}
// Patch start
//PacketCounter var4 = (PacketCounter) packetStats.get(Integer.valueOf(var6));
//if (var4 == null) {
// var4 = new PacketCounter((Empty1) null);
// packetStats.put(Integer.valueOf(var6), var4);
//}
var4.addPacket(var3.getPacketSize());
++totalPacketsCount;
if (totalPacketsCount % 1000 == 0) {
}
//var4.addPacket(var3.getPacketSize());
//++totalPacketsCount;
//if (totalPacketsCount % 1000 == 0) {
//}
// Patch end
return var3;
}

View file

@ -3,11 +3,12 @@ package net.minecraft.network.packets;
import net.minecraft.network.NetHandler;
import net.minecraft.world.World;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.zip.DataFormatException;
import java.util.zip.Deflater;
import java.util.zip.DeflaterOutputStream;
import java.util.zip.Inflater;
public class Packet51MapChunk extends Packet {
@ -19,6 +20,9 @@ public class Packet51MapChunk extends Packet {
public int zSize;
public byte[] chunk;
private int chunkSize;
// Patch start
public byte[] uncompressedChunk;
// Patch end
public Packet51MapChunk() {
this.isChunkDataPacket = true;
@ -32,17 +36,20 @@ public class Packet51MapChunk extends Packet {
this.xSize = var4;
this.ySize = var5;
this.zSize = var6;
byte[] var8 = var7.getChunkData(var1, var2, var3, var4, var5, var6);
Deflater var9 = new Deflater(-1);
// Patch start
//byte[] var8 = var7.getChunkData(var1, var2, var3, var4, var5, var6);
//Deflater var9 = new Deflater(-1);
try {
var9.setInput(var8);
var9.finish();
this.chunk = new byte[var4 * var5 * var6 * 5 / 2];
this.chunkSize = var9.deflate(this.chunk);
} finally {
var9.end();
}
//try {
// var9.setInput(var8);
// var9.finish();
// this.chunk = new byte[var4 * var5 * var6 * 5 / 2];
// this.chunkSize = var9.deflate(this.chunk);
//} finally {
// var9.end();
//}
this.uncompressedChunk = var7.getChunkData(var1, var2, var3, var4, var5, var6);
// Patch end
}
@ -71,6 +78,15 @@ public class Packet51MapChunk extends Packet {
}
public void writePacketData(DataOutputStream var1) throws IOException {
// Patch start
ByteArrayOutputStream compressed = new ByteArrayOutputStream();
try (DeflaterOutputStream dos = new DeflaterOutputStream(compressed)) {
dos.write(this.uncompressedChunk);
} catch (IOException ignore) {
}
this.chunk = compressed.toByteArray();
this.chunkSize = this.chunk.length;
// Patch end
var1.writeInt(this.xPosition);
var1.writeShort(this.yPosition);
var1.writeInt(this.zPosition);