Compare commits
5 commits
626612688f
...
bbfc5b9e94
| Author | SHA1 | Date | |
|---|---|---|---|
| bbfc5b9e94 | |||
| 10abac72b5 | |||
| e85a63e9a0 | |||
| e726216267 | |||
| 681b594c69 |
6 changed files with 85 additions and 43 deletions
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue