diff --git a/Bukkit-Patches/0001-POM-Changes.patch b/Bukkit-Patches/0001-POM-Changes.patch index 6b91295f81..dd1fc367b4 100644 --- a/Bukkit-Patches/0001-POM-Changes.patch +++ b/Bukkit-Patches/0001-POM-Changes.patch @@ -16,7 +16,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 - bukkit + org.spigotmc + spigot-api - 1.8.3-R0.1-SNAPSHOT + 1.8.4-R0.1-SNAPSHOT jar - Bukkit diff --git a/CraftBukkit-Patches/0001-POM-Changes.patch b/CraftBukkit-Patches/0001-POM-Changes.patch index 02e4efd8a0..bf15c0809b 100644 --- a/CraftBukkit-Patches/0001-POM-Changes.patch +++ b/CraftBukkit-Patches/0001-POM-Changes.patch @@ -18,7 +18,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + org.spigotmc + spigot jar - 1.8.3-R0.1-SNAPSHOT + 1.8.4-R0.1-SNAPSHOT - CraftBukkit - http://www.bukkit.org + Spigot diff --git a/CraftBukkit-Patches/0002-mc-dev-imports.patch b/CraftBukkit-Patches/0002-mc-dev-imports.patch index 01fd978113..8c192e7b37 100644 --- a/CraftBukkit-Patches/0002-mc-dev-imports.patch +++ b/CraftBukkit-Patches/0002-mc-dev-imports.patch @@ -1054,7 +1054,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + this.a((ICommand) (new CommandWorldBorder())); + this.a((ICommand) (new CommandTitle())); + this.a((ICommand) (new CommandEntityData())); -+ if (MinecraftServer.getServer().ad()) { ++ if (MinecraftServer.getServer().ae()) { + this.a((ICommand) (new CommandOp())); + this.a((ICommand) (new CommandDeop())); + this.a((ICommand) (new CommandStop())); @@ -1095,8 +1095,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + while (iterator.hasNext()) { + EntityHuman entityhuman = (EntityHuman) iterator.next(); + -+ if (entityhuman != icommandlistener && minecraftserver.getPlayerList().isOp(entityhuman.getProfile()) && icommand.canUse(icommandlistener) && (!(icommandlistener instanceof RemoteControlCommandListener) || MinecraftServer.getServer().q())) { -+ entityhuman.sendMessage(chatmessage); ++ if (entityhuman != icommandlistener && minecraftserver.getPlayerList().isOp(entityhuman.getProfile()) && icommand.canUse(icommandlistener)) { ++ boolean flag1 = icommandlistener instanceof MinecraftServer && MinecraftServer.getServer().r(); ++ boolean flag2 = icommandlistener instanceof RemoteControlCommandListener && MinecraftServer.getServer().q(); ++ ++ if (flag1 || flag2 || !(icommandlistener instanceof RemoteControlCommandListener) && !(icommandlistener instanceof MinecraftServer)) { ++ entityhuman.sendMessage(chatmessage); ++ } + } + } + } @@ -1105,13 +1110,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + minecraftserver.sendMessage(chatmessage); + } + -+ boolean flag1 = minecraftserver.worldServer[0].getGameRules().getBoolean("sendCommandFeedback"); ++ boolean flag3 = minecraftserver.worldServer[0].getGameRules().getBoolean("sendCommandFeedback"); + + if (icommandlistener instanceof CommandBlockListenerAbstract) { -+ flag1 = ((CommandBlockListenerAbstract) icommandlistener).m(); ++ flag3 = ((CommandBlockListenerAbstract) icommandlistener).m(); + } + -+ if ((i & 1) != 1 && flag1) { ++ if ((i & 1) != 1 && flag3 || icommandlistener instanceof MinecraftServer) { + icommandlistener.sendMessage(new ChatMessage(s, aobject)); + } + @@ -2011,10 +2016,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + + private static final Logger f = LogManager.getLogger(); + public static final IAttribute maxHealth = (new AttributeRanged((IAttribute) null, "generic.maxHealth", 20.0D, 0.0D, Double.MAX_VALUE)).a("Max Health").a(true); -+ public static final IAttribute b = (new AttributeRanged((IAttribute) null, "generic.followRange", 32.0D, 0.0D, 2048.0D)).a("Follow Range"); ++ public static final IAttribute FOLLOW_RANGE = (new AttributeRanged((IAttribute) null, "generic.followRange", 32.0D, 0.0D, 2048.0D)).a("Follow Range"); + public static final IAttribute c = (new AttributeRanged((IAttribute) null, "generic.knockbackResistance", 0.0D, 0.0D, 1.0D)).a("Knockback Resistance"); -+ public static final IAttribute d = (new AttributeRanged((IAttribute) null, "generic.movementSpeed", 0.699999988079071D, 0.0D, Double.MAX_VALUE)).a("Movement Speed").a(true); -+ public static final IAttribute e = new AttributeRanged((IAttribute) null, "generic.attackDamage", 2.0D, 0.0D, Double.MAX_VALUE); ++ public static final IAttribute MOVEMENT_SPEED = (new AttributeRanged((IAttribute) null, "generic.movementSpeed", 0.699999988079071D, 0.0D, Double.MAX_VALUE)).a("Movement Speed").a(true); ++ public static final IAttribute ATTACK_DAMAGE = new AttributeRanged((IAttribute) null, "generic.attackDamage", 2.0D, 0.0D, Double.MAX_VALUE); + + public static NBTTagList a(AttributeMapBase attributemapbase) { + NBTTagList nbttaglist = new NBTTagList(); @@ -2609,6 +2614,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + } + + void load(DataInput datainput, int i, NBTReadLimiter nbtreadlimiter) throws IOException { ++ nbtreadlimiter.a(192L); + int j = datainput.readInt(); + + nbtreadlimiter.a((long) (8 * j)); @@ -2676,6 +2682,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + } + + void load(DataInput datainput, int i, NBTReadLimiter nbtreadlimiter) throws IOException { ++ nbtreadlimiter.a(192L); + int j = datainput.readInt(); + + nbtreadlimiter.a((long) (32 * j)); @@ -3725,7 +3732,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + Class oclass; + LazyInitVar lazyinitvar; + -+ if (Epoll.isAvailable() && this.f.ah()) { ++ if (Epoll.isAvailable() && this.f.ai()) { + oclass = EpollServerSocketChannel.class; + lazyinitvar = ServerConnection.b; + ServerConnection.e.info("Using epoll channel type"); @@ -3806,8 +3813,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + ServerConnection.e.warn("Failed to handle packet for " + networkmanager.getSocketAddress(), exception); + final ChatComponentText chatcomponenttext = new ChatComponentText("Internal server error"); + -+ networkmanager.a(new PacketPlayOutKickDisconnect(chatcomponenttext), new GenericFutureListener>() { -+ public void operationComplete(Future future) throws Exception { ++ networkmanager.a(new PacketPlayOutKickDisconnect(chatcomponenttext), new GenericFutureListener() { ++ public void operationComplete(Future future) throws Exception { + networkmanager.close(chatcomponenttext); + } + }, new GenericFutureListener[0]); @@ -3895,14 +3902,14 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + this.e.add(statistic); + if (statistic.d() && j == 0 && i > 0) { + this.g = true; -+ if (this.c.aA()) { ++ if (this.c.aB()) { + this.c.getPlayerList().sendMessage(new ChatMessage("chat.type.achievement", new Object[] { entityhuman.getScoreboardDisplayName(), statistic.j()})); + } + } + + if (statistic.d() && j > 0 && i == 0) { + this.g = true; -+ if (this.c.aA()) { ++ if (this.c.aB()) { + this.c.getPlayerList().sendMessage(new ChatMessage("chat.type.achievement.taken", new Object[] { entityhuman.getScoreboardDisplayName(), statistic.j()})); + } + } @@ -4005,7 +4012,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + } + + public void a(EntityPlayer entityplayer) { -+ int i = this.c.as(); ++ int i = this.c.at(); + HashMap hashmap = Maps.newHashMap(); + + if (this.g || i - this.f > 300) { @@ -4408,14 +4415,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + UserCache.UserCacheEntry usercache_usercacheentry1 = (UserCache.UserCacheEntry) this.d.get(uuid); + + this.c.remove(usercache_usercacheentry1.a().getName().toLowerCase(Locale.ROOT)); -+ this.c.put(gameprofile.getName().toLowerCase(Locale.ROOT), usercache_usercacheentry); + this.e.remove(gameprofile); -+ } else { -+ this.d.put(uuid, usercache_usercacheentry); -+ this.c.put(s, usercache_usercacheentry); + } + ++ this.c.put(gameprofile.getName().toLowerCase(Locale.ROOT), usercache_usercacheentry); ++ this.d.put(uuid, usercache_usercacheentry); + this.e.addFirst(gameprofile); ++ this.c(); + } + + public GameProfile getProfile(String s) { @@ -4473,29 +4479,16 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + } + + public void b() { -+ List list = null; + BufferedReader bufferedreader = null; + -+ label64: { -+ try { -+ bufferedreader = Files.newReader(this.g, Charsets.UTF_8); -+ list = (List) this.b.fromJson(bufferedreader, UserCache.h); -+ break label64; -+ } catch (FileNotFoundException filenotfoundexception) { -+ ; -+ } finally { -+ IOUtils.closeQuietly(bufferedreader); -+ } ++ try { ++ bufferedreader = Files.newReader(this.g, Charsets.UTF_8); ++ List list = (List) this.b.fromJson(bufferedreader, UserCache.h); + -+ return; -+ } -+ -+ if (list != null) { + this.c.clear(); + this.d.clear(); + this.e.clear(); -+ list = Lists.reverse(list); -+ Iterator iterator = list.iterator(); ++ Iterator iterator = Lists.reverse(list).iterator(); + + while (iterator.hasNext()) { + UserCache.UserCacheEntry usercache_usercacheentry = (UserCache.UserCacheEntry) iterator.next(); @@ -4504,6 +4497,12 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + this.a(usercache_usercacheentry.a(), usercache_usercacheentry.b()); + } + } ++ } catch (FileNotFoundException filenotfoundexception) { ++ ; ++ } catch (JsonParseException jsonparseexception) { ++ ; ++ } finally { ++ IOUtils.closeQuietly(bufferedreader); + } + + } diff --git a/CraftBukkit-Patches/0004-Obfuscation-Helpers.patch b/CraftBukkit-Patches/0004-Obfuscation-Helpers.patch index 53f469c106..29c53fa366 100644 --- a/CraftBukkit-Patches/0004-Obfuscation-Helpers.patch +++ b/CraftBukkit-Patches/0004-Obfuscation-Helpers.patch @@ -19,7 +19,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + return this.q; + } + // Spigot End - public ServerConnection ap() { + public ServerConnection aq() { return this.q; } -- \ No newline at end of file diff --git a/CraftBukkit-Patches/0005-Spigot-Configuration.patch b/CraftBukkit-Patches/0005-Spigot-Configuration.patch index 08a68675b2..ed8062a0f1 100644 --- a/CraftBukkit-Patches/0005-Spigot-Configuration.patch +++ b/CraftBukkit-Patches/0005-Spigot-Configuration.patch @@ -10,7 +10,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java @@ -0,0 +0,0 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer - if (this.Q() < 0) { + if (this.R() < 0) { this.setPort(this.propertyManager.getInt("server-port", 25565)); } + // Spigot start diff --git a/CraftBukkit-Patches/0009-Merge-tweaks-and-configuration.patch b/CraftBukkit-Patches/0008-Merge-tweaks-and-configuration.patch similarity index 100% rename from CraftBukkit-Patches/0009-Merge-tweaks-and-configuration.patch rename to CraftBukkit-Patches/0008-Merge-tweaks-and-configuration.patch diff --git a/CraftBukkit-Patches/0008-More-Efficient-Chunk-Save-Queue.patch b/CraftBukkit-Patches/0008-More-Efficient-Chunk-Save-Queue.patch deleted file mode 100644 index c613bf3e3a..0000000000 --- a/CraftBukkit-Patches/0008-More-Efficient-Chunk-Save-Queue.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: md_5 -Date: Tue, 11 Jun 2013 12:09:45 +1000 -Subject: [PATCH] More Efficient Chunk Save Queue - -Optimizes the data structures behind the chunk save queue into ones more suitable for the type of data and access which they are used for. - -diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java -+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -@@ -0,0 +0,0 @@ import org.apache.logging.log4j.Logger; - public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { - - private static final Logger a = LogManager.getLogger(); -- private List b = Lists.newArrayList(); -- private Set c = Sets.newHashSet(); -+ // Spigot start -+ private java.util.LinkedHashMap pendingSaves = new java.util.LinkedHashMap(); -+ // private List b = Lists.newArrayList(); -+ // private Set c = Sets.newHashSet(); -+ // Spigot end - private Object d = new Object(); - private final File e; - -@@ -0,0 +0,0 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { - ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(i, j); - - synchronized (this.d) { -- if (this.c.contains(chunkcoordintpair)) { -- for (int k = 0; k < this.b.size(); ++k) { -- if (((PendingChunkToSave) this.b.get(k)).a.equals(chunkcoordintpair)) { -- return true; -- } -- } -- } -+ // Spigot start -+ if (pendingSaves.containsKey(chunkcoordintpair)) { -+ return true; -+ } -+ // Spigot end - } - - return RegionFileCache.a(this.e, i, j).chunkExists(i & 31, j & 31); -@@ -0,0 +0,0 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { - Object object = this.d; - - synchronized (this.d) { -- if (this.c.contains(chunkcoordintpair)) { -- for (int k = 0; k < this.b.size(); ++k) { -- if (((ChunkRegionLoader.PendingChunkToSave) this.b.get(k)).a.equals(chunkcoordintpair)) { -- nbttagcompound = ((ChunkRegionLoader.PendingChunkToSave) this.b.get(k)).b; -- break; -- } -- } -+ // Spigot start -+ PendingChunkToSave pendingchunktosave = pendingSaves.get(chunkcoordintpair); -+ if (pendingchunktosave != null) { -+ nbttagcompound = pendingchunktosave.b; - } -+ // Spigot end - } - - if (nbttagcompound == null) { -@@ -0,0 +0,0 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { - Object object = this.d; - - synchronized (this.d) { -- if (this.c.contains(chunkcoordintpair)) { -- for (int i = 0; i < this.b.size(); ++i) { -- if (((ChunkRegionLoader.PendingChunkToSave) this.b.get(i)).a.equals(chunkcoordintpair)) { -- this.b.set(i, new ChunkRegionLoader.PendingChunkToSave(chunkcoordintpair, nbttagcompound)); -- return; -- } -- } -+ // Spigot start -+ if (this.pendingSaves.put(chunkcoordintpair, new PendingChunkToSave(chunkcoordintpair, nbttagcompound)) != null) { -+ return; - } - -- this.b.add(new ChunkRegionLoader.PendingChunkToSave(chunkcoordintpair, nbttagcompound)); -- this.c.add(chunkcoordintpair); -+ // this.b.add(new ChunkRegionLoader.PendingChunkToSave(chunkcoordintpair, nbttagcompound)); -+ // this.c.add(chunkcoordintpair); -+ // Spigot end - FileIOThread.a().a(this); - } - } -@@ -0,0 +0,0 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver { - Object object = this.d; - - synchronized (this.d) { -- if (this.b.isEmpty()) { -+ // Spigot start -+ if (this.pendingSaves.isEmpty()) { - return false; - } - -- chunkregionloader_pendingchunktosave = (ChunkRegionLoader.PendingChunkToSave) this.b.remove(0); -- this.c.remove(chunkregionloader_pendingchunktosave.a); -+ chunkregionloader_pendingchunktosave = this.pendingSaves.values().iterator().next(); -+ this.pendingSaves.remove(chunkregionloader_pendingchunktosave.a); -+ // Spigot end - } - - if (chunkregionloader_pendingchunktosave != null) { --- \ No newline at end of file diff --git a/CraftBukkit-Patches/0010-Async-Operation-Catching.patch b/CraftBukkit-Patches/0009-Async-Operation-Catching.patch similarity index 100% rename from CraftBukkit-Patches/0010-Async-Operation-Catching.patch rename to CraftBukkit-Patches/0009-Async-Operation-Catching.patch diff --git a/CraftBukkit-Patches/0011-View-Distance.patch b/CraftBukkit-Patches/0010-View-Distance.patch similarity index 100% rename from CraftBukkit-Patches/0011-View-Distance.patch rename to CraftBukkit-Patches/0010-View-Distance.patch diff --git a/CraftBukkit-Patches/0012-Spigot-Timings.patch b/CraftBukkit-Patches/0011-Spigot-Timings.patch similarity index 99% rename from CraftBukkit-Patches/0012-Spigot-Timings.patch rename to CraftBukkit-Patches/0011-Spigot-Timings.patch index 53e49d32ec..1783e5e993 100644 --- a/CraftBukkit-Patches/0012-Spigot-Timings.patch +++ b/CraftBukkit-Patches/0011-Spigot-Timings.patch @@ -120,7 +120,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer } - public void aN() { + public void aO() { + SpigotTimings.serverCommandTimer.startTiming(); // Spigot while (!this.l.isEmpty()) { ServerCommand servercommand = (ServerCommand) this.l.remove(0); @@ -132,7 +132,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + SpigotTimings.serverCommandTimer.stopTiming(); // Spigot } - public boolean ad() { + public boolean ae() { diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/Entity.java @@ -254,9 +254,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 import org.bukkit.event.server.RemoteServerCommandEvent; import org.bukkit.event.world.WorldSaveEvent; @@ -0,0 +0,0 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs - protected void y() {} + protected void z() {} - protected void z() throws ExceptionWorldConflict { // CraftBukkit - added throws + protected void A() throws ExceptionWorldConflict { // CraftBukkit - added throws + SpigotTimings.serverTickTimer.startTiming(); // Spigot long i = System.nanoTime(); @@ -282,7 +282,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + org.spigotmc.CustomTimingsHandler.tick(); // Spigot } - public void A() { + public void B() { @@ -0,0 +0,0 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs this.methodProfiler.c("levels"); @@ -350,7 +350,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 this.methodProfiler.c("connection"); + SpigotTimings.connectionTimer.startTiming(); // Spigot - this.ap().c(); + this.aq().c(); + SpigotTimings.connectionTimer.stopTiming(); // Spigot this.methodProfiler.c("players"); + SpigotTimings.playerListTimer.startTiming(); // Spigot diff --git a/CraftBukkit-Patches/0013-Fix-Mob-Spawning-Relative-to-View-Distance.patch b/CraftBukkit-Patches/0012-Fix-Mob-Spawning-Relative-to-View-Distance.patch similarity index 100% rename from CraftBukkit-Patches/0013-Fix-Mob-Spawning-Relative-to-View-Distance.patch rename to CraftBukkit-Patches/0012-Fix-Mob-Spawning-Relative-to-View-Distance.patch diff --git a/CraftBukkit-Patches/0014-Handle-Null-Tile-Entities.patch b/CraftBukkit-Patches/0013-Handle-Null-Tile-Entities.patch similarity index 100% rename from CraftBukkit-Patches/0014-Handle-Null-Tile-Entities.patch rename to CraftBukkit-Patches/0013-Handle-Null-Tile-Entities.patch diff --git a/CraftBukkit-Patches/0015-Entity-Activation-Range.patch b/CraftBukkit-Patches/0014-Entity-Activation-Range.patch similarity index 100% rename from CraftBukkit-Patches/0015-Entity-Activation-Range.patch rename to CraftBukkit-Patches/0014-Entity-Activation-Range.patch diff --git a/CraftBukkit-Patches/0016-Metrics.patch b/CraftBukkit-Patches/0015-Metrics.patch similarity index 100% rename from CraftBukkit-Patches/0016-Metrics.patch rename to CraftBukkit-Patches/0015-Metrics.patch diff --git a/CraftBukkit-Patches/0017-PlayerItemDamageEvent.patch b/CraftBukkit-Patches/0016-PlayerItemDamageEvent.patch similarity index 100% rename from CraftBukkit-Patches/0017-PlayerItemDamageEvent.patch rename to CraftBukkit-Patches/0016-PlayerItemDamageEvent.patch diff --git a/CraftBukkit-Patches/0018-Prevent-NPE-in-CraftSign.patch b/CraftBukkit-Patches/0017-Prevent-NPE-in-CraftSign.patch similarity index 100% rename from CraftBukkit-Patches/0018-Prevent-NPE-in-CraftSign.patch rename to CraftBukkit-Patches/0017-Prevent-NPE-in-CraftSign.patch diff --git a/CraftBukkit-Patches/0019-Entity-Tracking-Ranges.patch b/CraftBukkit-Patches/0018-Entity-Tracking-Ranges.patch similarity index 100% rename from CraftBukkit-Patches/0019-Entity-Tracking-Ranges.patch rename to CraftBukkit-Patches/0018-Entity-Tracking-Ranges.patch diff --git a/CraftBukkit-Patches/0020-Thread-Naming-and-Tweaks.patch b/CraftBukkit-Patches/0019-Thread-Naming-and-Tweaks.patch similarity index 100% rename from CraftBukkit-Patches/0020-Thread-Naming-and-Tweaks.patch rename to CraftBukkit-Patches/0019-Thread-Naming-and-Tweaks.patch diff --git a/CraftBukkit-Patches/0021-Close-Unloaded-Save-Files.patch b/CraftBukkit-Patches/0020-Close-Unloaded-Save-Files.patch similarity index 100% rename from CraftBukkit-Patches/0021-Close-Unloaded-Save-Files.patch rename to CraftBukkit-Patches/0020-Close-Unloaded-Save-Files.patch diff --git a/CraftBukkit-Patches/0022-Remove-o-Option.patch b/CraftBukkit-Patches/0021-Remove-o-Option.patch similarity index 100% rename from CraftBukkit-Patches/0022-Remove-o-Option.patch rename to CraftBukkit-Patches/0021-Remove-o-Option.patch diff --git a/CraftBukkit-Patches/0023-Recipe-Deconstruction.patch b/CraftBukkit-Patches/0022-Recipe-Deconstruction.patch similarity index 100% rename from CraftBukkit-Patches/0023-Recipe-Deconstruction.patch rename to CraftBukkit-Patches/0022-Recipe-Deconstruction.patch diff --git a/CraftBukkit-Patches/0024-Implement-Arrow-API.patch b/CraftBukkit-Patches/0023-Implement-Arrow-API.patch similarity index 100% rename from CraftBukkit-Patches/0024-Implement-Arrow-API.patch rename to CraftBukkit-Patches/0023-Implement-Arrow-API.patch diff --git a/CraftBukkit-Patches/0025-Hopper-Customisations.patch b/CraftBukkit-Patches/0024-Hopper-Customisations.patch similarity index 100% rename from CraftBukkit-Patches/0025-Hopper-Customisations.patch rename to CraftBukkit-Patches/0024-Hopper-Customisations.patch diff --git a/CraftBukkit-Patches/0026-Implement-SpawnerSpawnEvent.patch b/CraftBukkit-Patches/0025-Implement-SpawnerSpawnEvent.patch similarity index 100% rename from CraftBukkit-Patches/0026-Implement-SpawnerSpawnEvent.patch rename to CraftBukkit-Patches/0025-Implement-SpawnerSpawnEvent.patch diff --git a/CraftBukkit-Patches/0027-Firework-Meta-Crash-Fix.patch b/CraftBukkit-Patches/0026-Firework-Meta-Crash-Fix.patch similarity index 100% rename from CraftBukkit-Patches/0027-Firework-Meta-Crash-Fix.patch rename to CraftBukkit-Patches/0026-Firework-Meta-Crash-Fix.patch diff --git a/CraftBukkit-Patches/0028-Allow-Disabling-of-Command-Logging.patch b/CraftBukkit-Patches/0027-Allow-Disabling-of-Command-Logging.patch similarity index 100% rename from CraftBukkit-Patches/0028-Allow-Disabling-of-Command-Logging.patch rename to CraftBukkit-Patches/0027-Allow-Disabling-of-Command-Logging.patch diff --git a/CraftBukkit-Patches/0029-Allow-Disabling-of-Command-TabComplete.patch b/CraftBukkit-Patches/0028-Allow-Disabling-of-Command-TabComplete.patch similarity index 100% rename from CraftBukkit-Patches/0029-Allow-Disabling-of-Command-TabComplete.patch rename to CraftBukkit-Patches/0028-Allow-Disabling-of-Command-TabComplete.patch diff --git a/CraftBukkit-Patches/0030-Configurable-Messages.patch b/CraftBukkit-Patches/0029-Configurable-Messages.patch similarity index 94% rename from CraftBukkit-Patches/0030-Configurable-Messages.patch rename to CraftBukkit-Patches/0029-Configurable-Messages.patch index c4ae1c53b2..9667bca829 100644 --- a/CraftBukkit-Patches/0030-Configurable-Messages.patch +++ b/CraftBukkit-Patches/0029-Configurable-Messages.patch @@ -12,13 +12,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 // CraftBukkit end if (packethandshakinginsetprotocol.b() > 47) { -- chatcomponenttext = new ChatComponentText("Outdated server! I\'m still on 1.8.3"); -+ chatcomponenttext = new ChatComponentText( java.text.MessageFormat.format( org.spigotmc.SpigotConfig.outdatedServerMessage, "1.8.3" ) ); // Spigot +- chatcomponenttext = new ChatComponentText("Outdated server! I\'m still on 1.8.4"); ++ chatcomponenttext = new ChatComponentText( java.text.MessageFormat.format( org.spigotmc.SpigotConfig.outdatedServerMessage, "1.8.4" ) ); // Spigot this.b.handle(new PacketLoginOutDisconnect(chatcomponenttext)); this.b.close(chatcomponenttext); } else if (packethandshakinginsetprotocol.b() < 47) { -- chatcomponenttext = new ChatComponentText("Outdated client! Please use 1.8.3"); -+ chatcomponenttext = new ChatComponentText( java.text.MessageFormat.format( org.spigotmc.SpigotConfig.outdatedClientMessage, "1.8.3" ) ); // Spigot +- chatcomponenttext = new ChatComponentText("Outdated client! Please use 1.8.4"); ++ chatcomponenttext = new ChatComponentText( java.text.MessageFormat.format( org.spigotmc.SpigotConfig.outdatedClientMessage, "1.8.4" ) ); // Spigot this.b.handle(new PacketLoginOutDisconnect(chatcomponenttext)); this.b.close(chatcomponenttext); } else { @@ -37,8 +37,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ public abstract class PlayerList { } else { - // return this.players.size() >= this.maxPlayers ? "The server is full!" : null; - if (this.players.size() >= this.maxPlayers) { + // return this.players.size() >= this.maxPlayers && !this.f(gameprofile) ? "The server is full!" : null; + if (this.players.size() >= this.maxPlayers && !this.f(gameprofile)) { - event.disallow(PlayerLoginEvent.Result.KICK_FULL, "The server is full"); + event.disallow(PlayerLoginEvent.Result.KICK_FULL, org.spigotmc.SpigotConfig.serverFullMessage); // Spigot } diff --git a/CraftBukkit-Patches/0031-Allow-Disabling-of-Random-Lighting-Updates.patch b/CraftBukkit-Patches/0030-Allow-Disabling-of-Random-Lighting-Updates.patch similarity index 100% rename from CraftBukkit-Patches/0031-Allow-Disabling-of-Random-Lighting-Updates.patch rename to CraftBukkit-Patches/0030-Allow-Disabling-of-Random-Lighting-Updates.patch diff --git a/CraftBukkit-Patches/0032-Properly-Close-Inventories.patch b/CraftBukkit-Patches/0031-Properly-Close-Inventories.patch similarity index 100% rename from CraftBukkit-Patches/0032-Properly-Close-Inventories.patch rename to CraftBukkit-Patches/0031-Properly-Close-Inventories.patch diff --git a/CraftBukkit-Patches/0033-Disallow-Interaction-With-Self.patch b/CraftBukkit-Patches/0032-Disallow-Interaction-With-Self.patch similarity index 91% rename from CraftBukkit-Patches/0033-Disallow-Interaction-With-Self.patch rename to CraftBukkit-Patches/0032-Disallow-Interaction-With-Self.patch index 1b2dc5c593..ef24c69299 100644 --- a/CraftBukkit-Patches/0033-Disallow-Interaction-With-Self.patch +++ b/CraftBukkit-Patches/0032-Disallow-Interaction-With-Self.patch @@ -13,13 +13,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 WorldServer worldserver = this.minecraftServer.getWorldServer(this.player.dimension); Entity entity = packetplayinuseentity.a((World) worldserver); + // Spigot Start -+ if ( entity == player && !player.v() ) // RENAME ++ if ( entity == player && !player.isSpectator() ) + { + disconnect( "Cannot interact with self!" ); + return; + } + // Spigot End - this.player.z(); + this.player.resetIdleTimer(); if (entity != null) { -- \ No newline at end of file diff --git a/CraftBukkit-Patches/0034-Entity-Mount-and-Dismount-Events.patch b/CraftBukkit-Patches/0033-Entity-Mount-and-Dismount-Events.patch similarity index 100% rename from CraftBukkit-Patches/0034-Entity-Mount-and-Dismount-Events.patch rename to CraftBukkit-Patches/0033-Entity-Mount-and-Dismount-Events.patch diff --git a/CraftBukkit-Patches/0035-Prevent-Ghost-Players-Caused-by-Plugins.patch b/CraftBukkit-Patches/0034-Prevent-Ghost-Players-Caused-by-Plugins.patch similarity index 100% rename from CraftBukkit-Patches/0035-Prevent-Ghost-Players-Caused-by-Plugins.patch rename to CraftBukkit-Patches/0034-Prevent-Ghost-Players-Caused-by-Plugins.patch diff --git a/CraftBukkit-Patches/0036-Plug-World-Unload-Memory-Leak.patch b/CraftBukkit-Patches/0035-Plug-World-Unload-Memory-Leak.patch similarity index 100% rename from CraftBukkit-Patches/0036-Plug-World-Unload-Memory-Leak.patch rename to CraftBukkit-Patches/0035-Plug-World-Unload-Memory-Leak.patch diff --git a/CraftBukkit-Patches/0037-Player-Collision-API.patch b/CraftBukkit-Patches/0036-Player-Collision-API.patch similarity index 100% rename from CraftBukkit-Patches/0037-Player-Collision-API.patch rename to CraftBukkit-Patches/0036-Player-Collision-API.patch diff --git a/CraftBukkit-Patches/0038-Fully-Disable-Snooper-When-Not-Required.patch b/CraftBukkit-Patches/0037-Fully-Disable-Snooper-When-Not-Required.patch similarity index 100% rename from CraftBukkit-Patches/0038-Fully-Disable-Snooper-When-Not-Required.patch rename to CraftBukkit-Patches/0037-Fully-Disable-Snooper-When-Not-Required.patch diff --git a/CraftBukkit-Patches/0039-Add-Getter-for-Entity-Invulnerability.patch b/CraftBukkit-Patches/0038-Add-Getter-for-Entity-Invulnerability.patch similarity index 100% rename from CraftBukkit-Patches/0039-Add-Getter-for-Entity-Invulnerability.patch rename to CraftBukkit-Patches/0038-Add-Getter-for-Entity-Invulnerability.patch diff --git a/CraftBukkit-Patches/0040-Cap-Minimum-Player-Speed.patch b/CraftBukkit-Patches/0039-Cap-Minimum-Player-Speed.patch similarity index 100% rename from CraftBukkit-Patches/0040-Cap-Minimum-Player-Speed.patch rename to CraftBukkit-Patches/0039-Cap-Minimum-Player-Speed.patch diff --git a/CraftBukkit-Patches/0041-Update-Inventory-and-Health-for-PlayerConsumeItemEve.patch b/CraftBukkit-Patches/0040-Update-Inventory-and-Health-for-PlayerConsumeItemEve.patch similarity index 100% rename from CraftBukkit-Patches/0041-Update-Inventory-and-Health-for-PlayerConsumeItemEve.patch rename to CraftBukkit-Patches/0040-Update-Inventory-and-Health-for-PlayerConsumeItemEve.patch diff --git a/CraftBukkit-Patches/0042-Call-EntityChangeBlockEvent-for-Fire-Arrows-hitting-.patch b/CraftBukkit-Patches/0041-Call-EntityChangeBlockEvent-for-Fire-Arrows-hitting-.patch similarity index 100% rename from CraftBukkit-Patches/0042-Call-EntityChangeBlockEvent-for-Fire-Arrows-hitting-.patch rename to CraftBukkit-Patches/0041-Call-EntityChangeBlockEvent-for-Fire-Arrows-hitting-.patch diff --git a/CraftBukkit-Patches/0043-Allow-Disabling-of-1.6.3-Structure-Saving.patch b/CraftBukkit-Patches/0042-Allow-Disabling-of-1.6.3-Structure-Saving.patch similarity index 100% rename from CraftBukkit-Patches/0043-Allow-Disabling-of-1.6.3-Structure-Saving.patch rename to CraftBukkit-Patches/0042-Allow-Disabling-of-1.6.3-Structure-Saving.patch diff --git a/CraftBukkit-Patches/0044-Item-Despawn-Rate.patch b/CraftBukkit-Patches/0043-Item-Despawn-Rate.patch similarity index 100% rename from CraftBukkit-Patches/0044-Item-Despawn-Rate.patch rename to CraftBukkit-Patches/0043-Item-Despawn-Rate.patch diff --git a/CraftBukkit-Patches/0045-Don-t-Special-Case-X-Move-Value.patch b/CraftBukkit-Patches/0044-Don-t-Special-Case-X-Move-Value.patch similarity index 100% rename from CraftBukkit-Patches/0045-Don-t-Special-Case-X-Move-Value.patch rename to CraftBukkit-Patches/0044-Don-t-Special-Case-X-Move-Value.patch diff --git a/CraftBukkit-Patches/0046-Implement-respawn-API.patch b/CraftBukkit-Patches/0045-Implement-respawn-API.patch similarity index 100% rename from CraftBukkit-Patches/0046-Implement-respawn-API.patch rename to CraftBukkit-Patches/0045-Implement-respawn-API.patch diff --git a/CraftBukkit-Patches/0047-Arrow-Despawn-Rate.patch b/CraftBukkit-Patches/0046-Arrow-Despawn-Rate.patch similarity index 100% rename from CraftBukkit-Patches/0047-Arrow-Despawn-Rate.patch rename to CraftBukkit-Patches/0046-Arrow-Despawn-Rate.patch diff --git a/CraftBukkit-Patches/0048-Fix-packed-ice-generation.patch b/CraftBukkit-Patches/0047-Fix-packed-ice-generation.patch similarity index 100% rename from CraftBukkit-Patches/0048-Fix-packed-ice-generation.patch rename to CraftBukkit-Patches/0047-Fix-packed-ice-generation.patch diff --git a/CraftBukkit-Patches/0049-Watchdog-Thread.patch b/CraftBukkit-Patches/0048-Watchdog-Thread.patch similarity index 99% rename from CraftBukkit-Patches/0049-Watchdog-Thread.patch rename to CraftBukkit-Patches/0048-Watchdog-Thread.patch index a67a141e8b..0f3eabe4de 100644 --- a/CraftBukkit-Patches/0049-Watchdog-Thread.patch +++ b/CraftBukkit-Patches/0048-Watchdog-Thread.patch @@ -12,8 +12,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 } // CraftBukkit end -- if (this.aR() > 0L) { -+ if (false && this.aR() > 0L) { // Spigot - disable +- if (this.aS() > 0L) { ++ if (false && this.aS() > 0L) { // Spigot - disable Thread thread1 = new Thread(new ThreadWatchdog(this)); thread1.setName("Server Watchdog"); diff --git a/CraftBukkit-Patches/0050-Clear-Flower-Pot-on-Drop.patch b/CraftBukkit-Patches/0049-Clear-Flower-Pot-on-Drop.patch similarity index 100% rename from CraftBukkit-Patches/0050-Clear-Flower-Pot-on-Drop.patch rename to CraftBukkit-Patches/0049-Clear-Flower-Pot-on-Drop.patch diff --git a/CraftBukkit-Patches/0051-Fix-some-chunks-not-being-sent-to-the-client.patch b/CraftBukkit-Patches/0050-Fix-some-chunks-not-being-sent-to-the-client.patch similarity index 100% rename from CraftBukkit-Patches/0051-Fix-some-chunks-not-being-sent-to-the-client.patch rename to CraftBukkit-Patches/0050-Fix-some-chunks-not-being-sent-to-the-client.patch diff --git a/CraftBukkit-Patches/0052-Fix-Broken-Async-Chat.patch b/CraftBukkit-Patches/0051-Fix-Broken-Async-Chat.patch similarity index 100% rename from CraftBukkit-Patches/0052-Fix-Broken-Async-Chat.patch rename to CraftBukkit-Patches/0051-Fix-Broken-Async-Chat.patch diff --git a/CraftBukkit-Patches/0053-Orebfuscator.patch b/CraftBukkit-Patches/0052-Orebfuscator.patch similarity index 100% rename from CraftBukkit-Patches/0053-Orebfuscator.patch rename to CraftBukkit-Patches/0052-Orebfuscator.patch diff --git a/CraftBukkit-Patches/0054-Optimize-DataWatcher.patch b/CraftBukkit-Patches/0053-Optimize-DataWatcher.patch similarity index 100% rename from CraftBukkit-Patches/0054-Optimize-DataWatcher.patch rename to CraftBukkit-Patches/0053-Optimize-DataWatcher.patch diff --git a/CraftBukkit-Patches/0055-Fire-PreLogin-Events-in-Offline-Mode.patch b/CraftBukkit-Patches/0054-Fire-PreLogin-Events-in-Offline-Mode.patch similarity index 95% rename from CraftBukkit-Patches/0055-Fire-PreLogin-Events-in-Offline-Mode.patch rename to CraftBukkit-Patches/0054-Fire-PreLogin-Events-in-Offline-Mode.patch index 4accb4bacb..4f2096715d 100644 --- a/CraftBukkit-Patches/0055-Fire-PreLogin-Events-in-Offline-Mode.patch +++ b/CraftBukkit-Patches/0054-Fire-PreLogin-Events-in-Offline-Mode.patch @@ -42,7 +42,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 EntityPlayer s = this.server.getPlayerList().attemptLogin(this, this.i, hostname); @@ -0,0 +0,0 @@ public class LoginListener implements PacketLoginInListener, IUpdatePlayerListBo this.g = LoginListener.EnumProtocolState.KEY; - this.networkManager.handle(new PacketLoginOutEncryptionBegin(this.j, this.server.P().getPublic(), this.e)); + this.networkManager.handle(new PacketLoginOutEncryptionBegin(this.j, this.server.Q().getPublic(), this.e)); } else { - this.g = LoginListener.EnumProtocolState.READY_TO_ACCEPT; + // Spigot start @@ -62,7 +62,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 } + new LoginHandler().fireEvents(); -+ } else if (LoginListener.this.server.S()) { ++ } else if (LoginListener.this.server.T()) { + LoginListener.c.warn("Failed to verify username but will let them in anyway!"); + LoginListener.this.i = LoginListener.this.a(gameprofile); + LoginListener.this.g = LoginListener.EnumProtocolState.READY_TO_ACCEPT; @@ -71,7 +71,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + LoginListener.c.error("Username \'" + gameprofile.getName() + "\' tried to join with an invalid session"); // CraftBukkit - fix null pointer + } + } catch (AuthenticationUnavailableException authenticationunavailableexception) { -+ if (LoginListener.this.server.S()) { ++ if (LoginListener.this.server.T()) { + LoginListener.c.warn("Authentication servers are down but will let them in anyway!"); + LoginListener.this.i = LoginListener.this.a(gameprofile); + LoginListener.this.g = LoginListener.EnumProtocolState.READY_TO_ACCEPT; @@ -102,7 +102,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 // CraftBukkit end LoginListener.c.info("UUID of player " + LoginListener.this.i.getName() + " is " + LoginListener.this.i.getId()); LoginListener.this.g = LoginListener.EnumProtocolState.READY_TO_ACCEPT; -- } else if (LoginListener.this.server.S()) { +- } else if (LoginListener.this.server.T()) { - LoginListener.c.warn("Failed to verify username but will let them in anyway!"); - LoginListener.this.i = LoginListener.this.a(gameprofile); - LoginListener.this.g = LoginListener.EnumProtocolState.READY_TO_ACCEPT; @@ -111,7 +111,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 - LoginListener.c.error("Username \'" + gameprofile.getName() + "\' tried to join with an invalid session"); // CraftBukkit - fix null pointer - } - } catch (AuthenticationUnavailableException authenticationunavailableexception) { -- if (LoginListener.this.server.S()) { +- if (LoginListener.this.server.T()) { - LoginListener.c.warn("Authentication servers are down but will let them in anyway!"); - LoginListener.this.i = LoginListener.this.a(gameprofile); - LoginListener.this.g = LoginListener.EnumProtocolState.READY_TO_ACCEPT; diff --git a/CraftBukkit-Patches/0056-BungeeCord-Support.patch b/CraftBukkit-Patches/0055-BungeeCord-Support.patch similarity index 98% rename from CraftBukkit-Patches/0056-BungeeCord-Support.patch rename to CraftBukkit-Patches/0055-BungeeCord-Support.patch index be6de7704c..c82519ce9d 100644 --- a/CraftBukkit-Patches/0056-BungeeCord-Support.patch +++ b/CraftBukkit-Patches/0055-BungeeCord-Support.patch @@ -75,7 +75,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 // Spigot end @@ -0,0 +0,0 @@ public class LoginListener implements PacketLoginInListener, IUpdatePlayerListBo - this.networkManager.handle(new PacketLoginOutEncryptionBegin(this.j, this.server.P().getPublic(), this.e)); + this.networkManager.handle(new PacketLoginOutEncryptionBegin(this.j, this.server.Q().getPublic(), this.e)); } else { // Spigot start - try { @@ -108,7 +108,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ public class NetworkManager extends SimpleChannelInboundHandler { private final Queue i = Queues.newConcurrentLinkedQueue(); private final ReentrantReadWriteLock j = new ReentrantReadWriteLock(); - public Channel k; // CraftBukkit - public, PAIL: Rename channel + public Channel channel; // CraftBukkit - public - private SocketAddress l; + // Spigot Start + public SocketAddress l; @@ -126,7 +126,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + // Spigot Start + public SocketAddress getRawAddress() + { -+ return this.k.remoteAddress(); ++ return this.channel.remoteAddress(); + } + // Spigot End } diff --git a/CraftBukkit-Patches/0057-Allow-Disabling-Zombie-Villager-Aggression.patch b/CraftBukkit-Patches/0056-Allow-Disabling-Zombie-Villager-Aggression.patch similarity index 100% rename from CraftBukkit-Patches/0057-Allow-Disabling-Zombie-Villager-Aggression.patch rename to CraftBukkit-Patches/0056-Allow-Disabling-Zombie-Villager-Aggression.patch diff --git a/CraftBukkit-Patches/0058-Configurable-Amount-of-Netty-Threads.patch b/CraftBukkit-Patches/0057-Configurable-Amount-of-Netty-Threads.patch similarity index 97% rename from CraftBukkit-Patches/0058-Configurable-Amount-of-Netty-Threads.patch rename to CraftBukkit-Patches/0057-Configurable-Amount-of-Netty-Threads.patch index 832e6de92f..8b588e2d3d 100644 --- a/CraftBukkit-Patches/0058-Configurable-Amount-of-Netty-Threads.patch +++ b/CraftBukkit-Patches/0057-Configurable-Amount-of-Netty-Threads.patch @@ -30,12 +30,12 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs } // Spigot End - public ServerConnection ap() { + public ServerConnection aq() { - return this.q; + return this.q == null ? this.q = new ServerConnection(this) : this.q; // Spigot } - public boolean ar() { + public boolean as() { diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/org/spigotmc/SpigotConfig.java diff --git a/CraftBukkit-Patches/0059-Prevent-Mineshaft-Saving.patch b/CraftBukkit-Patches/0058-Prevent-Mineshaft-Saving.patch similarity index 100% rename from CraftBukkit-Patches/0059-Prevent-Mineshaft-Saving.patch rename to CraftBukkit-Patches/0058-Prevent-Mineshaft-Saving.patch diff --git a/CraftBukkit-Patches/0060-Log-Cause-of-Unexpected-Exceptions.patch b/CraftBukkit-Patches/0059-Log-Cause-of-Unexpected-Exceptions.patch similarity index 100% rename from CraftBukkit-Patches/0060-Log-Cause-of-Unexpected-Exceptions.patch rename to CraftBukkit-Patches/0059-Log-Cause-of-Unexpected-Exceptions.patch diff --git a/CraftBukkit-Patches/0061-Particle-API.patch b/CraftBukkit-Patches/0060-Particle-API.patch similarity index 100% rename from CraftBukkit-Patches/0061-Particle-API.patch rename to CraftBukkit-Patches/0060-Particle-API.patch diff --git a/CraftBukkit-Patches/0062-Save-ticks-lived-to-nbttag.patch b/CraftBukkit-Patches/0061-Save-ticks-lived-to-nbttag.patch similarity index 100% rename from CraftBukkit-Patches/0062-Save-ticks-lived-to-nbttag.patch rename to CraftBukkit-Patches/0061-Save-ticks-lived-to-nbttag.patch diff --git a/CraftBukkit-Patches/0063-More-Efficient-GetCubes.patch b/CraftBukkit-Patches/0062-More-Efficient-GetCubes.patch similarity index 100% rename from CraftBukkit-Patches/0063-More-Efficient-GetCubes.patch rename to CraftBukkit-Patches/0062-More-Efficient-GetCubes.patch diff --git a/CraftBukkit-Patches/0064-Add-Option-to-Nerf-Mobs-from-Spawner-s.patch b/CraftBukkit-Patches/0063-Add-Option-to-Nerf-Mobs-from-Spawner-s.patch similarity index 100% rename from CraftBukkit-Patches/0064-Add-Option-to-Nerf-Mobs-from-Spawner-s.patch rename to CraftBukkit-Patches/0063-Add-Option-to-Nerf-Mobs-from-Spawner-s.patch diff --git a/CraftBukkit-Patches/0065-Warn-if-PermGen-may-be-insufficient.patch b/CraftBukkit-Patches/0064-Warn-if-PermGen-may-be-insufficient.patch similarity index 100% rename from CraftBukkit-Patches/0065-Warn-if-PermGen-may-be-insufficient.patch rename to CraftBukkit-Patches/0064-Warn-if-PermGen-may-be-insufficient.patch diff --git a/CraftBukkit-Patches/0066-Disable-Connected-Check-on-setScoreboard.patch b/CraftBukkit-Patches/0065-Disable-Connected-Check-on-setScoreboard.patch similarity index 100% rename from CraftBukkit-Patches/0066-Disable-Connected-Check-on-setScoreboard.patch rename to CraftBukkit-Patches/0065-Disable-Connected-Check-on-setScoreboard.patch diff --git a/CraftBukkit-Patches/0067-Add-Late-Bind-Option.patch b/CraftBukkit-Patches/0066-Add-Late-Bind-Option.patch similarity index 93% rename from CraftBukkit-Patches/0067-Add-Late-Bind-Option.patch rename to CraftBukkit-Patches/0066-Add-Late-Bind-Option.patch index 5e5e7bc299..917f8ab5d1 100644 --- a/CraftBukkit-Patches/0067-Add-Late-Bind-Option.patch +++ b/CraftBukkit-Patches/0066-Add-Late-Bind-Option.patch @@ -11,11 +11,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 +++ b/src/main/java/net/minecraft/server/DedicatedServer.java @@ -0,0 +0,0 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer this.a(MinecraftEncryption.b()); - DedicatedServer.LOGGER.info("Starting Minecraft server on " + (this.getServerIp().length() == 0 ? "*" : this.getServerIp()) + ":" + this.Q()); + DedicatedServer.LOGGER.info("Starting Minecraft server on " + (this.getServerIp().length() == 0 ? "*" : this.getServerIp()) + ":" + this.R()); + if (!org.spigotmc.SpigotConfig.lateBind) { try { - this.ap().a(inetaddress, this.Q()); + this.aq().a(inetaddress, this.R()); } catch (IOException ioexception) { @@ -0,0 +0,0 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer DedicatedServer.LOGGER.warn("Perhaps a server is already running on that port?"); @@ -31,7 +31,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + if (org.spigotmc.SpigotConfig.lateBind) { + try { -+ this.ap().a(inetaddress, this.Q()); ++ this.aq().a(inetaddress, this.R()); + } catch (IOException ioexception) { + DedicatedServer.LOGGER.warn("**** FAILED TO BIND TO PORT!"); + DedicatedServer.LOGGER.warn("The exception was: {}", new Object[] { ioexception.toString()}); @@ -40,7 +40,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + } + } + - if (false && this.aR() > 0L) { // Spigot - disable + if (false && this.aS() > 0L) { // Spigot - disable Thread thread1 = new Thread(new ThreadWatchdog(this)); diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java diff --git a/CraftBukkit-Patches/0068-Allow-statistics-to-be-disabled-forced.patch b/CraftBukkit-Patches/0067-Allow-statistics-to-be-disabled-forced.patch similarity index 100% rename from CraftBukkit-Patches/0068-Allow-statistics-to-be-disabled-forced.patch rename to CraftBukkit-Patches/0067-Allow-statistics-to-be-disabled-forced.patch diff --git a/CraftBukkit-Patches/0069-Fix-ItemStack-Unbreakable-Code.patch b/CraftBukkit-Patches/0068-Fix-ItemStack-Unbreakable-Code.patch similarity index 100% rename from CraftBukkit-Patches/0069-Fix-ItemStack-Unbreakable-Code.patch rename to CraftBukkit-Patches/0068-Fix-ItemStack-Unbreakable-Code.patch diff --git a/CraftBukkit-Patches/0070-Try-and-Debug-Crash-Reports-Crashing.patch b/CraftBukkit-Patches/0069-Try-and-Debug-Crash-Reports-Crashing.patch similarity index 100% rename from CraftBukkit-Patches/0070-Try-and-Debug-Crash-Reports-Crashing.patch rename to CraftBukkit-Patches/0069-Try-and-Debug-Crash-Reports-Crashing.patch diff --git a/CraftBukkit-Patches/0071-Improve-AutoSave-Mechanism.patch b/CraftBukkit-Patches/0070-Improve-AutoSave-Mechanism.patch similarity index 100% rename from CraftBukkit-Patches/0071-Improve-AutoSave-Mechanism.patch rename to CraftBukkit-Patches/0070-Improve-AutoSave-Mechanism.patch diff --git a/CraftBukkit-Patches/0072-Catch-stalling-on-corrupted-map-data-NBT-arrays.patch b/CraftBukkit-Patches/0071-Catch-stalling-on-corrupted-map-data-NBT-arrays.patch similarity index 96% rename from CraftBukkit-Patches/0072-Catch-stalling-on-corrupted-map-data-NBT-arrays.patch rename to CraftBukkit-Patches/0071-Catch-stalling-on-corrupted-map-data-NBT-arrays.patch index 7ec0f6c47e..b9ba7de7d1 100644 --- a/CraftBukkit-Patches/0072-Catch-stalling-on-corrupted-map-data-NBT-arrays.patch +++ b/CraftBukkit-Patches/0071-Catch-stalling-on-corrupted-map-data-NBT-arrays.patch @@ -9,8 +9,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/net/minecraft/server/NBTTagByteArray.java +++ b/src/main/java/net/minecraft/server/NBTTagByteArray.java @@ -0,0 +0,0 @@ public class NBTTagByteArray extends NBTBase { - void load(DataInput datainput, int i, NBTReadLimiter nbtreadlimiter) throws IOException { + nbtreadlimiter.a(192L); int j = datainput.readInt(); + com.google.common.base.Preconditions.checkArgument( j < 1 << 24); @@ -21,8 +21,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/net/minecraft/server/NBTTagIntArray.java +++ b/src/main/java/net/minecraft/server/NBTTagIntArray.java @@ -0,0 +0,0 @@ public class NBTTagIntArray extends NBTBase { - void load(DataInput datainput, int i, NBTReadLimiter nbtreadlimiter) throws IOException { + nbtreadlimiter.a(192L); int j = datainput.readInt(); + com.google.common.base.Preconditions.checkArgument( j < 1 << 24); diff --git a/CraftBukkit-Patches/0073-Allow-toggling-of-ZombiePigmen-spawning-in-portal-bl.patch b/CraftBukkit-Patches/0072-Allow-toggling-of-ZombiePigmen-spawning-in-portal-bl.patch similarity index 100% rename from CraftBukkit-Patches/0073-Allow-toggling-of-ZombiePigmen-spawning-in-portal-bl.patch rename to CraftBukkit-Patches/0072-Allow-toggling-of-ZombiePigmen-spawning-in-portal-bl.patch diff --git a/CraftBukkit-Patches/0074-Highly-Optimized-Tick-Loop.patch b/CraftBukkit-Patches/0073-Highly-Optimized-Tick-Loop.patch similarity index 97% rename from CraftBukkit-Patches/0074-Highly-Optimized-Tick-Loop.patch rename to CraftBukkit-Patches/0073-Highly-Optimized-Tick-Loop.patch index f60fc7bcb4..335533a59a 100644 --- a/CraftBukkit-Patches/0074-Highly-Optimized-Tick-Loop.patch +++ b/CraftBukkit-Patches/0073-Highly-Optimized-Tick-Loop.patch @@ -36,14 +36,14 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 try { if (this.init()) { @@ -0,0 +0,0 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs - this.r.setServerInfo(new ServerPing.ServerData("1.8.3", 47)); + this.r.setServerInfo(new ServerPing.ServerData("1.8.4", 47)); this.a(this.r); + // Spigot start + Arrays.fill( recentTps, 20 ); + long lastTick = System.nanoTime(), catchupTime = 0, curTime, wait, tickSection = lastTick; while (this.isRunning) { -- long j = ay(); +- long j = az(); - long k = j - this.ab; - - if (k > 2000L && this.ab - this.R >= 15000L) { @@ -68,14 +68,14 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 - i += k; - this.ab = j; -- if (this.worlds.get(0).everyoneDeeplySleeping()) { -- this.z(); +- if (this.worlds.get(0).everyoneDeeplySleeping()) { // CraftBukkit +- this.A(); - i = 0L; - } else { - while (i > 50L) { - MinecraftServer.currentTick = (int) (System.currentTimeMillis() / 50); // CraftBukkit - i -= 50L; -- this.z(); +- this.A(); - } + if ( MinecraftServer.currentTick++ % SAMPLE_INTERVAL == 0 ) + { @@ -88,7 +88,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + lastTick = curTime; - Thread.sleep(Math.max(1L, 50L - i)); -+ this.z(); ++ this.A(); this.Q = true; } + // Spigot end diff --git a/CraftBukkit-Patches/0075-Add-Spigot-Links.patch b/CraftBukkit-Patches/0074-Add-Spigot-Links.patch similarity index 100% rename from CraftBukkit-Patches/0075-Add-Spigot-Links.patch rename to CraftBukkit-Patches/0074-Add-Spigot-Links.patch diff --git a/CraftBukkit-Patches/0076-Configurable-Ping-Sample-Size.patch b/CraftBukkit-Patches/0075-Configurable-Ping-Sample-Size.patch similarity index 100% rename from CraftBukkit-Patches/0076-Configurable-Ping-Sample-Size.patch rename to CraftBukkit-Patches/0075-Configurable-Ping-Sample-Size.patch diff --git a/CraftBukkit-Patches/0077-Add-Optional-Tick-Shuffling.patch b/CraftBukkit-Patches/0076-Add-Optional-Tick-Shuffling.patch similarity index 100% rename from CraftBukkit-Patches/0077-Add-Optional-Tick-Shuffling.patch rename to CraftBukkit-Patches/0076-Add-Optional-Tick-Shuffling.patch diff --git a/CraftBukkit-Patches/0078-Allow-Configuring-Chunks-per-Packet.patch b/CraftBukkit-Patches/0077-Allow-Configuring-Chunks-per-Packet.patch similarity index 100% rename from CraftBukkit-Patches/0078-Allow-Configuring-Chunks-per-Packet.patch rename to CraftBukkit-Patches/0077-Allow-Configuring-Chunks-per-Packet.patch diff --git a/CraftBukkit-Patches/0079-Implement-Locale-Getter-for-Players.patch b/CraftBukkit-Patches/0078-Implement-Locale-Getter-for-Players.patch similarity index 100% rename from CraftBukkit-Patches/0079-Implement-Locale-Getter-for-Players.patch rename to CraftBukkit-Patches/0078-Implement-Locale-Getter-for-Players.patch diff --git a/CraftBukkit-Patches/0080-Cap-Entity-Collisions.patch b/CraftBukkit-Patches/0079-Cap-Entity-Collisions.patch similarity index 100% rename from CraftBukkit-Patches/0080-Cap-Entity-Collisions.patch rename to CraftBukkit-Patches/0079-Cap-Entity-Collisions.patch diff --git a/CraftBukkit-Patches/0081-Fix-dispensing-bone-meal-not-having-the-correct-data.patch b/CraftBukkit-Patches/0080-Fix-dispensing-bone-meal-not-having-the-correct-data.patch similarity index 100% rename from CraftBukkit-Patches/0081-Fix-dispensing-bone-meal-not-having-the-correct-data.patch rename to CraftBukkit-Patches/0080-Fix-dispensing-bone-meal-not-having-the-correct-data.patch diff --git a/CraftBukkit-Patches/0082-Spam-Filter-Exclusions.patch b/CraftBukkit-Patches/0081-Spam-Filter-Exclusions.patch similarity index 100% rename from CraftBukkit-Patches/0082-Spam-Filter-Exclusions.patch rename to CraftBukkit-Patches/0081-Spam-Filter-Exclusions.patch diff --git a/CraftBukkit-Patches/0083-Add-Option-to-Silence-CommandBlock-Console.patch b/CraftBukkit-Patches/0082-Add-Option-to-Silence-CommandBlock-Console.patch similarity index 100% rename from CraftBukkit-Patches/0083-Add-Option-to-Silence-CommandBlock-Console.patch rename to CraftBukkit-Patches/0082-Add-Option-to-Silence-CommandBlock-Console.patch diff --git a/CraftBukkit-Patches/0084-Add-support-for-fetching-hidden-players.patch b/CraftBukkit-Patches/0083-Add-support-for-fetching-hidden-players.patch similarity index 100% rename from CraftBukkit-Patches/0084-Add-support-for-fetching-hidden-players.patch rename to CraftBukkit-Patches/0083-Add-support-for-fetching-hidden-players.patch diff --git a/CraftBukkit-Patches/0085-Allow-Disabling-Creative-Item-Filter.patch b/CraftBukkit-Patches/0084-Allow-Disabling-Creative-Item-Filter.patch similarity index 100% rename from CraftBukkit-Patches/0085-Allow-Disabling-Creative-Item-Filter.patch rename to CraftBukkit-Patches/0084-Allow-Disabling-Creative-Item-Filter.patch diff --git a/CraftBukkit-Patches/0086-Cap-Channel-Registrations.patch b/CraftBukkit-Patches/0085-Cap-Channel-Registrations.patch similarity index 100% rename from CraftBukkit-Patches/0086-Cap-Channel-Registrations.patch rename to CraftBukkit-Patches/0085-Cap-Channel-Registrations.patch diff --git a/CraftBukkit-Patches/0087-Allow-vanilla-commands-to-be-the-main-version-of-a-c.patch b/CraftBukkit-Patches/0086-Allow-vanilla-commands-to-be-the-main-version-of-a-c.patch similarity index 100% rename from CraftBukkit-Patches/0087-Allow-vanilla-commands-to-be-the-main-version-of-a-c.patch rename to CraftBukkit-Patches/0086-Allow-vanilla-commands-to-be-the-main-version-of-a-c.patch diff --git a/CraftBukkit-Patches/0088-Unfinalize-the-isDisconnected-method-by-bukkit.patch b/CraftBukkit-Patches/0087-Unfinalize-the-isDisconnected-method-by-bukkit.patch similarity index 91% rename from CraftBukkit-Patches/0088-Unfinalize-the-isDisconnected-method-by-bukkit.patch rename to CraftBukkit-Patches/0087-Unfinalize-the-isDisconnected-method-by-bukkit.patch index 6cdb0bd5e8..6148066957 100644 --- a/CraftBukkit-Patches/0088-Unfinalize-the-isDisconnected-method-by-bukkit.patch +++ b/CraftBukkit-Patches/0087-Unfinalize-the-isDisconnected-method-by-bukkit.patch @@ -15,7 +15,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 // CraftBukkit start - Add "isDisconnected" method - public final boolean isDisconnected() { + public boolean isDisconnected() { // Spigot - return !this.player.joining && !this.networkManager.k.config().isAutoRead(); + return !this.player.joining && !this.networkManager.channel.config().isAutoRead(); } -- \ No newline at end of file diff --git a/CraftBukkit-Patches/0089-Implement-Silenceable-Lightning-API.patch b/CraftBukkit-Patches/0088-Implement-Silenceable-Lightning-API.patch similarity index 100% rename from CraftBukkit-Patches/0089-Implement-Silenceable-Lightning-API.patch rename to CraftBukkit-Patches/0088-Implement-Silenceable-Lightning-API.patch diff --git a/CraftBukkit-Patches/0090-Use-one-PermissibleBase-for-all-Command-Blocks.patch b/CraftBukkit-Patches/0089-Use-one-PermissibleBase-for-all-Command-Blocks.patch similarity index 100% rename from CraftBukkit-Patches/0090-Use-one-PermissibleBase-for-all-Command-Blocks.patch rename to CraftBukkit-Patches/0089-Use-one-PermissibleBase-for-all-Command-Blocks.patch diff --git a/CraftBukkit-Patches/0091-Prevent-hoppers-from-loading-chunks.patch b/CraftBukkit-Patches/0090-Prevent-hoppers-from-loading-chunks.patch similarity index 100% rename from CraftBukkit-Patches/0091-Prevent-hoppers-from-loading-chunks.patch rename to CraftBukkit-Patches/0090-Prevent-hoppers-from-loading-chunks.patch diff --git a/CraftBukkit-Patches/0092-Guard-Entity-List.patch b/CraftBukkit-Patches/0091-Guard-Entity-List.patch similarity index 100% rename from CraftBukkit-Patches/0092-Guard-Entity-List.patch rename to CraftBukkit-Patches/0091-Guard-Entity-List.patch diff --git a/CraftBukkit-Patches/0093-Fix-ConcurrentModificationException-while-being-idle.patch b/CraftBukkit-Patches/0092-Fix-ConcurrentModificationException-while-being-idle.patch similarity index 100% rename from CraftBukkit-Patches/0093-Fix-ConcurrentModificationException-while-being-idle.patch rename to CraftBukkit-Patches/0092-Fix-ConcurrentModificationException-while-being-idle.patch diff --git a/CraftBukkit-Patches/0094-Cancellable-WitherSkull-potion-effect.patch b/CraftBukkit-Patches/0093-Cancellable-WitherSkull-potion-effect.patch similarity index 100% rename from CraftBukkit-Patches/0094-Cancellable-WitherSkull-potion-effect.patch rename to CraftBukkit-Patches/0093-Cancellable-WitherSkull-potion-effect.patch diff --git a/CraftBukkit-Patches/0095-Descriptive-kick-reasons-instead-of-Nope.patch b/CraftBukkit-Patches/0094-Descriptive-kick-reasons-instead-of-Nope.patch similarity index 98% rename from CraftBukkit-Patches/0095-Descriptive-kick-reasons-instead-of-Nope.patch rename to CraftBukkit-Patches/0094-Descriptive-kick-reasons-instead-of-Nope.patch index b12b5a369c..f90d2c5702 100644 --- a/CraftBukkit-Patches/0095-Descriptive-kick-reasons-instead-of-Nope.patch +++ b/CraftBukkit-Patches/0094-Descriptive-kick-reasons-instead-of-Nope.patch @@ -40,7 +40,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 } // CraftBukkit end @@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn, IUpdatePlayerList - this.player.z(); + this.player.resetIdleTimer(); } else { PlayerConnection.c.warn(this.player.getName() + " tried to set an invalid carried item"); - this.disconnect("Nope!"); // CraftBukkit diff --git a/CraftBukkit-Patches/0096-Configurable-dragon-death-and-wither-spawn-sounds.patch b/CraftBukkit-Patches/0095-Configurable-dragon-death-and-wither-spawn-sounds.patch similarity index 100% rename from CraftBukkit-Patches/0096-Configurable-dragon-death-and-wither-spawn-sounds.patch rename to CraftBukkit-Patches/0095-Configurable-dragon-death-and-wither-spawn-sounds.patch diff --git a/CraftBukkit-Patches/0097-Display-Spigot-in-client-crashes-server-lists-and-Mo.patch b/CraftBukkit-Patches/0096-Display-Spigot-in-client-crashes-server-lists-and-Mo.patch similarity index 100% rename from CraftBukkit-Patches/0097-Display-Spigot-in-client-crashes-server-lists-and-Mo.patch rename to CraftBukkit-Patches/0096-Display-Spigot-in-client-crashes-server-lists-and-Mo.patch diff --git a/CraftBukkit-Patches/0098-Treat-Bungee-as-Online-Mode.patch b/CraftBukkit-Patches/0097-Treat-Bungee-as-Online-Mode.patch similarity index 100% rename from CraftBukkit-Patches/0098-Treat-Bungee-as-Online-Mode.patch rename to CraftBukkit-Patches/0097-Treat-Bungee-as-Online-Mode.patch diff --git a/CraftBukkit-Patches/0099-Add-Conversion-Message.patch b/CraftBukkit-Patches/0098-Add-Conversion-Message.patch similarity index 96% rename from CraftBukkit-Patches/0099-Add-Conversion-Message.patch rename to CraftBukkit-Patches/0098-Add-Conversion-Message.patch index 97240f600c..9fd22a01a9 100644 --- a/CraftBukkit-Patches/0099-Add-Conversion-Message.patch +++ b/CraftBukkit-Patches/0098-Add-Conversion-Message.patch @@ -11,7 +11,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 @@ -0,0 +0,0 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer } - protected boolean aQ() { + protected boolean aR() { + server.getLogger().info( "**** Beginning UUID conversion, this may take A LONG time ****"); // Spigot, let the user know whats up! boolean flag = false; diff --git a/CraftBukkit-Patches/0100-Properly-cancel-fishing-event.-Fixes-BUKKIT-5396.patch b/CraftBukkit-Patches/0099-Properly-cancel-fishing-event.-Fixes-BUKKIT-5396.patch similarity index 100% rename from CraftBukkit-Patches/0100-Properly-cancel-fishing-event.-Fixes-BUKKIT-5396.patch rename to CraftBukkit-Patches/0099-Properly-cancel-fishing-event.-Fixes-BUKKIT-5396.patch diff --git a/CraftBukkit-Patches/0101-Print-Stack-on-InternalException.patch b/CraftBukkit-Patches/0100-Print-Stack-on-InternalException.patch similarity index 96% rename from CraftBukkit-Patches/0101-Print-Stack-on-InternalException.patch rename to CraftBukkit-Patches/0100-Print-Stack-on-InternalException.patch index 3dcae54256..c5663fa67d 100644 --- a/CraftBukkit-Patches/0101-Print-Stack-on-InternalException.patch +++ b/CraftBukkit-Patches/0100-Print-Stack-on-InternalException.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Print Stack on InternalException diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java -index 0000000000000000000000000000000000000000..00000000000000000000000000000000000000000 100644 +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/NetworkManager.java +++ b/src/main/java/net/minecraft/server/NetworkManager.java @@ -0,0 +0,0 @@ public class NetworkManager extends SimpleChannelInboundHandler { diff --git a/CraftBukkit-Patches/0102-Use-Offline-Player-Data-Once-if-Required.patch b/CraftBukkit-Patches/0101-Use-Offline-Player-Data-Once-if-Required.patch similarity index 100% rename from CraftBukkit-Patches/0102-Use-Offline-Player-Data-Once-if-Required.patch rename to CraftBukkit-Patches/0101-Use-Offline-Player-Data-Once-if-Required.patch diff --git a/CraftBukkit-Patches/0103-Use-Provided-Case-for-Non-Existent-Offline-Players.patch b/CraftBukkit-Patches/0102-Use-Provided-Case-for-Non-Existent-Offline-Players.patch similarity index 100% rename from CraftBukkit-Patches/0103-Use-Provided-Case-for-Non-Existent-Offline-Players.patch rename to CraftBukkit-Patches/0102-Use-Provided-Case-for-Non-Existent-Offline-Players.patch diff --git a/CraftBukkit-Patches/0104-Check-for-blank-OfflinePlayer-Names.patch b/CraftBukkit-Patches/0103-Check-for-blank-OfflinePlayer-Names.patch similarity index 100% rename from CraftBukkit-Patches/0104-Check-for-blank-OfflinePlayer-Names.patch rename to CraftBukkit-Patches/0103-Check-for-blank-OfflinePlayer-Names.patch diff --git a/CraftBukkit-Patches/0105-Fix-Player-Banning.patch b/CraftBukkit-Patches/0104-Fix-Player-Banning.patch similarity index 100% rename from CraftBukkit-Patches/0105-Fix-Player-Banning.patch rename to CraftBukkit-Patches/0104-Fix-Player-Banning.patch diff --git a/CraftBukkit-Patches/0106-Fix-ban-expire-dates.patch b/CraftBukkit-Patches/0105-Fix-ban-expire-dates.patch similarity index 100% rename from CraftBukkit-Patches/0106-Fix-ban-expire-dates.patch rename to CraftBukkit-Patches/0105-Fix-ban-expire-dates.patch diff --git a/CraftBukkit-Patches/0107-Correct-Ban-Expiration.patch b/CraftBukkit-Patches/0106-Correct-Ban-Expiration.patch similarity index 100% rename from CraftBukkit-Patches/0107-Correct-Ban-Expiration.patch rename to CraftBukkit-Patches/0106-Correct-Ban-Expiration.patch diff --git a/CraftBukkit-Patches/0108-Convert-Horses-owner-to-UUID.patch b/CraftBukkit-Patches/0107-Convert-Horses-owner-to-UUID.patch similarity index 100% rename from CraftBukkit-Patches/0108-Convert-Horses-owner-to-UUID.patch rename to CraftBukkit-Patches/0107-Convert-Horses-owner-to-UUID.patch diff --git a/CraftBukkit-Patches/0109-Expand-team-API-to-allow-arbitrary-strings.patch b/CraftBukkit-Patches/0108-Expand-team-API-to-allow-arbitrary-strings.patch similarity index 100% rename from CraftBukkit-Patches/0109-Expand-team-API-to-allow-arbitrary-strings.patch rename to CraftBukkit-Patches/0108-Expand-team-API-to-allow-arbitrary-strings.patch diff --git a/CraftBukkit-Patches/0110-Add-Score.isScoreSet-Z-API.patch b/CraftBukkit-Patches/0109-Add-Score.isScoreSet-Z-API.patch similarity index 100% rename from CraftBukkit-Patches/0110-Add-Score.isScoreSet-Z-API.patch rename to CraftBukkit-Patches/0109-Add-Score.isScoreSet-Z-API.patch diff --git a/CraftBukkit-Patches/0111-Log-null-TileEntity-Owner.patch b/CraftBukkit-Patches/0110-Log-null-TileEntity-Owner.patch similarity index 100% rename from CraftBukkit-Patches/0111-Log-null-TileEntity-Owner.patch rename to CraftBukkit-Patches/0110-Log-null-TileEntity-Owner.patch diff --git a/CraftBukkit-Patches/0112-Don-t-special-case-invalid-usernames-for-UUIDs.patch b/CraftBukkit-Patches/0111-Don-t-special-case-invalid-usernames-for-UUIDs.patch similarity index 100% rename from CraftBukkit-Patches/0112-Don-t-special-case-invalid-usernames-for-UUIDs.patch rename to CraftBukkit-Patches/0111-Don-t-special-case-invalid-usernames-for-UUIDs.patch diff --git a/CraftBukkit-Patches/0113-Convert-player-skulls-async.patch b/CraftBukkit-Patches/0112-Convert-player-skulls-async.patch similarity index 98% rename from CraftBukkit-Patches/0113-Convert-player-skulls-async.patch rename to CraftBukkit-Patches/0112-Convert-player-skulls-async.patch index 50f29adbdc..b0f54d178a 100644 --- a/CraftBukkit-Patches/0113-Convert-player-skulls-async.patch +++ b/CraftBukkit-Patches/0112-Convert-player-skulls-async.patch @@ -103,7 +103,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + + if ( property == null ) + { -+ profile = MinecraftServer.getServer().aC().fillProfileProperties( profile, true ); ++ profile = MinecraftServer.getServer().aD().fillProfileProperties( profile, true ); + } + } + @@ -129,7 +129,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + + @Override + public boolean apply(GameProfile input) { -+ setSkullType( 3 ); // Work around client bug ++ setSkullType(3); // Work around client bug + g = input; + update(); + if (world != null) { @@ -163,7 +163,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 - Property property = (Property) Iterables.getFirst(gameprofile1.getProperties().get("textures"), (Object) null); - - if (property == null) { -- gameprofile1 = MinecraftServer.getServer().aC().fillProfileProperties(gameprofile1, true); +- gameprofile1 = MinecraftServer.getServer().aD().fillProfileProperties(gameprofile1, true); - } - - return gameprofile1; diff --git a/CraftBukkit-Patches/0114-Prevent-NoClassDefError-crash-and-notify-on-crash.patch b/CraftBukkit-Patches/0113-Prevent-NoClassDefError-crash-and-notify-on-crash.patch similarity index 100% rename from CraftBukkit-Patches/0114-Prevent-NoClassDefError-crash-and-notify-on-crash.patch rename to CraftBukkit-Patches/0113-Prevent-NoClassDefError-crash-and-notify-on-crash.patch diff --git a/CraftBukkit-Patches/0115-Check-Skull-canPlace.patch b/CraftBukkit-Patches/0114-Check-Skull-canPlace.patch similarity index 100% rename from CraftBukkit-Patches/0115-Check-Skull-canPlace.patch rename to CraftBukkit-Patches/0114-Check-Skull-canPlace.patch diff --git a/CraftBukkit-Patches/0116-Fix-race-condition-that-could-kill-connections-befor.patch b/CraftBukkit-Patches/0115-Fix-race-condition-that-could-kill-connections-befor.patch similarity index 88% rename from CraftBukkit-Patches/0116-Fix-race-condition-that-could-kill-connections-befor.patch rename to CraftBukkit-Patches/0115-Fix-race-condition-that-could-kill-connections-befor.patch index 7ed08a23c8..de06a08f69 100644 --- a/CraftBukkit-Patches/0116-Fix-race-condition-that-could-kill-connections-befor.patch +++ b/CraftBukkit-Patches/0115-Fix-race-condition-that-could-kill-connections-befor.patch @@ -12,7 +12,7 @@ initialized. The ServerConnection does not remove NetworkManagers with this flag. diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java -index 1c28c940..c71150a 100644 +index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 --- a/src/main/java/net/minecraft/server/NetworkManager.java +++ b/src/main/java/net/minecraft/server/NetworkManager.java @@ -0,0 +0,0 @@ public class NetworkManager extends SimpleChannelInboundHandler { @@ -25,8 +25,8 @@ index 1c28c940..c71150a 100644 private IChatBaseComponent n; @@ -0,0 +0,0 @@ public class NetworkManager extends SimpleChannelInboundHandler { super.channelActive(channelhandlercontext); - this.k = channelhandlercontext.channel(); - this.l = this.k.remoteAddress(); + this.channel = channelhandlercontext.channel(); + this.l = this.channel.remoteAddress(); + // Spigot Start + this.preparing = false; + // Spigot End @@ -40,8 +40,8 @@ index 1c28c940..c71150a 100644 + // Spigot Start + this.preparing = false; + // Spigot End - if (this.k.isOpen()) { - this.k.close(); // We can't wait as this may be called from an event loop. + if (this.channel.isOpen()) { + this.channel.close(); // We can't wait as this may be called from an event loop. this.n = ichatbasecomponent; diff --git a/src/main/java/net/minecraft/server/ServerConnection.java b/src/main/java/net/minecraft/server/ServerConnection.java index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 diff --git a/CraftBukkit-Patches/0117-Configurable-UserCache-cap.patch b/CraftBukkit-Patches/0116-Configurable-UserCache-cap.patch similarity index 100% rename from CraftBukkit-Patches/0117-Configurable-UserCache-cap.patch rename to CraftBukkit-Patches/0116-Configurable-UserCache-cap.patch diff --git a/CraftBukkit-Patches/0118-Implement-PlayerSpawnLocationEvent.patch b/CraftBukkit-Patches/0117-Implement-PlayerSpawnLocationEvent.patch similarity index 100% rename from CraftBukkit-Patches/0118-Implement-PlayerSpawnLocationEvent.patch rename to CraftBukkit-Patches/0117-Implement-PlayerSpawnLocationEvent.patch diff --git a/CraftBukkit-Patches/0119-Cap-Objective-Score-Length.patch b/CraftBukkit-Patches/0118-Cap-Objective-Score-Length.patch similarity index 100% rename from CraftBukkit-Patches/0119-Cap-Objective-Score-Length.patch rename to CraftBukkit-Patches/0118-Cap-Objective-Score-Length.patch diff --git a/CraftBukkit-Patches/0120-Process-conversation-input-on-the-main-thread.-Fixes.patch b/CraftBukkit-Patches/0119-Process-conversation-input-on-the-main-thread.-Fixes.patch similarity index 100% rename from CraftBukkit-Patches/0120-Process-conversation-input-on-the-main-thread.-Fixes.patch rename to CraftBukkit-Patches/0119-Process-conversation-input-on-the-main-thread.-Fixes.patch diff --git a/CraftBukkit-Patches/0121-Configurable-save-on-stop-only-for-UserCache.patch b/CraftBukkit-Patches/0120-Configurable-save-on-stop-only-for-UserCache.patch similarity index 100% rename from CraftBukkit-Patches/0121-Configurable-save-on-stop-only-for-UserCache.patch rename to CraftBukkit-Patches/0120-Configurable-save-on-stop-only-for-UserCache.patch diff --git a/CraftBukkit-Patches/0122-Prevent-Unbounded-IntCache-Growth.patch b/CraftBukkit-Patches/0121-Prevent-Unbounded-IntCache-Growth.patch similarity index 100% rename from CraftBukkit-Patches/0122-Prevent-Unbounded-IntCache-Growth.patch rename to CraftBukkit-Patches/0121-Prevent-Unbounded-IntCache-Growth.patch diff --git a/CraftBukkit-Patches/0123-Add-damager-to-the-unhandled-error.patch b/CraftBukkit-Patches/0122-Add-damager-to-the-unhandled-error.patch similarity index 100% rename from CraftBukkit-Patches/0123-Add-damager-to-the-unhandled-error.patch rename to CraftBukkit-Patches/0122-Add-damager-to-the-unhandled-error.patch diff --git a/CraftBukkit-Patches/0124-Cross-World-Entity-Teleportation.patch b/CraftBukkit-Patches/0123-Cross-World-Entity-Teleportation.patch similarity index 100% rename from CraftBukkit-Patches/0124-Cross-World-Entity-Teleportation.patch rename to CraftBukkit-Patches/0123-Cross-World-Entity-Teleportation.patch diff --git a/CraftBukkit-Patches/0125-Limit-block-placement-interaction-packets.patch b/CraftBukkit-Patches/0124-Limit-block-placement-interaction-packets.patch similarity index 81% rename from CraftBukkit-Patches/0125-Limit-block-placement-interaction-packets.patch rename to CraftBukkit-Patches/0124-Limit-block-placement-interaction-packets.patch index f20254e063..b385c939a4 100644 --- a/CraftBukkit-Patches/0125-Limit-block-placement-interaction-packets.patch +++ b/CraftBukkit-Patches/0124-Limit-block-placement-interaction-packets.patch @@ -38,7 +38,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 public void a(PacketPlayInBlockPlace packetplayinblockplace) { PlayerConnectionUtils.ensureMainThread(packetplayinblockplace, this, this.player.u()); WorldServer worldserver = this.minecraftServer.getWorldServer(this.player.dimension); -- + boolean throttled = false; + if (lastPlace != -1 && packetplayinblockplace.timestamp - lastPlace < 30 && packets++ >= 4) { + throttled = true; @@ -48,10 +47,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + packets = 0; + } + // Spigot end -+ + // CraftBukkit start if (this.player.dead) return; - @@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn, IUpdatePlayerList // CraftBukkit start @@ -80,24 +78,4 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 } flag = true; -@@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn, IUpdatePlayerList - public void a(PacketPlayInArmAnimation packetplayinarmanimation) { - if (this.player.dead) return; // CraftBukkit - PlayerConnectionUtils.ensureMainThread(packetplayinarmanimation, this, this.player.u()); -+ // Spigot start -+ boolean throttled = false; -+ if (lastPlace != -1 && packetplayinarmanimation.timestamp - lastPlace < 30 && packets++ >= 4) { -+ throttled = true; -+ } else if ( packetplayinarmanimation.timestamp - lastPlace >= 30 || lastPlace == -1 ) -+ { -+ lastPlace = packetplayinarmanimation.timestamp; -+ packets = 0; -+ } -+ if (throttled) { -+ return; -+ } -+ // Spigot end - this.player.z(); - // CraftBukkit start - Raytrace to look for 'rogue armswings' - float f1 = this.player.pitch; -- \ No newline at end of file diff --git a/CraftBukkit-Patches/0126-Better-item-validation.patch b/CraftBukkit-Patches/0125-Better-item-validation.patch similarity index 100% rename from CraftBukkit-Patches/0126-Better-item-validation.patch rename to CraftBukkit-Patches/0125-Better-item-validation.patch diff --git a/CraftBukkit-Patches/0127-Further-Seed-Customisation.patch b/CraftBukkit-Patches/0126-Further-Seed-Customisation.patch similarity index 100% rename from CraftBukkit-Patches/0127-Further-Seed-Customisation.patch rename to CraftBukkit-Patches/0126-Further-Seed-Customisation.patch diff --git a/CraftBukkit-Patches/0128-Disable-ResourceLeakDetector.patch b/CraftBukkit-Patches/0127-Disable-ResourceLeakDetector.patch similarity index 100% rename from CraftBukkit-Patches/0128-Disable-ResourceLeakDetector.patch rename to CraftBukkit-Patches/0127-Disable-ResourceLeakDetector.patch diff --git a/CraftBukkit-Patches/0129-Add-More-Information-to-session.lock-Errors.patch b/CraftBukkit-Patches/0128-Add-More-Information-to-session.lock-Errors.patch similarity index 100% rename from CraftBukkit-Patches/0129-Add-More-Information-to-session.lock-Errors.patch rename to CraftBukkit-Patches/0128-Add-More-Information-to-session.lock-Errors.patch diff --git a/CraftBukkit-Patches/0130-Safer-JSON-Loading.patch b/CraftBukkit-Patches/0129-Safer-JSON-Loading.patch similarity index 79% rename from CraftBukkit-Patches/0130-Safer-JSON-Loading.patch rename to CraftBukkit-Patches/0129-Safer-JSON-Loading.patch index c4b68cc2ba..9e1264ed2e 100644 --- a/CraftBukkit-Patches/0130-Safer-JSON-Loading.patch +++ b/CraftBukkit-Patches/0129-Safer-JSON-Loading.patch @@ -31,15 +31,15 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/net/minecraft/server/UserCache.java +++ b/src/main/java/net/minecraft/server/UserCache.java @@ -0,0 +0,0 @@ public class UserCache { - break label64; - } catch (FileNotFoundException filenotfoundexception) { - ; -+ // Spigot Start -+ } catch (com.google.gson.JsonSyntaxException ex) { -+ JsonList.a.warn( "Usercache.json is corrupted or has bad formatting. Deleting it to prevent further issues." ); -+ this.g.delete(); -+ // Spigot End - } finally { - IOUtils.closeQuietly(bufferedreader); } + } catch (FileNotFoundException filenotfoundexception) { + ; ++ // Spigot Start ++ } catch (com.google.gson.JsonSyntaxException ex) { ++ JsonList.a.warn( "Usercache.json is corrupted or has bad formatting. Deleting it to prevent further issues." ); ++ this.g.delete(); ++ // Spigot End + } catch (JsonParseException jsonparseexception) { + ; + } finally { -- \ No newline at end of file diff --git a/CraftBukkit-Patches/0131-Fix-Slow-Loading-Libraries.patch b/CraftBukkit-Patches/0130-Fix-Slow-Loading-Libraries.patch similarity index 100% rename from CraftBukkit-Patches/0131-Fix-Slow-Loading-Libraries.patch rename to CraftBukkit-Patches/0130-Fix-Slow-Loading-Libraries.patch diff --git a/CraftBukkit-Patches/0132-Add-CommandLine-EULA-Flag.patch b/CraftBukkit-Patches/0131-Add-CommandLine-EULA-Flag.patch similarity index 100% rename from CraftBukkit-Patches/0132-Add-CommandLine-EULA-Flag.patch rename to CraftBukkit-Patches/0131-Add-CommandLine-EULA-Flag.patch diff --git a/CraftBukkit-Patches/0133-Fix-for-enchanting-table-wiping-meta-when-placing-st.patch b/CraftBukkit-Patches/0132-Fix-for-enchanting-table-wiping-meta-when-placing-st.patch similarity index 100% rename from CraftBukkit-Patches/0133-Fix-for-enchanting-table-wiping-meta-when-placing-st.patch rename to CraftBukkit-Patches/0132-Fix-for-enchanting-table-wiping-meta-when-placing-st.patch diff --git a/CraftBukkit-Patches/0134-Don-t-spawn-bonus-ocelots-when-plugins-spawn-ocelots.patch b/CraftBukkit-Patches/0133-Don-t-spawn-bonus-ocelots-when-plugins-spawn-ocelots.patch similarity index 100% rename from CraftBukkit-Patches/0134-Don-t-spawn-bonus-ocelots-when-plugins-spawn-ocelots.patch rename to CraftBukkit-Patches/0133-Don-t-spawn-bonus-ocelots-when-plugins-spawn-ocelots.patch diff --git a/CraftBukkit-Patches/0135-Prevent-a-crash-involving-attributes.patch b/CraftBukkit-Patches/0134-Prevent-a-crash-involving-attributes.patch similarity index 100% rename from CraftBukkit-Patches/0135-Prevent-a-crash-involving-attributes.patch rename to CraftBukkit-Patches/0134-Prevent-a-crash-involving-attributes.patch diff --git a/CraftBukkit-Patches/0136-Make-moved-wrongly-limit-configurable.patch b/CraftBukkit-Patches/0135-Make-moved-wrongly-limit-configurable.patch similarity index 90% rename from CraftBukkit-Patches/0136-Make-moved-wrongly-limit-configurable.patch rename to CraftBukkit-Patches/0135-Make-moved-wrongly-limit-configurable.patch index 411e27e20d..9ccb19bc40 100644 --- a/CraftBukkit-Patches/0136-Make-moved-wrongly-limit-configurable.patch +++ b/CraftBukkit-Patches/0135-Make-moved-wrongly-limit-configurable.patch @@ -9,12 +9,12 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn, IUpdatePlayerList - d17 = d11 * d11 + d12 * d12 + d13 * d13; + d15 = d11 * d11 + d12 * d12 + d13 * d13; boolean flag1 = false; -- if (d17 > 0.0625D && !this.player.isSleeping() && !this.player.playerInteractManager.isCreative()) { +- if (d15 > 0.0625D && !this.player.isSleeping() && !this.player.playerInteractManager.isCreative()) { + // Spigot: make "moved wrongly" limit configurable -+ if (d17 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.playerInteractManager.isCreative()) { ++ if (d15 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.playerInteractManager.isCreative()) { flag1 = true; PlayerConnection.c.warn(this.player.getName() + " moved wrongly!"); } diff --git a/CraftBukkit-Patches/0137-Fix-Null-Tile-Entity-Worlds.patch b/CraftBukkit-Patches/0136-Fix-Null-Tile-Entity-Worlds.patch similarity index 100% rename from CraftBukkit-Patches/0137-Fix-Null-Tile-Entity-Worlds.patch rename to CraftBukkit-Patches/0136-Fix-Null-Tile-Entity-Worlds.patch diff --git a/CraftBukkit-Patches/0138-Make-moved-too-quickly-limit-configurable.patch b/CraftBukkit-Patches/0137-Make-moved-too-quickly-limit-configurable.patch similarity index 67% rename from CraftBukkit-Patches/0138-Make-moved-too-quickly-limit-configurable.patch rename to CraftBukkit-Patches/0137-Make-moved-too-quickly-limit-configurable.patch index fa72e8da7a..be7f7bc636 100644 --- a/CraftBukkit-Patches/0138-Make-moved-too-quickly-limit-configurable.patch +++ b/CraftBukkit-Patches/0137-Make-moved-too-quickly-limit-configurable.patch @@ -9,13 +9,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java @@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn, IUpdatePlayerList - // CraftBukkit end - double d17 = d14 * d14 + d15 * d15 + d16 * d16; + double d14 = this.player.motX * this.player.motX + this.player.motY * this.player.motY + this.player.motZ * this.player.motZ; + double d15 = d11 * d11 + d12 * d12 + d13 * d13; -- if (d17 > 100.0D && this.checkMovement && (!this.minecraftServer.S() || !this.minecraftServer.R().equals(this.player.getName()))) { // CraftBukkit - Added this.checkMovement condition to solve this check being triggered by teleports +- if (d15 - d14 > 100.0D && this.checkMovement && (!this.minecraftServer.T() || !this.minecraftServer.S().equals(this.player.getName()))) { // CraftBukkit - Added this.checkMovement condition to solve this check being triggered by teleports + // Spigot: make "moved too quickly" limit configurable -+ if (d17 > org.spigotmc.SpigotConfig.movedTooQuicklyThreshold && this.checkMovement && (!this.minecraftServer.S() || !this.minecraftServer.R().equals(this.player.getName()))) { // CraftBukkit - Added this.checkMovement condition to solve this check being triggered by teleports - PlayerConnection.c.warn(this.player.getName() + " moved too quickly! " + d11 + "," + d12 + "," + d13 + " (" + d14 + ", " + d15 + ", " + d16 + ")"); ++ if (d15 - d14 > org.spigotmc.SpigotConfig.movedTooQuicklyThreshold && this.checkMovement && (!this.minecraftServer.T() || !this.minecraftServer.S().equals(this.player.getName()))) { // CraftBukkit - Added this.checkMovement condition to solve this check being triggered by teleports + PlayerConnection.c.warn(this.player.getName() + " moved too quickly! " + d11 + "," + d12 + "," + d13 + " (" + d11 + ", " + d12 + ", " + d13 + ")"); this.a(this.o, this.p, this.q, this.player.yaw, this.player.pitch); return; diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java diff --git a/CraftBukkit-Patches/0139-Apply-NBTReadLimiter-to-more-things.patch b/CraftBukkit-Patches/0138-Apply-NBTReadLimiter-to-more-things.patch similarity index 100% rename from CraftBukkit-Patches/0139-Apply-NBTReadLimiter-to-more-things.patch rename to CraftBukkit-Patches/0138-Apply-NBTReadLimiter-to-more-things.patch diff --git a/CraftBukkit-Patches/0140-Allow-Attribute-Capping.patch b/CraftBukkit-Patches/0139-Allow-Attribute-Capping.patch similarity index 74% rename from CraftBukkit-Patches/0140-Allow-Attribute-Capping.patch rename to CraftBukkit-Patches/0139-Allow-Attribute-Capping.patch index c1ca6894e0..6eb5c6d76e 100644 --- a/CraftBukkit-Patches/0140-Allow-Attribute-Capping.patch +++ b/CraftBukkit-Patches/0139-Allow-Attribute-Capping.patch @@ -28,13 +28,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 private static final Logger f = LogManager.getLogger(); - public static final IAttribute maxHealth = (new AttributeRanged((IAttribute) null, "generic.maxHealth", 20.0D, 0.0D, Double.MAX_VALUE)).a("Max Health").a(true); + // Spigot start -+ public static final IAttribute maxHealth = (new AttributeRanged((IAttribute) null, "generic.maxHealth", 20.0D, 0.1D, org.spigotmc.SpigotConfig.maxHealth)).a("Max Health").a(true); - public static final IAttribute b = (new AttributeRanged((IAttribute) null, "generic.followRange", 32.0D, 0.0D, 2048.0D)).a("Follow Range"); ++ public static final IAttribute maxHealth = (new AttributeRanged((IAttribute) null, "generic.maxHealth", 20.0D, 0.1D, org.spigotmc.SpigotConfig.maxHealth)).a("Max Health").a(true); + public static final IAttribute FOLLOW_RANGE = (new AttributeRanged((IAttribute) null, "generic.followRange", 32.0D, 0.0D, 2048.0D)).a("Follow Range"); public static final IAttribute c = (new AttributeRanged((IAttribute) null, "generic.knockbackResistance", 0.0D, 0.0D, 1.0D)).a("Knockback Resistance"); -- public static final IAttribute d = (new AttributeRanged((IAttribute) null, "generic.movementSpeed", 0.699999988079071D, 0.0D, Double.MAX_VALUE)).a("Movement Speed").a(true); -- public static final IAttribute e = new AttributeRanged((IAttribute) null, "generic.attackDamage", 2.0D, 0.0D, Double.MAX_VALUE); -+ public static final IAttribute d = (new AttributeRanged((IAttribute) null, "generic.movementSpeed", 0.699999988079071D, 0.0D, org.spigotmc.SpigotConfig.movementSpeed)).a("Movement Speed").a(true); -+ public static final IAttribute e = new AttributeRanged((IAttribute) null, "generic.attackDamage", 2.0D, 0.0D, org.spigotmc.SpigotConfig.attackDamage); +- public static final IAttribute MOVEMENT_SPEED = (new AttributeRanged((IAttribute) null, "generic.movementSpeed", 0.699999988079071D, 0.0D, Double.MAX_VALUE)).a("Movement Speed").a(true); +- public static final IAttribute ATTACK_DAMAGE = new AttributeRanged((IAttribute) null, "generic.attackDamage", 2.0D, 0.0D, Double.MAX_VALUE); ++ public static final IAttribute MOVEMENT_SPEED = (new AttributeRanged((IAttribute) null, "generic.movementSpeed", 0.699999988079071D, 0.0D, org.spigotmc.SpigotConfig.movementSpeed)).a("Movement Speed").a(true); ++ public static final IAttribute ATTACK_DAMAGE = new AttributeRanged((IAttribute) null, "generic.attackDamage", 2.0D, 0.0D, org.spigotmc.SpigotConfig.attackDamage); + // Spigot end public static NBTTagList a(AttributeMapBase attributemapbase) { @@ -65,9 +65,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + maxHealth = getDouble( "settings.attribute.maxHealth.max", maxHealth ); + ( (AttributeRanged) GenericAttributes.maxHealth ).b = maxHealth; + movementSpeed = getDouble( "settings.attribute.movementSpeed.max", movementSpeed ); -+ ( (AttributeRanged) GenericAttributes.d ).b = movementSpeed; ++ ( (AttributeRanged) GenericAttributes.MOVEMENT_SPEED ).b = movementSpeed; + attackDamage = getDouble( "settings.attribute.attackDamage.max", attackDamage ); -+ ( (AttributeRanged) GenericAttributes.e ).b = attackDamage; ++ ( (AttributeRanged) GenericAttributes.ATTACK_DAMAGE ).b = attackDamage; + } } -- \ No newline at end of file diff --git a/CraftBukkit-Patches/0141-Only-fetch-an-online-UUID-in-online-mode.patch b/CraftBukkit-Patches/0140-Only-fetch-an-online-UUID-in-online-mode.patch similarity index 100% rename from CraftBukkit-Patches/0141-Only-fetch-an-online-UUID-in-online-mode.patch rename to CraftBukkit-Patches/0140-Only-fetch-an-online-UUID-in-online-mode.patch diff --git a/CraftBukkit-Patches/0142-Filter-attribute-modifiers-which-cause-the-attribute.patch b/CraftBukkit-Patches/0141-Filter-attribute-modifiers-which-cause-the-attribute.patch similarity index 98% rename from CraftBukkit-Patches/0142-Filter-attribute-modifiers-which-cause-the-attribute.patch rename to CraftBukkit-Patches/0141-Filter-attribute-modifiers-which-cause-the-attribute.patch index 64e231e35c..db5b5232ca 100644 --- a/CraftBukkit-Patches/0142-Filter-attribute-modifiers-which-cause-the-attribute.patch +++ b/CraftBukkit-Patches/0141-Filter-attribute-modifiers-which-cause-the-attribute.patch @@ -29,13 +29,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + attributeTracker.put( "generic.maxHealth", 20.0 ); + attributesByName.put( "generic.maxHealth", GenericAttributes.maxHealth ); + attributeTracker.put( "generic.followRange", 32.0 ); -+ attributesByName.put( "generic.followRange", GenericAttributes.b ); ++ attributesByName.put( "generic.followRange", GenericAttributes.FOLLOW_RANGE ); + attributeTracker.put( "generic.knockbackResistance", 0.0 ); + attributesByName.put( "generic.knockbackResistance", GenericAttributes.c ); + attributeTracker.put( "generic.movementSpeed", 0.7 ); -+ attributesByName.put( "generic.movementSpeed", GenericAttributes.d ); ++ attributesByName.put( "generic.movementSpeed", GenericAttributes.MOVEMENT_SPEED ); + attributeTracker.put( "generic.attackDamage", 1.0 ); -+ attributesByName.put( "generic.attackDamage", GenericAttributes.e ); ++ attributesByName.put( "generic.attackDamage", GenericAttributes.ATTACK_DAMAGE ); + NBTTagList oldList = nbttaglist; + nbttaglist = new NBTTagList(); + diff --git a/CraftBukkit-Patches/0143-Plug-WorldMap-Memory-Leak.patch b/CraftBukkit-Patches/0142-Plug-WorldMap-Memory-Leak.patch similarity index 100% rename from CraftBukkit-Patches/0143-Plug-WorldMap-Memory-Leak.patch rename to CraftBukkit-Patches/0142-Plug-WorldMap-Memory-Leak.patch diff --git a/CraftBukkit-Patches/0144-Fix-Corrupted-Trapped-Chest.patch b/CraftBukkit-Patches/0143-Fix-Corrupted-Trapped-Chest.patch similarity index 100% rename from CraftBukkit-Patches/0144-Fix-Corrupted-Trapped-Chest.patch rename to CraftBukkit-Patches/0143-Fix-Corrupted-Trapped-Chest.patch diff --git a/CraftBukkit-Patches/0145-Remove-uneeded-validation.patch b/CraftBukkit-Patches/0144-Remove-uneeded-validation.patch similarity index 100% rename from CraftBukkit-Patches/0145-Remove-uneeded-validation.patch rename to CraftBukkit-Patches/0144-Remove-uneeded-validation.patch diff --git a/CraftBukkit-Patches/0146-Add-Hunger-Config-Values.patch b/CraftBukkit-Patches/0145-Add-Hunger-Config-Values.patch similarity index 100% rename from CraftBukkit-Patches/0146-Add-Hunger-Config-Values.patch rename to CraftBukkit-Patches/0145-Add-Hunger-Config-Values.patch diff --git a/CraftBukkit-Patches/0147-Make-debug-logging-togglable.patch b/CraftBukkit-Patches/0146-Make-debug-logging-togglable.patch similarity index 96% rename from CraftBukkit-Patches/0147-Make-debug-logging-togglable.patch rename to CraftBukkit-Patches/0146-Make-debug-logging-togglable.patch index 3adbaf20ac..6dafbdbea4 100644 --- a/CraftBukkit-Patches/0147-Make-debug-logging-togglable.patch +++ b/CraftBukkit-Patches/0146-Make-debug-logging-togglable.patch @@ -20,7 +20,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 import org.bukkit.command.Command; @@ -0,0 +0,0 @@ public class SpigotConfig attackDamage = getDouble( "settings.attribute.attackDamage.max", attackDamage ); - ( (AttributeRanged) GenericAttributes.e ).b = attackDamage; + ( (AttributeRanged) GenericAttributes.ATTACK_DAMAGE ).b = attackDamage; } + + public static boolean debug; diff --git a/CraftBukkit-Patches/0148-Skip-invalid-enchants-in-CraftMetaItem.patch b/CraftBukkit-Patches/0147-Skip-invalid-enchants-in-CraftMetaItem.patch similarity index 100% rename from CraftBukkit-Patches/0148-Skip-invalid-enchants-in-CraftMetaItem.patch rename to CraftBukkit-Patches/0147-Skip-invalid-enchants-in-CraftMetaItem.patch diff --git a/CraftBukkit-Patches/0149-Limit-TNT-Detonations-per-tick.patch b/CraftBukkit-Patches/0148-Limit-TNT-Detonations-per-tick.patch similarity index 100% rename from CraftBukkit-Patches/0149-Limit-TNT-Detonations-per-tick.patch rename to CraftBukkit-Patches/0148-Limit-TNT-Detonations-per-tick.patch diff --git a/CraftBukkit-Patches/0150-Added-isUnbreakable-and-setUnbreakable-to-ItemMeta.patch b/CraftBukkit-Patches/0149-Added-isUnbreakable-and-setUnbreakable-to-ItemMeta.patch similarity index 100% rename from CraftBukkit-Patches/0150-Added-isUnbreakable-and-setUnbreakable-to-ItemMeta.patch rename to CraftBukkit-Patches/0149-Added-isUnbreakable-and-setUnbreakable-to-ItemMeta.patch diff --git a/CraftBukkit-Patches/0151-Configurable-Hanging-Tick.patch b/CraftBukkit-Patches/0150-Configurable-Hanging-Tick.patch similarity index 100% rename from CraftBukkit-Patches/0151-Configurable-Hanging-Tick.patch rename to CraftBukkit-Patches/0150-Configurable-Hanging-Tick.patch diff --git a/CraftBukkit-Patches/0153-Refactor-ItemDoor-Place.patch b/CraftBukkit-Patches/0151-Refactor-ItemDoor-Place.patch similarity index 100% rename from CraftBukkit-Patches/0153-Refactor-ItemDoor-Place.patch rename to CraftBukkit-Patches/0151-Refactor-ItemDoor-Place.patch diff --git a/CraftBukkit-Patches/0154-BungeeCord-Chat-API.patch b/CraftBukkit-Patches/0152-BungeeCord-Chat-API.patch similarity index 100% rename from CraftBukkit-Patches/0154-BungeeCord-Chat-API.patch rename to CraftBukkit-Patches/0152-BungeeCord-Chat-API.patch diff --git a/CraftBukkit-Patches/0152-Fix-Some-Memory-Leaks.patch b/CraftBukkit-Patches/0152-Fix-Some-Memory-Leaks.patch deleted file mode 100644 index 5ce20aa106..0000000000 --- a/CraftBukkit-Patches/0152-Fix-Some-Memory-Leaks.patch +++ /dev/null @@ -1,129 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: md_5 -Date: Sun, 21 Sep 2014 10:06:01 +1000 -Subject: [PATCH] Fix Some Memory Leaks - - -diff --git a/src/main/java/net/minecraft/server/EnchantmentManager.java b/src/main/java/net/minecraft/server/EnchantmentManager.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/net/minecraft/server/EnchantmentManager.java -+++ b/src/main/java/net/minecraft/server/EnchantmentManager.java -@@ -0,0 +0,0 @@ public class EnchantmentManager { - if (entity instanceof EntityHuman) { - a((EnchantmentManager.EnchantmentModifier) EnchantmentManager.d, entityliving.bA()); - } -- -+ // Spigot start -+ d.b = null; -+ d.a = null; -+ // Spigot end - } - - public static void b(EntityLiving entityliving, Entity entity) { -@@ -0,0 +0,0 @@ public class EnchantmentManager { - if (entityliving instanceof EntityHuman) { - a((EnchantmentManager.EnchantmentModifier) EnchantmentManager.e, entityliving.bA()); - } -- -+ // Spigot start -+ e.a = null; -+ e.b = null; -+ // Spigot end - } - - public static int a(EntityLiving entityliving) { -diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/net/minecraft/server/EntityInsentient.java -+++ b/src/main/java/net/minecraft/server/EntityInsentient.java -@@ -0,0 +0,0 @@ - package net.minecraft.server; - -+import java.lang.ref.WeakReference; // Spigot - import java.util.Iterator; - import java.util.List; - import java.util.UUID; -@@ -0,0 +0,0 @@ public abstract class EntityInsentient extends EntityLiving { - protected NavigationAbstract navigation; - public PathfinderGoalSelector goalSelector; // CraftBukkit - public - public PathfinderGoalSelector targetSelector; // CraftBukkit - public -- private EntityLiving goalTarget; -+ private WeakReference goalTarget = new WeakReference(null); - private EntitySenses bk; - private ItemStack[] equipment = new ItemStack[5]; - public float[] dropChances = new float[5]; // CraftBukkit - public -@@ -0,0 +0,0 @@ public abstract class EntityInsentient extends EntityLiving { - } - - public EntityLiving getGoalTarget() { -- return this.goalTarget; -+ return this.goalTarget.get(); // Spigot - } - - public void setGoalTarget(EntityLiving entityliving) { -@@ -0,0 +0,0 @@ public abstract class EntityInsentient extends EntityLiving { - entityliving = null; - } - } -- this.goalTarget = entityliving; -+ this.goalTarget = new WeakReference(entityliving); // Spigot - // CraftBukkit end - } - -diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/net/minecraft/server/NetworkManager.java -+++ b/src/main/java/net/minecraft/server/NetworkManager.java -@@ -0,0 +0,0 @@ public class NetworkManager extends SimpleChannelInboundHandler { - public void close(IChatBaseComponent ichatbasecomponent) { - // Spigot Start - this.preparing = false; -+ this.i.clear(); - // Spigot End - if (this.k.isOpen()) { - this.k.close(); // We can't wait as this may be called from an event loop. -diff --git a/src/main/java/net/minecraft/server/PathfinderGoalSwell.java b/src/main/java/net/minecraft/server/PathfinderGoalSwell.java -index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644 ---- a/src/main/java/net/minecraft/server/PathfinderGoalSwell.java -+++ b/src/main/java/net/minecraft/server/PathfinderGoalSwell.java -@@ -0,0 +0,0 @@ package net.minecraft.server; - public class PathfinderGoalSwell extends PathfinderGoal { - - EntityCreeper a; -- EntityLiving b; -+ // EntityLiving b; // Spigot - - public PathfinderGoalSwell(EntityCreeper entitycreeper) { - this.a = entitycreeper; -@@ -0,0 +0,0 @@ public class PathfinderGoalSwell extends PathfinderGoal { - - public void c() { - this.a.getNavigation().n(); -- this.b = this.a.getGoalTarget(); -+ // this.b = this.a.getGoalTarget(); // Spigot - } - - public void d() { -- this.b = null; -+ // this.b = null; // Spigot - } - - public void e() { -- if (this.b == null) { -+ // Spigot start -+ EntityLiving b = this.a.getGoalTarget(); -+ if (b == null) { - this.a.a(-1); -- } else if (this.a.h(this.b) > 49.0D) { -+ } else if (this.a.h(b) > 49.0D) { - this.a.a(-1); -- } else if (!this.a.getEntitySenses().a(this.b)) { -+ } else if (!this.a.getEntitySenses().a(b)) { - this.a.a(-1); - } else { - this.a.a(1); - } -+ // Spigot end - } - } --- \ No newline at end of file diff --git a/CraftBukkit-Patches/0155-Use-Standard-List-for-EntitySlices.patch b/CraftBukkit-Patches/0153-Use-Standard-List-for-EntitySlices.patch similarity index 100% rename from CraftBukkit-Patches/0155-Use-Standard-List-for-EntitySlices.patch rename to CraftBukkit-Patches/0153-Use-Standard-List-for-EntitySlices.patch diff --git a/CraftBukkit-Patches/0156-Allow-Capping-Tile-Entity-Tick-Time.patch b/CraftBukkit-Patches/0154-Allow-Capping-Tile-Entity-Tick-Time.patch similarity index 100% rename from CraftBukkit-Patches/0156-Allow-Capping-Tile-Entity-Tick-Time.patch rename to CraftBukkit-Patches/0154-Allow-Capping-Tile-Entity-Tick-Time.patch diff --git a/CraftBukkit-Patches/0157-Use-FastMatches-for-ItemStack-Dirty-Check.patch b/CraftBukkit-Patches/0155-Use-FastMatches-for-ItemStack-Dirty-Check.patch similarity index 100% rename from CraftBukkit-Patches/0157-Use-FastMatches-for-ItemStack-Dirty-Check.patch rename to CraftBukkit-Patches/0155-Use-FastMatches-for-ItemStack-Dirty-Check.patch diff --git a/CraftBukkit-Patches/0158-Use-CLQ-for-main-thread-tasks.patch b/CraftBukkit-Patches/0156-Use-CLQ-for-main-thread-tasks.patch similarity index 98% rename from CraftBukkit-Patches/0158-Use-CLQ-for-main-thread-tasks.patch rename to CraftBukkit-Patches/0156-Use-CLQ-for-main-thread-tasks.patch index 76fc5bb8f4..64a6bb56d8 100644 --- a/CraftBukkit-Patches/0158-Use-CLQ-for-main-thread-tasks.patch +++ b/CraftBukkit-Patches/0156-Use-CLQ-for-main-thread-tasks.patch @@ -15,7 +15,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 - protected final Queue> j = Queues.newArrayDeque(); + protected final Queue> j = new java.util.concurrent.ConcurrentLinkedQueue>(); // Spigot, PAIL: Rename private Thread serverThread; - private long ab = ay(); + private long ab = az(); @@ -0,0 +0,0 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs this.methodProfiler.a("jobs");