"It Compiles" - Update Spigot to Minecraft 1.7.2 proper. See below for full release notes (MUST READ).
This is a lightly tested build. You are encouraged to keep backups at all times. Please attempt to report all issues to IRC. The following features are intentionally missing from this build and will be added as soon as humanly possible. - BungeeCord IP forwarding - Firing of AsyncLoginEvent in offline mode - A few custom kick / other hardcoded messages As always this build comes with no warranty. Thanks for your support. ~md_5
Dieser Commit ist enthalten in:
Ursprung
6ba479d591
Commit
fa4078a2d6
@ -1,4 +1,4 @@
|
||||
From 5df0962615a66779058f3ca87ea05ac17be54059 Mon Sep 17 00:00:00 2001
|
||||
From f820823194d6cde4ea5396e0caa36e160f5f2c3e Mon Sep 17 00:00:00 2001
|
||||
From: md_5 <md_5@live.com.au>
|
||||
Date: Sun, 1 Dec 2013 15:10:48 +1100
|
||||
Subject: [PATCH] mc-dev imports
|
||||
@ -443,6 +443,202 @@ index 0000000..fcb9912
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java b/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java
|
||||
new file mode 100644
|
||||
index 0000000..c7b799a
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java
|
||||
@@ -0,0 +1,190 @@
|
||||
+package net.minecraft.server;
|
||||
+
|
||||
+import java.io.IOException;
|
||||
+import java.util.zip.DataFormatException;
|
||||
+import java.util.zip.Deflater;
|
||||
+import java.util.zip.Inflater;
|
||||
+
|
||||
+public class PacketPlayOutMapChunk extends Packet {
|
||||
+
|
||||
+ private int a;
|
||||
+ private int b;
|
||||
+ private int c;
|
||||
+ private int d;
|
||||
+ private byte[] e;
|
||||
+ private byte[] buffer;
|
||||
+ private boolean inflatedBuffer;
|
||||
+ private int size;
|
||||
+ private static byte[] buildBuffer = new byte[196864];
|
||||
+
|
||||
+ public PacketPlayOutMapChunk() {}
|
||||
+
|
||||
+ public PacketPlayOutMapChunk(Chunk chunk, boolean flag, int i) {
|
||||
+ this.a = chunk.locX;
|
||||
+ this.b = chunk.locZ;
|
||||
+ this.inflatedBuffer = flag;
|
||||
+ ChunkMap chunkmap = a(chunk, flag, i);
|
||||
+ Deflater deflater = new Deflater(-1);
|
||||
+
|
||||
+ this.d = chunkmap.c;
|
||||
+ this.c = chunkmap.b;
|
||||
+
|
||||
+ try {
|
||||
+ this.buffer = chunkmap.a;
|
||||
+ deflater.setInput(chunkmap.a, 0, chunkmap.a.length);
|
||||
+ deflater.finish();
|
||||
+ this.e = new byte[chunkmap.a.length];
|
||||
+ this.size = deflater.deflate(this.e);
|
||||
+ } finally {
|
||||
+ deflater.end();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ public static int c() {
|
||||
+ return 196864;
|
||||
+ }
|
||||
+
|
||||
+ public void a(PacketDataSerializer packetdataserializer) throws IOException {
|
||||
+ this.a = packetdataserializer.readInt();
|
||||
+ this.b = packetdataserializer.readInt();
|
||||
+ this.inflatedBuffer = packetdataserializer.readBoolean();
|
||||
+ this.c = packetdataserializer.readShort();
|
||||
+ this.d = packetdataserializer.readShort();
|
||||
+ this.size = packetdataserializer.readInt();
|
||||
+ if (buildBuffer.length < this.size) {
|
||||
+ buildBuffer = new byte[this.size];
|
||||
+ }
|
||||
+
|
||||
+ packetdataserializer.readBytes(buildBuffer, 0, this.size);
|
||||
+ int i = 0;
|
||||
+
|
||||
+ int j;
|
||||
+
|
||||
+ for (j = 0; j < 16; ++j) {
|
||||
+ i += this.c >> j & 1;
|
||||
+ }
|
||||
+
|
||||
+ j = 12288 * i;
|
||||
+ if (this.inflatedBuffer) {
|
||||
+ j += 256;
|
||||
+ }
|
||||
+
|
||||
+ this.buffer = new byte[j];
|
||||
+ Inflater inflater = new Inflater();
|
||||
+
|
||||
+ inflater.setInput(buildBuffer, 0, this.size);
|
||||
+
|
||||
+ try {
|
||||
+ inflater.inflate(this.buffer);
|
||||
+ } catch (DataFormatException dataformatexception) {
|
||||
+ throw new IOException("Bad compressed data format");
|
||||
+ } finally {
|
||||
+ inflater.end();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ public void b(PacketDataSerializer packetdataserializer) {
|
||||
+ packetdataserializer.writeInt(this.a);
|
||||
+ packetdataserializer.writeInt(this.b);
|
||||
+ packetdataserializer.writeBoolean(this.inflatedBuffer);
|
||||
+ packetdataserializer.writeShort((short) (this.c & '\uffff'));
|
||||
+ packetdataserializer.writeShort((short) (this.d & '\uffff'));
|
||||
+ packetdataserializer.writeInt(this.size);
|
||||
+ packetdataserializer.writeBytes(this.e, 0, this.size);
|
||||
+ }
|
||||
+
|
||||
+ public void a(PacketPlayOutListener packetplayoutlistener) {
|
||||
+ packetplayoutlistener.a(this);
|
||||
+ }
|
||||
+
|
||||
+ public String b() {
|
||||
+ return String.format("x=%d, z=%d, full=%b, sects=%d, add=%d, size=%d", new Object[] { Integer.valueOf(this.a), Integer.valueOf(this.b), Boolean.valueOf(this.inflatedBuffer), Integer.valueOf(this.c), Integer.valueOf(this.d), Integer.valueOf(this.size)});
|
||||
+ }
|
||||
+
|
||||
+ public static ChunkMap a(Chunk chunk, boolean flag, int i) {
|
||||
+ int j = 0;
|
||||
+ ChunkSection[] achunksection = chunk.i();
|
||||
+ int k = 0;
|
||||
+ ChunkMap chunkmap = new ChunkMap();
|
||||
+ byte[] abyte = buildBuffer;
|
||||
+
|
||||
+ if (flag) {
|
||||
+ chunk.q = true;
|
||||
+ }
|
||||
+
|
||||
+ int l;
|
||||
+
|
||||
+ for (l = 0; l < achunksection.length; ++l) {
|
||||
+ if (achunksection[l] != null && (!flag || !achunksection[l].isEmpty()) && (i & 1 << l) != 0) {
|
||||
+ chunkmap.b |= 1 << l;
|
||||
+ if (achunksection[l].getExtendedIdArray() != null) {
|
||||
+ chunkmap.c |= 1 << l;
|
||||
+ ++k;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ for (l = 0; l < achunksection.length; ++l) {
|
||||
+ if (achunksection[l] != null && (!flag || !achunksection[l].isEmpty()) && (i & 1 << l) != 0) {
|
||||
+ byte[] abyte1 = achunksection[l].getIdArray();
|
||||
+
|
||||
+ System.arraycopy(abyte1, 0, abyte, j, abyte1.length);
|
||||
+ j += abyte1.length;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ NibbleArray nibblearray;
|
||||
+
|
||||
+ for (l = 0; l < achunksection.length; ++l) {
|
||||
+ if (achunksection[l] != null && (!flag || !achunksection[l].isEmpty()) && (i & 1 << l) != 0) {
|
||||
+ nibblearray = achunksection[l].getDataArray();
|
||||
+ System.arraycopy(nibblearray.a, 0, abyte, j, nibblearray.a.length);
|
||||
+ j += nibblearray.a.length;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ for (l = 0; l < achunksection.length; ++l) {
|
||||
+ if (achunksection[l] != null && (!flag || !achunksection[l].isEmpty()) && (i & 1 << l) != 0) {
|
||||
+ nibblearray = achunksection[l].getEmittedLightArray();
|
||||
+ System.arraycopy(nibblearray.a, 0, abyte, j, nibblearray.a.length);
|
||||
+ j += nibblearray.a.length;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (!chunk.world.worldProvider.g) {
|
||||
+ for (l = 0; l < achunksection.length; ++l) {
|
||||
+ if (achunksection[l] != null && (!flag || !achunksection[l].isEmpty()) && (i & 1 << l) != 0) {
|
||||
+ nibblearray = achunksection[l].getSkyLightArray();
|
||||
+ System.arraycopy(nibblearray.a, 0, abyte, j, nibblearray.a.length);
|
||||
+ j += nibblearray.a.length;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (k > 0) {
|
||||
+ for (l = 0; l < achunksection.length; ++l) {
|
||||
+ if (achunksection[l] != null && (!flag || !achunksection[l].isEmpty()) && achunksection[l].getExtendedIdArray() != null && (i & 1 << l) != 0) {
|
||||
+ nibblearray = achunksection[l].getExtendedIdArray();
|
||||
+ System.arraycopy(nibblearray.a, 0, abyte, j, nibblearray.a.length);
|
||||
+ j += nibblearray.a.length;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (flag) {
|
||||
+ byte[] abyte2 = chunk.m();
|
||||
+
|
||||
+ System.arraycopy(abyte2, 0, abyte, j, abyte2.length);
|
||||
+ j += abyte2.length;
|
||||
+ }
|
||||
+
|
||||
+ chunkmap.a = new byte[j];
|
||||
+ System.arraycopy(abyte, 0, chunkmap.a, 0, j);
|
||||
+ return chunkmap;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void handle(PacketListener packetlistener) {
|
||||
+ this.a((PacketPlayOutListener) packetlistener);
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/net/minecraft/server/RegionFileCache.java b/src/main/java/net/minecraft/server/RegionFileCache.java
|
||||
new file mode 100644
|
||||
index 0000000..900ed68
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 21428931e905c898c8272765539255bcb802c19e Mon Sep 17 00:00:00 2001
|
||||
From cb6a4e3598f76edb4743ae4041a135b7913793bc Mon Sep 17 00:00:00 2001
|
||||
From: Mike Primm <mike@primmhome.com>
|
||||
Date: Sun, 13 Jan 2013 03:49:07 -0800
|
||||
Subject: [PATCH] Compressed Nibble Arrays
|
||||
@ -270,6 +270,53 @@ index fcb9912..6ee28cc 100644
|
||||
nbttaglist.add(nbttagcompound1);
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java b/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java
|
||||
index c7b799a..856e825 100644
|
||||
--- a/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java
|
||||
+++ b/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java
|
||||
@@ -138,16 +138,16 @@ public class PacketPlayOutMapChunk extends Packet {
|
||||
for (l = 0; l < achunksection.length; ++l) {
|
||||
if (achunksection[l] != null && (!flag || !achunksection[l].isEmpty()) && (i & 1 << l) != 0) {
|
||||
nibblearray = achunksection[l].getDataArray();
|
||||
- System.arraycopy(nibblearray.a, 0, abyte, j, nibblearray.a.length);
|
||||
- j += nibblearray.a.length;
|
||||
+ nibblearray.copyToByteArray(abyte, j);
|
||||
+ j += nibblearray.getByteLength();
|
||||
}
|
||||
}
|
||||
|
||||
for (l = 0; l < achunksection.length; ++l) {
|
||||
if (achunksection[l] != null && (!flag || !achunksection[l].isEmpty()) && (i & 1 << l) != 0) {
|
||||
nibblearray = achunksection[l].getEmittedLightArray();
|
||||
- System.arraycopy(nibblearray.a, 0, abyte, j, nibblearray.a.length);
|
||||
- j += nibblearray.a.length;
|
||||
+ nibblearray.copyToByteArray(abyte, j);
|
||||
+ j += nibblearray.getByteLength();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -155,8 +155,8 @@ public class PacketPlayOutMapChunk extends Packet {
|
||||
for (l = 0; l < achunksection.length; ++l) {
|
||||
if (achunksection[l] != null && (!flag || !achunksection[l].isEmpty()) && (i & 1 << l) != 0) {
|
||||
nibblearray = achunksection[l].getSkyLightArray();
|
||||
- System.arraycopy(nibblearray.a, 0, abyte, j, nibblearray.a.length);
|
||||
- j += nibblearray.a.length;
|
||||
+ nibblearray.copyToByteArray(abyte, j);
|
||||
+ j += nibblearray.getByteLength();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -165,8 +165,8 @@ public class PacketPlayOutMapChunk extends Packet {
|
||||
for (l = 0; l < achunksection.length; ++l) {
|
||||
if (achunksection[l] != null && (!flag || !achunksection[l].isEmpty()) && achunksection[l].getExtendedIdArray() != null && (i & 1 << l) != 0) {
|
||||
nibblearray = achunksection[l].getExtendedIdArray();
|
||||
- System.arraycopy(nibblearray.a, 0, abyte, j, nibblearray.a.length);
|
||||
- j += nibblearray.a.length;
|
||||
+ nibblearray.copyToByteArray(abyte, j);
|
||||
+ j += nibblearray.getByteLength();
|
||||
}
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
|
||||
index b2c6ef4..55f5225 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
|
||||
|
@ -1,4 +1,4 @@
|
||||
From b6377ce207cad41a8ff913d19889573b70a245ff Mon Sep 17 00:00:00 2001
|
||||
From f6ae5fd819d9eec7c5fac9f58d43065bf344d962 Mon Sep 17 00:00:00 2001
|
||||
From: md_5 <md_5@live.com.au>
|
||||
Date: Thu, 16 May 2013 18:51:05 +1000
|
||||
Subject: [PATCH] Orebfuscator
|
||||
@ -36,6 +36,18 @@ index 39e5b5b..d2587c1 100644
|
||||
if (flag) {
|
||||
double d0 = (double) ((float) i + this.world.random.nextFloat());
|
||||
double d1 = (double) ((float) j + this.world.random.nextFloat());
|
||||
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java b/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java
|
||||
index 856e825..7169ec8 100644
|
||||
--- a/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java
|
||||
+++ b/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java
|
||||
@@ -28,6 +28,7 @@ public class PacketPlayOutMapChunk extends Packet {
|
||||
|
||||
this.d = chunkmap.c;
|
||||
this.c = chunkmap.b;
|
||||
+ chunk.world.spigotConfig.antiXrayInstance.obfuscateSync(chunk.locX, chunk.locZ, i, chunkmap.a, chunk.world); // Spigot
|
||||
|
||||
try {
|
||||
this.buffer = chunkmap.a;
|
||||
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutMapChunkBulk.java b/src/main/java/net/minecraft/server/PacketPlayOutMapChunkBulk.java
|
||||
index 3eac231..c3cfdc7 100644
|
||||
--- a/src/main/java/net/minecraft/server/PacketPlayOutMapChunkBulk.java
|
||||
|
@ -1,10 +1,23 @@
|
||||
From 466df5e17f27655c88c8047ac2ffa10f2b3a1998 Mon Sep 17 00:00:00 2001
|
||||
From 5ba3d91a29c49fa5b5d8a98930126132d480fb3c Mon Sep 17 00:00:00 2001
|
||||
From: md_5 <md_5@live.com.au>
|
||||
Date: Tue, 2 Jul 2013 09:07:54 +1000
|
||||
Subject: [PATCH] Lower Chunk Compression
|
||||
|
||||
Use a chunk compression level of 4 - this provides an optimal balance between speed and compression.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java b/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java
|
||||
index 7169ec8..3006712 100644
|
||||
--- a/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java
|
||||
+++ b/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java
|
||||
@@ -24,7 +24,7 @@ public class PacketPlayOutMapChunk extends Packet {
|
||||
this.b = chunk.locZ;
|
||||
this.inflatedBuffer = flag;
|
||||
ChunkMap chunkmap = a(chunk, flag, i);
|
||||
- Deflater deflater = new Deflater(-1);
|
||||
+ Deflater deflater = new Deflater(4); // Spigot
|
||||
|
||||
this.d = chunkmap.c;
|
||||
this.c = chunkmap.b;
|
||||
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutMapChunkBulk.java b/src/main/java/net/minecraft/server/PacketPlayOutMapChunkBulk.java
|
||||
index c3cfdc7..8e1c4cb 100644
|
||||
--- a/src/main/java/net/minecraft/server/PacketPlayOutMapChunkBulk.java
|
||||
|
@ -1,11 +1,11 @@
|
||||
From d91a8eb52fb822cea177f0ad19670574f2858c64 Mon Sep 17 00:00:00 2001
|
||||
From ebf483597d7c2d7071a1fe7c2012fc3f9c946f09 Mon Sep 17 00:00:00 2001
|
||||
From: md_5 <md_5@live.com.au>
|
||||
Date: Sat, 3 Aug 2013 19:27:07 +1000
|
||||
Subject: [PATCH] Player Collision API
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
|
||||
index 7442943..14f5510 100644
|
||||
index 7442943..f034d30 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityHuman.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
|
||||
@@ -430,7 +430,7 @@ public abstract class EntityHuman extends EntityLiving implements ICommandListen
|
||||
@ -13,12 +13,12 @@ index 7442943..14f5510 100644
|
||||
List list = this.world.getEntities(this, axisalignedbb);
|
||||
|
||||
- if (list != null) {
|
||||
+ if (list != null && this.L()) { // Spigot: Add this.L() condition
|
||||
+ if (list != null && this.R()) { // Spigot: Add this.R() condition
|
||||
for (int i = 0; i < list.size(); ++i) {
|
||||
Entity entity = (Entity) list.get(i);
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
index a61001d..35d30f1 100644
|
||||
index a61001d..24a59eb 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
@@ -1478,7 +1478,7 @@ public abstract class EntityLiving extends Entity {
|
||||
@ -26,12 +26,12 @@ index a61001d..35d30f1 100644
|
||||
List list = this.world.getEntities(this, this.boundingBox.grow(0.20000000298023224D, 0.0D, 0.20000000298023224D));
|
||||
|
||||
- if (list != null && !list.isEmpty()) {
|
||||
+ if (this.L() && list != null && !list.isEmpty()) { // Spigot: Add this.L() condition
|
||||
+ if (this.R() && list != null && !list.isEmpty()) { // Spigot: Add this.R() condition
|
||||
for (int i = 0; i < list.size(); ++i) {
|
||||
Entity entity = (Entity) list.get(i);
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
index af08d2f..12e90cc 100644
|
||||
index af08d2f..d910e8a 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
@@ -64,6 +64,21 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@ -42,16 +42,16 @@ index af08d2f..12e90cc 100644
|
||||
+ public boolean collidesWithEntities = true;
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean R()
|
||||
+ {
|
||||
+ return this.collidesWithEntities && super.R();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean S()
|
||||
+ {
|
||||
+ return this.collidesWithEntities && super.S();
|
||||
+ }
|
||||
+
|
||||
+ /*@Override
|
||||
+ public boolean M()
|
||||
+ {
|
||||
+ return this.collidesWithEntities && super.M();
|
||||
+ }*/ // SPIGOT TODO
|
||||
+ // Spigot end
|
||||
|
||||
public EntityPlayer(MinecraftServer minecraftserver, WorldServer worldserver, GameProfile gameprofile, PlayerInteractManager playerinteractmanager) {
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren