From 15b553bed37448b20f93a9359f6f2cdfd4f3994a Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Mon, 1 Sep 2014 18:54:34 -0500 Subject: [PATCH] Update from upstream SpigotMC Fix double plants having the incorrect top half SpigotMC/Spigot@377b69d7872a8ca5bf7e17449c866934553aba1c Fix boats thinking that they were always on land for 1.8 clients SpigotMC/Spigot@4a083f819e0d551df5a03056976911f3515065f6 Correct the action used in updateGamemode. this isn't used by the ser... SpigotMC/Spigot@face904a9a68995100152fd44be06d556ce8c0bc Allow the updated version of protocollib to be enabled SpigotMC/Spigot@4614a615cc077d9fa4c9b79c583548f21b7da4ff --- ...ding-of-ProtocolLib-and-Orebfuscator.patch | 6 +- .../0180-Snapshot-protocol.patch | 158 ++++++++++++++++-- ...0005-Allow-ProtocolLib-to-be-enabled.patch | 25 --- ...40-Fix-for-ProtocolLib-compatibility.patch | 29 ---- 4 files changed, 143 insertions(+), 75 deletions(-) delete mode 100644 Spigot-API-Patches/0005-Allow-ProtocolLib-to-be-enabled.patch delete mode 100644 Spigot-Server-Patches/0040-Fix-for-ProtocolLib-compatibility.patch diff --git a/Bukkit-Patches/0031-Skip-loading-of-ProtocolLib-and-Orebfuscator.patch b/Bukkit-Patches/0031-Skip-loading-of-ProtocolLib-and-Orebfuscator.patch index bee65d3236..1cd6a94918 100644 --- a/Bukkit-Patches/0031-Skip-loading-of-ProtocolLib-and-Orebfuscator.patch +++ b/Bukkit-Patches/0031-Skip-loading-of-ProtocolLib-and-Orebfuscator.patch @@ -1,4 +1,4 @@ -From 55d719bb45bb3b91b3b540142c568504b3e7f4c9 Mon Sep 17 00:00:00 2001 +From de4f4dd30cca12c86d93491af6543d91724e5951 Mon Sep 17 00:00:00 2001 From: md_5 Date: Mon, 1 Sep 2014 19:36:20 +1000 Subject: [PATCH] Skip loading of ProtocolLib and Orebfuscator. @@ -6,7 +6,7 @@ Subject: [PATCH] Skip loading of ProtocolLib and Orebfuscator. As it does not work with Spigot 1.8 builds! diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index 1d51908..c7ad532 100644 +index 1d51908..9e5d4fd 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java @@ -132,6 +132,18 @@ public final class SimplePluginManager implements PluginManager { @@ -14,7 +14,7 @@ index 1d51908..c7ad532 100644 description = loader.getPluginDescription(file); String name = description.getName(); + // Spigot Start -+ if ( name.equalsIgnoreCase( "ProtocolLib" ) ) ++ if ( name.equalsIgnoreCase( "ProtocolLib" ) && !description.getVersion().endsWith( "-HACK" ) ) + { + server.getLogger().log( Level.WARNING, "Skipping loading of ProtocolLib as it does not work with Spigot 1.8 builds!" ); + continue; diff --git a/CraftBukkit-Patches/0180-Snapshot-protocol.patch b/CraftBukkit-Patches/0180-Snapshot-protocol.patch index 23aedb3cc2..6ab7f230d7 100644 --- a/CraftBukkit-Patches/0180-Snapshot-protocol.patch +++ b/CraftBukkit-Patches/0180-Snapshot-protocol.patch @@ -1,4 +1,4 @@ -From c6375be65f8716214295ff749bb253ba55f9e4c1 Mon Sep 17 00:00:00 2001 +From 9a688c804e6b8dc68bef498a03aa31d105fee6d5 Mon Sep 17 00:00:00 2001 From: Thinkofdeath Date: Mon, 1 Sep 2014 16:47:48 +1000 Subject: [PATCH] Snapshot protocol @@ -504,9 +504,42 @@ index 413af68..bf70d65 100644 public ChunkCoordinates getChunkCoordinates() { diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -index f654d58..6e32e24 100644 +index f654d58..46c4fb8 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java +@@ -134,11 +134,11 @@ public class EntityTrackerEntry { + if (this.m > 0 || this.tracker instanceof EntityArrow) { + if (j1 >= -128 && j1 < 128 && k1 >= -128 && k1 < 128 && l1 >= -128 && l1 < 128 && this.v <= 400 && !this.x) { + if (flag && flag1) { +- object = new PacketPlayOutRelEntityMoveLook(this.tracker.getId(), (byte) j1, (byte) k1, (byte) l1, (byte) l, (byte) i1); ++ object = new PacketPlayOutRelEntityMoveLook(this.tracker.getId(), (byte) j1, (byte) k1, (byte) l1, (byte) l, (byte) i1, tracker.onGround); // Spigot - protocol patch + } else if (flag) { +- object = new PacketPlayOutRelEntityMove(this.tracker.getId(), (byte) j1, (byte) k1, (byte) l1); ++ object = new PacketPlayOutRelEntityMove(this.tracker.getId(), (byte) j1, (byte) k1, (byte) l1, tracker.onGround); // Spigot - protocol patch + } else if (flag1) { +- object = new PacketPlayOutEntityLook(this.tracker.getId(), (byte) l, (byte) i1); ++ object = new PacketPlayOutEntityLook(this.tracker.getId(), (byte) l, (byte) i1, tracker.onGround); // Spigot - protocol patch + } + } else { + this.v = 0; +@@ -147,7 +147,7 @@ public class EntityTrackerEntry { + this.scanPlayers(new java.util.ArrayList(this.trackedPlayers)); + } + // CraftBukkit end +- object = new PacketPlayOutEntityTeleport(this.tracker.getId(), i, j, k, (byte) l, (byte) i1); ++ object = new PacketPlayOutEntityTeleport(this.tracker.getId(), i, j, k, (byte) l, (byte) i1, tracker.onGround); // Spigot - protocol patch + } + } + +@@ -191,7 +191,7 @@ public class EntityTrackerEntry { + boolean flag2 = Math.abs(i - this.yRot) >= 4 || Math.abs(j - this.xRot) >= 4; + + if (flag2) { +- this.broadcast(new PacketPlayOutEntityLook(this.tracker.getId(), (byte) i, (byte) j)); ++ this.broadcast(new PacketPlayOutEntityLook(this.tracker.getId(), (byte) i, (byte) j, tracker.onGround)); // Spigot - protocol patch + this.yRot = i; + this.xRot = j; + } @@ -320,6 +320,13 @@ public class EntityTrackerEntry { this.trackedPlayers.add(entityplayer); Packet packet = this.c(); @@ -1575,17 +1608,37 @@ index 0204062..2e4abe1 100644 } diff --git a/src/main/java/net/minecraft/server/PacketPlayOutEntityLook.java b/src/main/java/net/minecraft/server/PacketPlayOutEntityLook.java -index 72243ec..238e346 100644 +index 72243ec..617adb3 100644 --- a/src/main/java/net/minecraft/server/PacketPlayOutEntityLook.java +++ b/src/main/java/net/minecraft/server/PacketPlayOutEntityLook.java -@@ -23,6 +23,12 @@ public class PacketPlayOutEntityLook extends PacketPlayOutEntity { +@@ -2,15 +2,18 @@ package net.minecraft.server; + + public class PacketPlayOutEntityLook extends PacketPlayOutEntity { + ++ private boolean onGround; // Spigot - protocol patch ++ + public PacketPlayOutEntityLook() { + this.g = true; + } + +- public PacketPlayOutEntityLook(int i, byte b0, byte b1) { ++ public PacketPlayOutEntityLook(int i, byte b0, byte b1, boolean onGround) { // Spigot - protocol patch + super(i); + this.e = b0; + this.f = b1; + this.g = true; ++ this.onGround = onGround; // Spigot - protocol patch + } + + public void a(PacketDataSerializer packetdataserializer) { +@@ -23,6 +26,12 @@ public class PacketPlayOutEntityLook extends PacketPlayOutEntity { super.b(packetdataserializer); packetdataserializer.writeByte(this.e); packetdataserializer.writeByte(this.f); + // Spigot start - protocol patch + if ( packetdataserializer.version >= 22 ) + { -+ packetdataserializer.writeBoolean( true ); ++ packetdataserializer.writeBoolean( onGround ); + } + // Spigot end } @@ -1615,10 +1668,34 @@ index a95877f..c937f59 100644 public void a(PacketPlayOutListener packetplayoutlistener) { diff --git a/src/main/java/net/minecraft/server/PacketPlayOutEntityTeleport.java b/src/main/java/net/minecraft/server/PacketPlayOutEntityTeleport.java -index c988bcc..6a0f882 100644 +index c988bcc..87260d5 100644 --- a/src/main/java/net/minecraft/server/PacketPlayOutEntityTeleport.java +++ b/src/main/java/net/minecraft/server/PacketPlayOutEntityTeleport.java -@@ -39,12 +39,26 @@ public class PacketPlayOutEntityTeleport extends Packet { +@@ -8,6 +8,7 @@ public class PacketPlayOutEntityTeleport extends Packet { + private int d; + private byte e; + private byte f; ++ private boolean onGround; // Spigot - protocol patch + + public PacketPlayOutEntityTeleport() {} + +@@ -20,13 +21,14 @@ public class PacketPlayOutEntityTeleport extends Packet { + this.f = (byte) ((int) (entity.pitch * 256.0F / 360.0F)); + } + +- public PacketPlayOutEntityTeleport(int i, int j, int k, int l, byte b0, byte b1) { ++ public PacketPlayOutEntityTeleport(int i, int j, int k, int l, byte b0, byte b1, boolean onGround) { // Spigot - protocol patch + this.a = i; + this.b = j; + this.c = k; + this.d = l; + this.e = b0; + this.f = b1; ++ this.onGround = onGround; // Spigot - protocol patch + } + + public void a(PacketDataSerializer packetdataserializer) { +@@ -39,12 +41,26 @@ public class PacketPlayOutEntityTeleport extends Packet { } public void b(PacketDataSerializer packetdataserializer) { @@ -1640,7 +1717,7 @@ index c988bcc..6a0f882 100644 + // Spigot start - protocol patch + if ( packetdataserializer.version >= 22 ) + { -+ packetdataserializer.writeBoolean( true ); ++ packetdataserializer.writeBoolean( onGround ); + } + // Spigot end } @@ -2279,7 +2356,7 @@ index 860592d..8e9ea33 100644 public void handle(PacketListener packetlistener) { this.a((PacketPlayOutListener) packetlistener); diff --git a/src/main/java/net/minecraft/server/PacketPlayOutPlayerInfo.java b/src/main/java/net/minecraft/server/PacketPlayOutPlayerInfo.java -index 7cae01e..9585615 100644 +index 7cae01e..adb8e8f 100644 --- a/src/main/java/net/minecraft/server/PacketPlayOutPlayerInfo.java +++ b/src/main/java/net/minecraft/server/PacketPlayOutPlayerInfo.java @@ -1,31 +1,138 @@ @@ -2342,7 +2419,7 @@ index 7cae01e..9585615 100644 + + public static PacketPlayOutPlayerInfo updateGamemode(EntityPlayer player) { + PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo(); -+ packet.action = UPDATE_LATENCY; ++ packet.action = UPDATE_GAMEMODE; + packet.username = player.listName; + packet.player = player.getProfile(); + packet.gamemode = player.playerInteractManager.getGameMode().getId(); @@ -2464,34 +2541,75 @@ index f2234f0..b3c0ccf 100644 public void a(PacketPlayOutListener packetplayoutlistener) { diff --git a/src/main/java/net/minecraft/server/PacketPlayOutRelEntityMove.java b/src/main/java/net/minecraft/server/PacketPlayOutRelEntityMove.java -index d83ae7b..7394b72 100644 +index d83ae7b..37e5a38 100644 --- a/src/main/java/net/minecraft/server/PacketPlayOutRelEntityMove.java +++ b/src/main/java/net/minecraft/server/PacketPlayOutRelEntityMove.java -@@ -23,6 +23,12 @@ public class PacketPlayOutRelEntityMove extends PacketPlayOutEntity { +@@ -2,13 +2,16 @@ package net.minecraft.server; + + public class PacketPlayOutRelEntityMove extends PacketPlayOutEntity { + ++ private boolean onGround; // Spigot - protocol patch ++ + public PacketPlayOutRelEntityMove() {} + +- public PacketPlayOutRelEntityMove(int i, byte b0, byte b1, byte b2) { ++ public PacketPlayOutRelEntityMove(int i, byte b0, byte b1, byte b2, boolean onGround) { // Spigot - protocol patch + super(i); + this.b = b0; + this.c = b1; + this.d = b2; ++ this.onGround = onGround; // Spigot - protocol patch + } + + public void a(PacketDataSerializer packetdataserializer) { +@@ -23,6 +26,12 @@ public class PacketPlayOutRelEntityMove extends PacketPlayOutEntity { packetdataserializer.writeByte(this.b); packetdataserializer.writeByte(this.c); packetdataserializer.writeByte(this.d); + // Spigot start - protocol patch + if ( packetdataserializer.version >= 22 ) + { -+ packetdataserializer.writeBoolean( true ); ++ packetdataserializer.writeBoolean( onGround ); + } + // Spigot end } public String b() { diff --git a/src/main/java/net/minecraft/server/PacketPlayOutRelEntityMoveLook.java b/src/main/java/net/minecraft/server/PacketPlayOutRelEntityMoveLook.java -index 9155c96..165320c 100644 +index 9155c96..2ad234b 100644 --- a/src/main/java/net/minecraft/server/PacketPlayOutRelEntityMoveLook.java +++ b/src/main/java/net/minecraft/server/PacketPlayOutRelEntityMoveLook.java -@@ -32,6 +32,12 @@ public class PacketPlayOutRelEntityMoveLook extends PacketPlayOutEntity { +@@ -2,11 +2,13 @@ package net.minecraft.server; + + public class PacketPlayOutRelEntityMoveLook extends PacketPlayOutEntity { + ++ private boolean onGround; // Spigot - protocol patch ++ + public PacketPlayOutRelEntityMoveLook() { + this.g = true; + } + +- public PacketPlayOutRelEntityMoveLook(int i, byte b0, byte b1, byte b2, byte b3, byte b4) { ++ public PacketPlayOutRelEntityMoveLook(int i, byte b0, byte b1, byte b2, byte b3, byte b4, boolean onGround) { // Spigot - protocol patch + super(i); + this.b = b0; + this.c = b1; +@@ -14,6 +16,7 @@ public class PacketPlayOutRelEntityMoveLook extends PacketPlayOutEntity { + this.e = b3; + this.f = b4; + this.g = true; ++ this.onGround = onGround; // Spigot - protocol patch + } + + public void a(PacketDataSerializer packetdataserializer) { +@@ -32,6 +35,12 @@ public class PacketPlayOutRelEntityMoveLook extends PacketPlayOutEntity { packetdataserializer.writeByte(this.d); packetdataserializer.writeByte(this.e); packetdataserializer.writeByte(this.f); + // Spigot start - protocol patch + if ( packetdataserializer.version >= 22 ) + { -+ packetdataserializer.writeBoolean( true ); ++ packetdataserializer.writeBoolean( onGround ); + } + // Spigot end } @@ -3835,10 +3953,10 @@ index 0000000..0e30463 +} diff --git a/src/main/java/org/spigotmc/SpigotBlockDebreakifier.java b/src/main/java/org/spigotmc/SpigotBlockDebreakifier.java new file mode 100644 -index 0000000..8479c09 +index 0000000..3e57442 --- /dev/null +++ b/src/main/java/org/spigotmc/SpigotBlockDebreakifier.java -@@ -0,0 +1,60 @@ +@@ -0,0 +1,64 @@ +package org.spigotmc; + +import com.google.common.base.Charsets; @@ -3890,6 +4008,10 @@ index 0000000..8479c09 + public static int getCorrectedData(int id, int data) + { + if ( id > 197 ) return data; ++ if ( id == 175 && data > 8 ) ++ { ++ data = 8; ++ } + if ( validBlocks[ ( id << 4 ) | data ] ) + { + return data; diff --git a/Spigot-API-Patches/0005-Allow-ProtocolLib-to-be-enabled.patch b/Spigot-API-Patches/0005-Allow-ProtocolLib-to-be-enabled.patch deleted file mode 100644 index c6a1ddb30e..0000000000 --- a/Spigot-API-Patches/0005-Allow-ProtocolLib-to-be-enabled.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 40dad27b03d2c402a7c3ca130ad8df3b86aa5cc9 Mon Sep 17 00:00:00 2001 -From: Zach Brown -Date: Mon, 1 Sep 2014 15:33:27 -0500 -Subject: [PATCH] Allow ProtocolLib to be enabled - - -diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -index c7ad532..b3002e8 100644 ---- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java -+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java -@@ -133,11 +133,6 @@ public final class SimplePluginManager implements PluginManager { - description = loader.getPluginDescription(file); - String name = description.getName(); - // Spigot Start -- if ( name.equalsIgnoreCase( "ProtocolLib" ) ) -- { -- server.getLogger().log( Level.WARNING, "Skipping loading of ProtocolLib as it does not work with Spigot 1.8 builds!" ); -- continue; -- } - if ( name.equalsIgnoreCase( "Orebfuscator" ) ) - { - server.getLogger().log( Level.WARNING, "Skipping loading of Orebfuscator as it does not work with Spigot 1.8 builds!" ); --- -1.9.1 - diff --git a/Spigot-Server-Patches/0040-Fix-for-ProtocolLib-compatibility.patch b/Spigot-Server-Patches/0040-Fix-for-ProtocolLib-compatibility.patch deleted file mode 100644 index 2cd44728da..0000000000 --- a/Spigot-Server-Patches/0040-Fix-for-ProtocolLib-compatibility.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 2bed385eff3e829e3d2d9de35b5093d6f0853512 Mon Sep 17 00:00:00 2001 -From: Minecrell -Date: Mon, 1 Sep 2014 15:33:57 -0500 -Subject: [PATCH] Fix for ProtocolLib compatibility - - -diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java -index 6d579e3..98b0979 100644 ---- a/src/main/java/net/minecraft/server/NetworkManager.java -+++ b/src/main/java/net/minecraft/server/NetworkManager.java -@@ -250,7 +250,14 @@ public class NetworkManager extends SimpleChannelInboundHandler { - - // Spigot start - protocol patch - public void enableCompression() { -- m.pipeline().addBefore( "decoder", "decompress", new SpigotDecompressor() ); -+ // PaperSpigot start - Fix ProtocolLib compatibility -+ if ( m.pipeline().get("protocol_lib_decoder") != null ) { -+ m.pipeline().addBefore( "protocol_lib_decoder", "decompress", new SpigotDecompressor() ); -+ } else { -+ m.pipeline().addBefore( "decoder", "decompress", new SpigotDecompressor() ); -+ } -+ // PaperSpigot end -+ - m.pipeline().addBefore( "encoder", "compress", new SpigotCompressor() ); - } - // Spigot end --- -1.9.1 -