diff --git a/CraftBukkit-Patches/0013-Skip-entity.move-if-we-are-not-moving-anywhere.patch b/CraftBukkit-Patches/0013-Skip-entity.move-if-we-are-not-moving-anywhere.patch index cc802d2a4e..0688d5e32e 100644 --- a/CraftBukkit-Patches/0013-Skip-entity.move-if-we-are-not-moving-anywhere.patch +++ b/CraftBukkit-Patches/0013-Skip-entity.move-if-we-are-not-moving-anywhere.patch @@ -1,14 +1,14 @@ -From ed8f394566a78a2660472fa790bb50f1c780a281 Mon Sep 17 00:00:00 2001 +From 9fcce5b028144d7682bd590fa97feaf303bd3272 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 19 Jan 2013 01:11:30 -0500 Subject: [PATCH] Skip entity.move() if we are not moving anywhere. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 7890d6f..8e743ec 100644 +index 51a5b38..1044e4d 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -430,6 +430,7 @@ public abstract class Entity { +@@ -417,6 +417,7 @@ public abstract class Entity { } public void move(double d0, double d1, double d2) { diff --git a/CraftBukkit-Patches/0016-Improved-Timings-System.patch b/CraftBukkit-Patches/0016-Improved-Timings-System.patch index 086c2f5d09..8a6253d71a 100644 --- a/CraftBukkit-Patches/0016-Improved-Timings-System.patch +++ b/CraftBukkit-Patches/0016-Improved-Timings-System.patch @@ -1,4 +1,4 @@ -From eac5b5044c9871541b4503fa158232f5c4a020e5 Mon Sep 17 00:00:00 2001 +From 867a1f6e0321859d2573cdfa83b46376396981b9 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 10 Jan 2013 00:18:11 -0500 Subject: [PATCH] Improved Timings System @@ -26,7 +26,7 @@ index 8b280ab..31e3fce 100644 // CraftBukkit start - If we didn't need to load the chunk run the callback now diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 8e743ec..8feb1d3 100644 +index 1044e4d..171e7e0 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -14,6 +14,7 @@ import org.bukkit.block.BlockFace; @@ -37,7 +37,7 @@ index 8e743ec..8feb1d3 100644 import org.bukkit.event.entity.EntityCombustByEntityEvent; import org.bukkit.event.painting.PaintingBreakByEntityEvent; import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; -@@ -111,6 +112,8 @@ public abstract class Entity { +@@ -110,6 +111,8 @@ public abstract class Entity { public EnumEntitySize at; public boolean valid = false; // CraftBukkit @@ -46,7 +46,7 @@ index 8e743ec..8feb1d3 100644 public Entity(World world) { this.id = entityCount++; this.l = 1.0D; -@@ -431,6 +434,7 @@ public abstract class Entity { +@@ -418,6 +421,7 @@ public abstract class Entity { public void move(double d0, double d1, double d2) { if (d0 == 0 && d1 == 0 && d2 == 0) { return; } // Spigot @@ -54,7 +54,7 @@ index 8e743ec..8feb1d3 100644 if (this.Z) { this.boundingBox.d(d0, d1, d2); this.locX = (this.boundingBox.a + this.boundingBox.d) / 2.0D; -@@ -730,6 +734,7 @@ public abstract class Entity { +@@ -717,6 +721,7 @@ public abstract class Entity { this.world.methodProfiler.b(); } @@ -63,10 +63,10 @@ index 8e743ec..8feb1d3 100644 protected void C() { diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 9210d96..14854ac 100644 +index 21819ee..787db39 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -513,6 +513,7 @@ public abstract class EntityLiving extends Entity { +@@ -497,6 +497,7 @@ public abstract class EntityLiving extends Entity { } public void l_() { @@ -74,7 +74,7 @@ index 9210d96..14854ac 100644 super.l_(); if (!this.world.isStatic) { int i; -@@ -539,7 +540,9 @@ public abstract class EntityLiving extends Entity { +@@ -523,7 +524,9 @@ public abstract class EntityLiving extends Entity { } } @@ -84,7 +84,7 @@ index 9210d96..14854ac 100644 double d0 = this.locX - this.lastX; double d1 = this.locZ - this.lastZ; float f = (float) (d0 * d0 + d1 * d1); -@@ -630,6 +633,7 @@ public abstract class EntityLiving extends Entity { +@@ -614,6 +617,7 @@ public abstract class EntityLiving extends Entity { this.world.methodProfiler.b(); this.aE += f2; @@ -92,7 +92,7 @@ index 9210d96..14854ac 100644 } // CraftBukkit start - Delegate so we can handle providing a reason for health being regained -@@ -1267,6 +1271,7 @@ public abstract class EntityLiving extends Entity { +@@ -1252,6 +1256,7 @@ public abstract class EntityLiving extends Entity { } public void c() { @@ -100,7 +100,7 @@ index 9210d96..14854ac 100644 if (this.bX > 0) { --this.bX; } -@@ -1318,6 +1323,7 @@ public abstract class EntityLiving extends Entity { +@@ -1303,6 +1308,7 @@ public abstract class EntityLiving extends Entity { this.aA = this.yaw; } } @@ -108,7 +108,7 @@ index 9210d96..14854ac 100644 this.world.methodProfiler.b(); this.world.methodProfiler.a("jump"); -@@ -1336,6 +1342,7 @@ public abstract class EntityLiving extends Entity { +@@ -1321,6 +1327,7 @@ public abstract class EntityLiving extends Entity { this.world.methodProfiler.b(); this.world.methodProfiler.a("travel"); @@ -116,7 +116,7 @@ index 9210d96..14854ac 100644 this.bD *= 0.98F; this.bE *= 0.98F; this.bF *= 0.9F; -@@ -1344,11 +1351,14 @@ public abstract class EntityLiving extends Entity { +@@ -1329,11 +1336,14 @@ public abstract class EntityLiving extends Entity { this.aO *= this.bE(); this.e(this.bD, this.bE); this.aO = f; diff --git a/CraftBukkit-Patches/0018-Reduce-number-of-LivingEntity-collision-checks.patch b/CraftBukkit-Patches/0018-Reduce-number-of-LivingEntity-collision-checks.patch index 3f612d1ad1..87fff05866 100644 --- a/CraftBukkit-Patches/0018-Reduce-number-of-LivingEntity-collision-checks.patch +++ b/CraftBukkit-Patches/0018-Reduce-number-of-LivingEntity-collision-checks.patch @@ -1,14 +1,14 @@ -From d55bf0e93b31f79467195af477860b32dba05a1e Mon Sep 17 00:00:00 2001 +From 588b88aa24e2ef3f6754056631600c5cf0b1c4dc Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 18 Jan 2013 19:31:14 -0500 Subject: [PATCH] Reduce number of LivingEntity collision checks. diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 14854ac..322e37f 100644 +index 787db39..bdbd72a 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -1430,12 +1430,20 @@ public abstract class EntityLiving extends Entity { +@@ -1415,12 +1415,20 @@ public abstract class EntityLiving extends Entity { } protected void bg() { diff --git a/CraftBukkit-Patches/0021-Entity-Activation-Range.patch b/CraftBukkit-Patches/0021-Entity-Activation-Range.patch index 4ce12e73de..1469c6c58f 100644 --- a/CraftBukkit-Patches/0021-Entity-Activation-Range.patch +++ b/CraftBukkit-Patches/0021-Entity-Activation-Range.patch @@ -1,4 +1,4 @@ -From a5e2821e1124465ae5b999e89ba22a19150f762b Mon Sep 17 00:00:00 2001 +From 6b9fe9fa4f37f41758621439d6fc94589816420f Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 3 Feb 2013 05:10:21 -0500 Subject: [PATCH] Entity Activation Range @@ -9,10 +9,10 @@ This will drastically cut down on tick timings for entities that are not in rang This change can have dramatic impact on gameplay if configured too low. Balance according to your servers desired gameplay. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 8feb1d3..482fecb 100644 +index 171e7e0..4ea11ef 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -89,7 +89,7 @@ public abstract class Entity { +@@ -88,7 +88,7 @@ public abstract class Entity { public int ticksLived; public int maxFireTicks; public int fireTicks; // CraftBukkit - private -> public @@ -21,7 +21,7 @@ index 8feb1d3..482fecb 100644 public int noDamageTicks; private boolean justCreated; protected boolean fireProof; -@@ -112,8 +112,14 @@ public abstract class Entity { +@@ -111,8 +111,14 @@ public abstract class Entity { public EnumEntitySize at; public boolean valid = false; // CraftBukkit @@ -36,7 +36,7 @@ index 8feb1d3..482fecb 100644 public Entity(World world) { this.id = entityCount++; this.l = 1.0D; -@@ -154,7 +160,12 @@ public abstract class Entity { +@@ -153,7 +159,12 @@ public abstract class Entity { this.setPosition(0.0D, 0.0D, 0.0D); if (world != null) { this.dimension = world.worldProvider.dimension; diff --git a/CraftBukkit-Patches/0026-Netty.patch b/CraftBukkit-Patches/0026-Netty.patch index d5ef21c983..b495635c3f 100644 --- a/CraftBukkit-Patches/0026-Netty.patch +++ b/CraftBukkit-Patches/0026-Netty.patch @@ -1,4 +1,4 @@ -From 4c6632fc189e01d8cf3ab5d519c78ae31c08c398 Mon Sep 17 00:00:00 2001 +From 5a8a674d460ed4ff7502a58cef09557f78532eb6 Mon Sep 17 00:00:00 2001 From: md_5 Date: Thu, 14 Feb 2013 17:32:20 +1100 Subject: [PATCH] Netty @@ -32,7 +32,7 @@ Subject: [PATCH] Netty Commons Attribution-ShareAlike 3.0 Unported license. diff --git a/pom.xml b/pom.xml -index fce45f8..55e6dc0 100644 +index fce45f8..95514d8 100644 --- a/pom.xml +++ b/pom.xml @@ -132,6 +132,11 @@ @@ -42,7 +42,7 @@ index fce45f8..55e6dc0 100644 + + io.netty + netty-all -+ 4.0.0.Beta3 ++ 4.0.0.CR1 + @@ -229,10 +229,10 @@ index 84dcfcc..a30f217 100644 private static final int RECENT_TICKS; diff --git a/src/main/java/org/spigotmc/netty/CipherCodec.java b/src/main/java/org/spigotmc/netty/CipherCodec.java new file mode 100644 -index 0000000..54928b4 +index 0000000..5e3a5f9 --- /dev/null +++ b/src/main/java/org/spigotmc/netty/CipherCodec.java -@@ -0,0 +1,49 @@ +@@ -0,0 +1,59 @@ +package org.spigotmc.netty; + +import io.netty.buffer.ByteBuf; @@ -250,8 +250,16 @@ index 0000000..54928b4 + + private Cipher encrypt; + private Cipher decrypt; -+ private byte[] heapIn = new byte[0]; -+ private byte[] heapOut = new byte[0]; ++ private ThreadLocal heapInLocal = new EmptyByteThreadLocal(); ++ private ThreadLocal heapOutLocal = new EmptyByteThreadLocal(); ++ ++ private static class EmptyByteThreadLocal extends ThreadLocal { ++ ++ @Override ++ protected byte[] initialValue() { ++ return new byte[0]; ++ } ++ } + + public CipherCodec(Cipher encrypt, Cipher decrypt) { + this.encrypt = encrypt; @@ -269,12 +277,14 @@ index 0000000..54928b4 + } + + private void cipher(ByteBuf in, ByteBuf out, Cipher cipher) throws ShortBufferException { ++ byte[] heapIn = heapInLocal.get(); + int readableBytes = in.readableBytes(); + if (heapIn.length < readableBytes) { + heapIn = new byte[readableBytes]; + } + in.readBytes(heapIn, 0, readableBytes); + ++ byte[] heapOut = heapOutLocal.get(); + int outputSize = cipher.getOutputSize(readableBytes); + if (heapOut.length < outputSize) { + heapOut = new byte[outputSize]; diff --git a/CraftBukkit-Patches/0034-Faster-UUID-for-entities.patch b/CraftBukkit-Patches/0034-Faster-UUID-for-entities.patch index 6c4ba71043..5c8daed3cf 100644 --- a/CraftBukkit-Patches/0034-Faster-UUID-for-entities.patch +++ b/CraftBukkit-Patches/0034-Faster-UUID-for-entities.patch @@ -1,4 +1,4 @@ -From 39127f9cade7372cad29c50fdafb2c5eea11b0a5 Mon Sep 17 00:00:00 2001 +From 70a96d7f8788457918d0589525e52ae25150f14b Mon Sep 17 00:00:00 2001 From: md_5 Date: Sun, 17 Mar 2013 19:02:50 +1100 Subject: [PATCH] Faster UUID for entities @@ -6,10 +6,10 @@ Subject: [PATCH] Faster UUID for entities It is overkill to create a new SecureRandom on each entity create and then use it to make a new Entity ID for every entity instance created. Instead we will just use a pseudo random UUID based off the random instance we already have. diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 482fecb..52ecc09 100644 +index 4ea11ef..aafaf17 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -154,7 +154,7 @@ public abstract class Entity { +@@ -153,7 +153,7 @@ public abstract class Entity { this.ai = false; this.as = 0; this.invulnerable = false; diff --git a/CraftBukkit-Patches/0045-Anvil-Exploit-Fix.patch b/CraftBukkit-Patches/0045-Anvil-Exploit-Fix.patch new file mode 100644 index 0000000000..05355f7f73 --- /dev/null +++ b/CraftBukkit-Patches/0045-Anvil-Exploit-Fix.patch @@ -0,0 +1,22 @@ +From ca336d318f06163f3aeeb47fa2ae28c31a459c7d Mon Sep 17 00:00:00 2001 +From: md_5 +Date: Fri, 29 Mar 2013 13:56:36 +1000 +Subject: [PATCH] Anvil Exploit Fix + + +diff --git a/src/main/java/net/minecraft/server/Container.java b/src/main/java/net/minecraft/server/Container.java +index a1d930c..540b2dc 100644 +--- a/src/main/java/net/minecraft/server/Container.java ++++ b/src/main/java/net/minecraft/server/Container.java +@@ -337,7 +337,7 @@ public abstract class Container { + } + } else if (k == 4 && playerinventory.getCarried() == null && i >= 0) { + slot2 = (Slot) this.c.get(i); +- if (slot2 != null && slot2.d()) { ++ if (slot2 != null && slot2.d() && slot2.a(entityhuman)) { // Spigot + itemstack1 = slot2.a(j == 0 ? 1 : slot2.getItem().count); + slot2.a(entityhuman, itemstack1); + entityhuman.drop(itemstack1); +-- +1.8.2.1 +