Archiviert
13
0
Dieses Repository wurde am 2024-12-25 archiviert. Du kannst Dateien ansehen und es klonen, aber nicht pushen oder Issues/Pull-Requests öffnen.
Paper-Old/src/main/java/net/minecraft/server/Packet51MapChunk.java
Erik Broes 61ec751ca1 Update for 1.1_01 renames.
We know these updates (can) break plugins bypassing Bukkit. They are needed for
smooth updates however. There will be another one right before before 1.1-R1.
2012-01-15 10:52:37 +01:00

100 Zeilen
3.0 KiB
Java

package net.minecraft.server;
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.Inflater;
public class Packet51MapChunk extends Packet {
public int a;
public int b;
public int c;
public int d;
public int e;
public int f;
public byte[] buffer;
public int size; // CraftBukkit - private -> public
public byte[] rawData; // CraftBukkit
public Packet51MapChunk() {
this.lowPriority = true;
}
// CraftBukkit start
public Packet51MapChunk(int i, int j, int k, int l, int i1, int j1, World world) {
this(i, j, k, l, i1, j1, world.getMultiChunkData(i, j, k, l, i1, j1));
}
public Packet51MapChunk(int i, int j, int k, int l, int i1, int j1, byte[] data) {
// CraftBukkit end
this.lowPriority = true;
this.a = i;
this.b = j;
this.c = k;
this.d = l;
this.e = i1;
this.f = j1;
/* CraftBukkit start - Moved compression into its own method.
byte[] abyte = data; // CraftBukkit - uses data from above constructor
Deflater deflater = new Deflater(-1);
try {
deflater.setInput(abyte);
deflater.finish();
this.buffer = new byte[l * i1 * j1 * 5 / 2];
this.size = deflater.deflate(this.buffer);
} finally {
deflater.end();
} */
this.rawData = data;
// CraftBukkit end
}
public void a(DataInputStream datainputstream) throws IOException { // CraftBukkit - throws IOEXception
this.a = datainputstream.readInt();
this.b = datainputstream.readShort();
this.c = datainputstream.readInt();
this.d = datainputstream.read() + 1;
this.e = datainputstream.read() + 1;
this.f = datainputstream.read() + 1;
this.size = datainputstream.readInt();
byte[] abyte = new byte[this.size];
datainputstream.readFully(abyte);
this.buffer = new byte[this.d * this.e * this.f * 5 / 2];
Inflater inflater = new Inflater();
inflater.setInput(abyte);
try {
inflater.inflate(this.buffer);
} catch (DataFormatException dataformatexception) {
throw new IOException("Bad compressed data format");
} finally {
inflater.end();
}
}
public void a(DataOutputStream dataoutputstream) throws IOException { // CraftBukkit - throws IOException
dataoutputstream.writeInt(this.a);
dataoutputstream.writeShort(this.b);
dataoutputstream.writeInt(this.c);
dataoutputstream.write(this.d - 1);
dataoutputstream.write(this.e - 1);
dataoutputstream.write(this.f - 1);
dataoutputstream.writeInt(this.size);
dataoutputstream.write(this.buffer, 0, this.size);
}
public void handle(NetHandler nethandler) {
nethandler.a(this);
}
public int a() {
return 17 + this.size;
}
}