From 421ce6cf7d3cee3f073d28ddf55f32464f6fd899 Mon Sep 17 00:00:00 2001 From: md_5 Date: Sat, 23 Feb 2013 11:50:29 +1100 Subject: [PATCH] Prepare for restart / crash detection rewrite. --- CraftBukkit-Patches/0002-Spigot-changes.patch | 394 ++---------------- ...tch => 0008-Per-world-view-distance.patch} | 8 +- ...te-timeout-time-to-new-default-value.patch | 46 -- ...crop-growth-modifier-formula-issues.patch} | 2 +- ...der-from-mc-dev-for-diff-visibility.patch} | 2 +- ...11-Fix-mcRegion-to-Anvil-conversion.patch} | 2 +- ...-check-to-correctly-resolve-api-ver.patch} | 2 +- ...sed-to-unload-chunks-for-the-client.patch} | 2 +- ....move-if-we-are-not-moving-anywhere.patch} | 4 +- ...free-but-safe-chunk-reference-cache.patch} | 4 +- ...dd-Custom-Timings-to-various-points.patch} | 6 +- ...ter-more-flexible-itemstack-merging.patch} | 4 +- ...> 0018-Add-oreobfuscator-for-Spigot.patch} | 12 +- ...er-of-LivingEntity-collision-checks.patch} | 4 +- ...es-in-chunks-being-processed-for-th.patch} | 2 +- ...ess-often-to-combat-the-lag-they-ca.patch} | 12 +- ...e-and-warn-about-null-tile-entities.patch} | 4 +- ...ation-sleep-for-as-long-as-possible.patch} | 23 +- .../{0025-Netty.patch => 0024-Netty.patch} | 4 +- ...-Range-This-feature-gives-3-new-con.patch} | 34 +- ...-Infrequently-send-tab-list-updates.patch} | 12 +- ...ptimize-getTileEntities-performance.patch} | 2 +- ...ile-entity-lookup-for-chunk-sending.patch} | 2 +- ...the-Metrics-system-to-be-closer-to-.patch} | 8 +- 24 files changed, 95 insertions(+), 500 deletions(-) rename CraftBukkit-Patches/{0009-Per-world-view-distance.patch => 0008-Per-world-view-distance.patch} (95%) delete mode 100644 CraftBukkit-Patches/0008-Update-timeout-time-to-new-default-value.patch rename CraftBukkit-Patches/{0010-Fix-various-crop-growth-modifier-formula-issues.patch => 0009-Fix-various-crop-growth-modifier-formula-issues.patch} (99%) rename CraftBukkit-Patches/{0011-Add-OldChunkLoader-from-mc-dev-for-diff-visibility.patch => 0010-Add-OldChunkLoader-from-mc-dev-for-diff-visibility.patch} (98%) rename CraftBukkit-Patches/{0012-Fix-mcRegion-to-Anvil-conversion.patch => 0011-Fix-mcRegion-to-Anvil-conversion.patch} (95%) rename CraftBukkit-Patches/{0013-Update-versioning-check-to-correctly-resolve-api-ver.patch => 0012-Update-versioning-check-to-correctly-resolve-api-ver.patch} (94%) rename CraftBukkit-Patches/{0014-Optimize-packet-used-to-unload-chunks-for-the-client.patch => 0013-Optimize-packet-used-to-unload-chunks-for-the-client.patch} (97%) rename CraftBukkit-Patches/{0015-Skip-entity.move-if-we-are-not-moving-anywhere.patch => 0014-Skip-entity.move-if-we-are-not-moving-anywhere.patch} (89%) rename CraftBukkit-Patches/{0016-Alternate-sync-free-but-safe-chunk-reference-cache.patch => 0015-Alternate-sync-free-but-safe-chunk-reference-cache.patch} (94%) rename CraftBukkit-Patches/{0017-Add-Custom-Timings-to-various-points.patch => 0016-Add-Custom-Timings-to-various-points.patch} (99%) rename CraftBukkit-Patches/{0018-Better-more-flexible-itemstack-merging.patch => 0017-Better-more-flexible-itemstack-merging.patch} (98%) rename CraftBukkit-Patches/{0019-Add-oreobfuscator-for-Spigot.patch => 0018-Add-oreobfuscator-for-Spigot.patch} (98%) rename CraftBukkit-Patches/{0020-Reduce-number-of-LivingEntity-collision-checks.patch => 0019-Reduce-number-of-LivingEntity-collision-checks.patch} (94%) rename CraftBukkit-Patches/{0021-Only-count-entities-in-chunks-being-processed-for-th.patch => 0020-Only-count-entities-in-chunks-being-processed-for-th.patch} (98%) rename CraftBukkit-Patches/{0022-Send-maps-a-lot-less-often-to-combat-the-lag-they-ca.patch => 0021-Send-maps-a-lot-less-often-to-combat-the-lag-they-ca.patch} (92%) rename CraftBukkit-Patches/{0023-Detect-remove-and-warn-about-null-tile-entities.patch => 0022-Detect-remove-and-warn-about-null-tile-entities.patch} (92%) rename CraftBukkit-Patches/{0024-Tick-loop-optimization-sleep-for-as-long-as-possible.patch => 0023-Tick-loop-optimization-sleep-for-as-long-as-possible.patch} (90%) rename CraftBukkit-Patches/{0025-Netty.patch => 0024-Netty.patch} (99%) rename CraftBukkit-Patches/{0026-Entity-Activation-Range-This-feature-gives-3-new-con.patch => 0025-Entity-Activation-Range-This-feature-gives-3-new-con.patch} (93%) rename CraftBukkit-Patches/{0027-Infrequently-send-tab-list-updates.patch => 0026-Infrequently-send-tab-list-updates.patch} (90%) rename CraftBukkit-Patches/{0028-Optimize-getTileEntities-performance.patch => 0027-Optimize-getTileEntities-performance.patch} (96%) rename CraftBukkit-Patches/{0029-Improved-tile-entity-lookup-for-chunk-sending.patch => 0028-Improved-tile-entity-lookup-for-chunk-sending.patch} (96%) rename CraftBukkit-Patches/{0030-Metrics.patch => 0029-Metrics.-Rewrite-the-Metrics-system-to-be-closer-to-.patch} (99%) diff --git a/CraftBukkit-Patches/0002-Spigot-changes.patch b/CraftBukkit-Patches/0002-Spigot-changes.patch index 08eb580622..e09615f480 100644 --- a/CraftBukkit-Patches/0002-Spigot-changes.patch +++ b/CraftBukkit-Patches/0002-Spigot-changes.patch @@ -1,6 +1,6 @@ -From a07bdb7064b9f0e6408d06ee7e827711d198ddd6 Mon Sep 17 00:00:00 2001 +From 39ee91305fceb9c3c57cfb73471b0e760af3af80 Mon Sep 17 00:00:00 2001 From: md_5 -Date: Sun, 3 Feb 2013 12:21:52 +1100 +Date: Sat, 23 Feb 2013 11:47:02 +1100 Subject: [PATCH] Spigot changes. --- @@ -14,36 +14,27 @@ Subject: [PATCH] Spigot changes. src/main/java/net/minecraft/server/BlockReed.java | 2 +- .../java/net/minecraft/server/BlockSapling.java | 2 +- src/main/java/net/minecraft/server/BlockStem.java | 2 +- - .../net/minecraft/server/ChunkRegionLoader.java | 35 +++- + .../net/minecraft/server/ChunkRegionLoader.java | 35 +++-- .../java/net/minecraft/server/ChunkSection.java | 31 +++- src/main/java/net/minecraft/server/EntityItem.java | 3 +- .../java/net/minecraft/server/EntitySquid.java | 4 - - .../java/net/minecraft/server/MinecraftServer.java | 3 + - .../net/minecraft/server/PlayerConnection.java | 18 +- + .../net/minecraft/server/PlayerConnection.java | 18 ++- src/main/java/net/minecraft/server/PlayerList.java | 10 +- .../net/minecraft/server/ThreadLoginVerifier.java | 23 +++ - src/main/java/net/minecraft/server/World.java | 200 ++++++++++++++++++--- - .../java/net/minecraft/server/WorldServer.java | 121 ++++++++++--- - .../java/org/bukkit/craftbukkit/CraftServer.java | 93 +++++++--- - .../java/org/bukkit/craftbukkit/CraftWorld.java | 76 +++++++- - src/main/java/org/bukkit/craftbukkit/Spigot.java | 23 +++ + src/main/java/net/minecraft/server/World.java | 161 ++++++++++++++++++--- + .../java/net/minecraft/server/WorldServer.java | 121 +++++++++++++--- + .../java/org/bukkit/craftbukkit/CraftServer.java | 45 +++--- + .../java/org/bukkit/craftbukkit/CraftWorld.java | 76 +++++++++- + src/main/java/org/bukkit/craftbukkit/Spigot.java | 20 +++ .../craftbukkit/chunkio/ChunkIOProvider.java | 2 +- - .../bukkit/craftbukkit/command/RestartCommand.java | 24 +++ .../org/bukkit/craftbukkit/entity/CraftPlayer.java | 7 + - .../bukkit/craftbukkit/util/ExceptionHandler.java | 31 ++++ - .../bukkit/craftbukkit/util/ExceptionReporter.java | 26 +++ - .../java/org/bukkit/craftbukkit/util/FlatMap.java | 34 ++++ + .../java/org/bukkit/craftbukkit/util/FlatMap.java | 34 +++++ .../org/bukkit/craftbukkit/util/LongHashSet.java | 11 +- .../bukkit/craftbukkit/util/LongObjectHashMap.java | 5 + - .../bukkit/craftbukkit/util/WatchdogThread.java | 88 +++++++++ - src/main/resources/configurations/bukkit.yml | 30 ++++ - 33 files changed, 828 insertions(+), 100 deletions(-) + src/main/resources/configurations/bukkit.yml | 27 ++++ + 28 files changed, 564 insertions(+), 99 deletions(-) create mode 100644 src/main/java/org/bukkit/craftbukkit/Spigot.java - create mode 100644 src/main/java/org/bukkit/craftbukkit/command/RestartCommand.java - create mode 100644 src/main/java/org/bukkit/craftbukkit/util/ExceptionHandler.java - create mode 100644 src/main/java/org/bukkit/craftbukkit/util/ExceptionReporter.java create mode 100644 src/main/java/org/bukkit/craftbukkit/util/FlatMap.java - create mode 100644 src/main/java/org/bukkit/craftbukkit/util/WatchdogThread.java diff --git a/.gitignore b/.gitignore index a689360..b97a549 100644 @@ -370,34 +361,6 @@ index 961d83a..188d477 100644 public void c() { super.c(); this.e = this.d; -diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 4bdf8aa..955a3ac 100644 ---- a/src/main/java/net/minecraft/server/MinecraftServer.java -+++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -454,6 +454,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IMo - - this.a(crashreport); - } finally { -+ org.bukkit.craftbukkit.util.WatchdogThread.stopping(); // Spigot - try { - this.stop(); - this.isStopped = true; -@@ -605,6 +606,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IMo - } - - this.methodProfiler.b(); -+ org.bukkit.craftbukkit.util.WatchdogThread.tick(); // Spigot - } - - public boolean getAllowNether() { -@@ -708,6 +710,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IMo - dedicatedserver.an(); - } - */ -+ dedicatedserver.primaryThread.setUncaughtExceptionHandler(new org.bukkit.craftbukkit.util.ExceptionHandler()); // Spigot - - dedicatedserver.primaryThread.start(); - // Runtime.getRuntime().addShutdownHook(new ThreadShutdown(dedicatedserver)); diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java index fac9ea5..43a24f5 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java @@ -506,7 +469,7 @@ index 0686ba0..58d30eb 100644 URL url = new URL("http://session.minecraft.net/game/checkserver.jsp?user=" + URLEncoder.encode(PendingConnection.d(this.pendingConnection), "UTF-8") + "&serverId=" + URLEncoder.encode(s, "UTF-8")); BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(url.openStream())); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index c3dc4a4..9906b9e 100644 +index c3dc4a4..6c9857b 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -65,7 +65,7 @@ public abstract class World implements IBlockAccess { @@ -671,46 +634,7 @@ index c3dc4a4..9906b9e 100644 double d0 = 0.25D; List list = this.getEntities(entity, axisalignedbb.grow(d0, d0, d0)); -@@ -1313,7 +1409,37 @@ public abstract class World implements IBlockAccess { - this.entityJoinedWorld(entity, true); - } - -- public void entityJoinedWorld(Entity entity, boolean flag) { -+ // Spigot start -+ public int tickEntityExceptions = 0; -+ public void entityJoinedWorld(final Entity entity, final boolean flag) { -+ if (entity == null) { -+ return; -+ } -+ try { -+ tickEntity(entity, flag); -+ } catch (Exception e) { -+ try { -+ tickEntityExceptions++; -+ List report = new ArrayList(); -+ report.add("Spigot has detected an unexpected exception while handling"); -+ if (!(entity instanceof EntityPlayer)) { -+ report.add("entity " + entity.toString() + " (id: " + entity.id + ")"); -+ report.add("Spigot will kill the entity from the game instead of crashing your server."); -+ entity.die(); -+ } else { -+ report.add("player '" + ((EntityPlayer) entity).name + "'. They will be kicked instead of crashing your server."); -+ ((EntityPlayer) entity).getBukkitEntity().kickPlayer("The server experienced and error and was forced to kick you. Please re-login."); -+ } -+ org.bukkit.craftbukkit.util.ExceptionReporter.handle(e, report.toArray(new String[0])); -+ } catch (Throwable t) { -+ org.bukkit.craftbukkit.util.ExceptionReporter.handle(t, "Spigot has detected an unexpected exception while attempting to handle an exception (yes you read that correctly)."); -+ Bukkit.shutdown(); -+ } -+ } -+ } -+ -+ public void tickEntity(Entity entity, boolean flag) { -+ // Spigot end - int i = MathHelper.floor(entity.locX); - int j = MathHelper.floor(entity.locZ); - byte b0 = 32; -@@ -1894,6 +2020,11 @@ public abstract class World implements IBlockAccess { +@@ -1894,6 +1990,11 @@ public abstract class World implements IBlockAccess { this.worldData.setWeatherDuration(1); } @@ -722,7 +646,7 @@ index c3dc4a4..9906b9e 100644 protected void z() { // this.chunkTickList.clear(); // CraftBukkit - removed this.methodProfiler.a("buildList"); -@@ -1903,25 +2034,42 @@ public abstract class World implements IBlockAccess { +@@ -1903,25 +2004,42 @@ public abstract class World implements IBlockAccess { int j; int k; @@ -779,7 +703,7 @@ index c3dc4a4..9906b9e 100644 this.methodProfiler.b(); if (this.N > 0) { -@@ -1929,7 +2077,7 @@ public abstract class World implements IBlockAccess { +@@ -1929,7 +2047,7 @@ public abstract class World implements IBlockAccess { } this.methodProfiler.a("playerCheckLight"); @@ -788,24 +712,7 @@ index c3dc4a4..9906b9e 100644 i = this.random.nextInt(this.players.size()); entityhuman = (EntityHuman) this.players.get(i); j = MathHelper.floor(entityhuman.locX) + this.random.nextInt(11) - 5; -@@ -1968,9 +2116,16 @@ public abstract class World implements IBlockAccess { - chunk.o(); - } - -+ // Spigot start - protected void g() { -+ try { - this.z(); - } -+ catch (Exception e) { -+ org.bukkit.craftbukkit.util.ExceptionReporter.handle(e, "Spigot has detected an unexpected exception while ticking chunks"); -+ } -+ } -+ // Spigot end - - public boolean w(int i, int j, int k) { - return this.c(i, j, k, false); -@@ -2308,7 +2463,10 @@ public abstract class World implements IBlockAccess { +@@ -2308,7 +2426,10 @@ public abstract class World implements IBlockAccess { } public List getEntities(Entity entity, AxisAlignedBB axisalignedbb) { @@ -817,7 +724,7 @@ index c3dc4a4..9906b9e 100644 int i = MathHelper.floor((axisalignedbb.a - 2.0D) / 16.0D); int j = MathHelper.floor((axisalignedbb.d + 2.0D) / 16.0D); int k = MathHelper.floor((axisalignedbb.c - 2.0D) / 16.0D); -@@ -2317,12 +2475,12 @@ public abstract class World implements IBlockAccess { +@@ -2317,12 +2438,12 @@ public abstract class World implements IBlockAccess { for (int i1 = i; i1 <= j; ++i1) { for (int j1 = k; j1 <= l; ++j1) { if (this.isChunkLoaded(i1, j1)) { @@ -1061,7 +968,7 @@ index 3f73ef9..7032c61 100644 + // Spigot end } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index e7c0760..2b3c60a 100644 +index e7c0760..257497e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -146,7 +146,7 @@ public final class CraftServer implements Server { @@ -1185,59 +1092,6 @@ index e7c0760..2b3c60a 100644 } catch (CommandException ex) { player.sendMessage(ChatColor.RED + "An internal error occurred while attempting to tab-complete this command"); getLogger().log(Level.SEVERE, "Exception when " + player.getName() + " attempted to tab complete " + message, ex); -@@ -1341,4 +1346,52 @@ public final class CraftServer implements Server { - public CraftItemFactory getItemFactory() { - return CraftItemFactory.instance(); - } -+ -+ // Spigot start -+ public void restart() { -+ try { -+ String startupScript = configuration.getString("settings.restart-script-location", ""); -+ File file = new File(startupScript); -+ if (file.isFile()) { -+ System.out.println("Attempting to restart with " + startupScript); -+ -+ // Kick all players -+ for (Player p : this.getOnlinePlayers()) { -+ ((org.bukkit.craftbukkit.entity.CraftPlayer) p).kickPlayer("Server is restarting", true); -+ } -+ // Give the socket a chance to send the packets -+ try { -+ Thread.sleep(100); -+ } catch (InterruptedException ex) { -+ } -+ // Close the socket so we can rebind with the new process -+ this.getServer().ae().a(); -+ -+ // Give time for it to kick in -+ try { -+ Thread.sleep(100); -+ } catch (InterruptedException ex) { -+ } -+ -+ // Actually shutdown -+ try { -+ this.getServer().stop(); -+ } catch (Throwable t) { -+ } -+ -+ String os = System.getProperty("os.name").toLowerCase(); -+ if (os.contains("win")) { -+ Runtime.getRuntime().exec("cmd /c start " + file.getPath()); -+ } else { -+ Runtime.getRuntime().exec(file.getPath()); -+ } -+ System.exit(0); -+ } else { -+ System.out.println("Startup script '" + startupScript + "' does not exist!"); -+ } -+ } catch (Exception ex) { -+ ex.printStackTrace(); -+ } -+ } -+ // Spigot end - } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java index 6e364b1..45217cd 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -1327,21 +1181,18 @@ index 6e364b1..45217cd 100644 return getChunkAt(x >> 4, z >> 4).getBlock(x & 0xF, y & 0xFF, z & 0xF); diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java new file mode 100644 -index 0000000..eab9abe +index 0000000..4a4f949 --- /dev/null +++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java -@@ -0,0 +1,23 @@ +@@ -0,0 +1,20 @@ +package org.bukkit.craftbukkit; + +import org.bukkit.command.SimpleCommandMap; +import org.bukkit.configuration.file.YamlConfiguration; + +public class Spigot { ++ + public static void initialize(CraftServer server, SimpleCommandMap commandMap, YamlConfiguration configuration) { -+ commandMap.register("bukkit", new org.bukkit.craftbukkit.command.RestartCommand("restart")); -+ -+ org.bukkit.craftbukkit.util.WatchdogThread.startThread(configuration.getInt("settings.timeout-time", 180), configuration.getBoolean("settings.restart-on-crash", false)); -+ + server.whitelistMessage = configuration.getString("settings.whitelist-message", server.whitelistMessage); + server.stopMessage = configuration.getString("settings.stop-message", server.stopMessage); + server.logCommands = configuration.getBoolean("settings.log-commands", true); @@ -1367,37 +1218,6 @@ index 48cf5ba..1d4764c 100644 return; } -diff --git a/src/main/java/org/bukkit/craftbukkit/command/RestartCommand.java b/src/main/java/org/bukkit/craftbukkit/command/RestartCommand.java -new file mode 100644 -index 0000000..fba4b4a ---- /dev/null -+++ b/src/main/java/org/bukkit/craftbukkit/command/RestartCommand.java -@@ -0,0 +1,24 @@ -+package org.bukkit.craftbukkit.command; -+ -+import org.bukkit.Bukkit; -+import org.bukkit.command.Command; -+import org.bukkit.command.CommandSender; -+import org.bukkit.craftbukkit.CraftServer; -+ -+public class RestartCommand extends Command { -+ public RestartCommand(String name) { -+ super(name); -+ this.description = "Restarts the server"; -+ this.usageMessage = "/restart"; -+ this.setPermission("bukkit.command.restart"); -+ } -+ -+ @Override -+ public boolean execute(CommandSender sender, String currentAlias, String[] args) { -+ if (!testPermission(sender)) return true; -+ -+ ((CraftServer)Bukkit.getServer()).restart(); -+ -+ return true; -+ } -+} -\ No newline at end of file diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index f8dbbee..c79f352 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1420,75 +1240,6 @@ index f8dbbee..c79f352 100644 public void setCompassTarget(Location loc) { if (getHandle().playerConnection == null) return; -diff --git a/src/main/java/org/bukkit/craftbukkit/util/ExceptionHandler.java b/src/main/java/org/bukkit/craftbukkit/util/ExceptionHandler.java -new file mode 100644 -index 0000000..7ee3665 ---- /dev/null -+++ b/src/main/java/org/bukkit/craftbukkit/util/ExceptionHandler.java -@@ -0,0 +1,31 @@ -+package org.bukkit.craftbukkit.util; -+ -+import java.lang.Thread.UncaughtExceptionHandler; -+import java.util.logging.Level; -+import java.util.logging.Logger; -+import org.bukkit.Bukkit; -+import org.bukkit.craftbukkit.CraftServer; -+ -+public class ExceptionHandler implements UncaughtExceptionHandler { -+ -+ public void uncaughtException(Thread t, Throwable e) { -+ Logger log = ((CraftServer) Bukkit.getServer()).getLogger(); -+ log.log(Level.SEVERE, "The server has crashed!"); -+ log.log(Level.SEVERE, "Please report this to http://www.spigotmc.org/!"); -+ log.log(Level.SEVERE, "Begin Exception Trace:"); -+ log.log(Level.SEVERE, ""); -+ StackTraceElement[] stack = e.getStackTrace(); -+ for (int line = 0; line < stack.length; line++) { -+ log.log(Level.SEVERE, " " + stack[line].toString()); -+ } -+ log.log(Level.SEVERE, "End Exception Trace:"); -+ log.log(Level.SEVERE, ""); -+ log.log(Level.SEVERE, "Begin Thread Stack Trace:"); -+ stack = t.getStackTrace(); -+ for (int line = 0; line < stack.length; line++) { -+ log.log(Level.SEVERE, " " + stack[line].toString()); -+ } -+ log.log(Level.SEVERE, "End Exception Trace:"); -+ log.log(Level.SEVERE, ""); -+ } -+} -diff --git a/src/main/java/org/bukkit/craftbukkit/util/ExceptionReporter.java b/src/main/java/org/bukkit/craftbukkit/util/ExceptionReporter.java -new file mode 100644 -index 0000000..a396f17 ---- /dev/null -+++ b/src/main/java/org/bukkit/craftbukkit/util/ExceptionReporter.java -@@ -0,0 +1,26 @@ -+package org.bukkit.craftbukkit.util; -+ -+import org.bukkit.Bukkit; -+ -+public final class ExceptionReporter { -+ -+ public static void handle(Throwable t, String... messages) { -+ for (String message : messages) { -+ Bukkit.getLogger().severe(message); -+ } -+ Bukkit.getLogger().severe("Spigot recommends you report this to http://www.spigotmc.org/"); -+ Bukkit.getLogger().severe(""); -+ Bukkit.getLogger().severe("Spigot version: " + Bukkit.getBukkitVersion()); -+ Bukkit.getLogger().severe("Exception Trace Begins:"); -+ StackTraceElement[] stack = t.getStackTrace(); -+ for (int line = 0; line < stack.length; line++) { -+ Bukkit.getLogger().severe(" " + stack[line].toString()); -+ } -+ Bukkit.getLogger().severe("Exception Trace Ends."); -+ Bukkit.getLogger().severe(""); -+ } -+ -+ public static void handle(Throwable t) { -+ handle(t, "Spigot has encountered an unexpected exception!"); -+ } -+} diff --git a/src/main/java/org/bukkit/craftbukkit/util/FlatMap.java b/src/main/java/org/bukkit/craftbukkit/util/FlatMap.java new file mode 100644 index 0000000..e8a7725 @@ -1618,111 +1369,14 @@ index 01861cc..dbd33fa 100644 int index = (int) (keyIndex(key) & (BUCKET_SIZE - 1)); long[] inner = keys[index]; if (inner == null) { -diff --git a/src/main/java/org/bukkit/craftbukkit/util/WatchdogThread.java b/src/main/java/org/bukkit/craftbukkit/util/WatchdogThread.java -new file mode 100644 -index 0000000..da6df8f ---- /dev/null -+++ b/src/main/java/org/bukkit/craftbukkit/util/WatchdogThread.java -@@ -0,0 +1,88 @@ -+package org.bukkit.craftbukkit.util; -+ -+import java.util.Iterator; -+import java.util.Map; -+import java.util.Map.Entry; -+import java.util.concurrent.atomic.AtomicLong; -+import java.util.logging.Level; -+import java.util.logging.Logger; -+import org.bukkit.Bukkit; -+import org.bukkit.craftbukkit.CraftServer; -+ -+public class WatchdogThread extends Thread { -+ -+ private static WatchdogThread instance; -+ private static final String LINE = "------------------------------"; -+ private AtomicLong lastTick = new AtomicLong(System.currentTimeMillis()); -+ private final long timeoutTime; -+ private final boolean restart; -+ private boolean stopping; -+ -+ private WatchdogThread(long timeoutTime, boolean restart) { -+ super("Spigot Watchdog Thread"); -+ this.timeoutTime = timeoutTime; -+ this.restart = restart; -+ } -+ -+ public static void startThread(int timeoutTime, boolean restart) { -+ if (instance == null) { -+ instance = new WatchdogThread(timeoutTime * 1000L, restart); -+ instance.start(); -+ } -+ instance.stopping = false; -+ } -+ -+ public static void tick() { -+ instance.lastTick.set(System.currentTimeMillis()); -+ } -+ -+ public static void stopping() { -+ if (instance != null) { -+ instance.stopping = true; -+ } -+ } -+ -+ @Override -+ public void run() { -+ while (!this.isInterrupted()) { -+ try { -+ sleep(10000); -+ } catch (InterruptedException ignore) { -+ } -+ if (stopping) -+ continue; -+ if (System.currentTimeMillis() > (lastTick.get() + timeoutTime)) { -+ Logger log = ((CraftServer) Bukkit.getServer()).getLogger(); -+ log.log(Level.SEVERE, "The server has stopped responding!"); -+ log.log(Level.SEVERE, "Please report this to http://www.spigotmc.org/!"); -+ log.log(Level.SEVERE, "Spigot version: " + Bukkit.getBukkitVersion()); -+ log.log(Level.SEVERE, "Begin Exception Trace For All Threads:"); -+ Map traces = Thread.getAllStackTraces(); -+ Iterator> i = traces.entrySet().iterator(); -+ while (i.hasNext()) { -+ Entry entry = i.next(); -+ Thread thread = entry.getKey(); -+ if (thread.getState() != State.WAITING) { -+ System.err.println(LINE); -+ -+ log.log(Level.SEVERE, "Current Thread: " + thread.getName()); -+ log.log(Level.SEVERE, " PID: " + thread.getId() + " | Alive: " + thread.isAlive() + " | State: " + thread.getState()); -+ log.log(Level.SEVERE, " Stack:"); -+ StackTraceElement[] stack = entry.getValue(); -+ for (int line = 0; line < stack.length; line++) { -+ log.log(Level.SEVERE, " " + stack[line].toString()); -+ } -+ } -+ } -+ System.err.println(LINE); -+ -+ if (this.restart) { -+ ((CraftServer) Bukkit.getServer()).restart(); -+ } -+ -+ //Give up -+ this.interrupt(); -+ } -+ } -+ } -+} diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml -index 61a95e3..5262ae1 100644 +index 61a95e3..f44d5d0 100644 --- a/src/main/resources/configurations/bukkit.yml +++ b/src/main/resources/configurations/bukkit.yml -@@ -25,6 +25,36 @@ settings: +@@ -25,6 +25,33 @@ settings: query-plugins: true deprecated-verbose: default shutdown-message: Server closed -+ restart-script-location: start.bat -+ timeout-time: 180 -+ restart-on-crash: false + filter-unsafe-ips: false + whitelist-message: You are not white-listed on this server! + log-commands: true diff --git a/CraftBukkit-Patches/0009-Per-world-view-distance.patch b/CraftBukkit-Patches/0008-Per-world-view-distance.patch similarity index 95% rename from CraftBukkit-Patches/0009-Per-world-view-distance.patch rename to CraftBukkit-Patches/0008-Per-world-view-distance.patch index 810ae2d281..c0abe716bf 100644 --- a/CraftBukkit-Patches/0009-Per-world-view-distance.patch +++ b/CraftBukkit-Patches/0008-Per-world-view-distance.patch @@ -1,4 +1,4 @@ -From f303848293ac86066ccea4f00947253af6e9c8f0 Mon Sep 17 00:00:00 2001 +From 8a6dee291c36ec103e28624da71583f6eb863dde Mon Sep 17 00:00:00 2001 From: md_5 Date: Sat, 12 Jan 2013 19:57:45 +1100 Subject: [PATCH] Per world view distance. @@ -10,7 +10,7 @@ Subject: [PATCH] Per world view distance. 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index a42aa1e..842d722 100644 +index 7032c61..4aa2a19 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -49,7 +49,7 @@ public class WorldServer extends World implements org.bukkit.BlockChangeDelegate @@ -53,10 +53,10 @@ index 45217cd..94e07fe 100644 public int wheatGrowthModifier = 100; public int cactusGrowthModifier = 100; diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml -index 55bfb77..9d6d613 100644 +index f44d5d0..0c92b66 100644 --- a/src/main/resources/configurations/bukkit.yml +++ b/src/main/resources/configurations/bukkit.yml -@@ -52,6 +52,7 @@ world-settings: +@@ -49,6 +49,7 @@ world-settings: world: growth-chunks-per-tick: 1000 world_nether: diff --git a/CraftBukkit-Patches/0008-Update-timeout-time-to-new-default-value.patch b/CraftBukkit-Patches/0008-Update-timeout-time-to-new-default-value.patch deleted file mode 100644 index 0a830eb312..0000000000 --- a/CraftBukkit-Patches/0008-Update-timeout-time-to-new-default-value.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 266474a8588a30de49a7c2a883dde257b7e001ee Mon Sep 17 00:00:00 2001 -From: md_5 -Date: Thu, 10 Jan 2013 12:33:37 +1100 -Subject: [PATCH] Update timeout time to new default value. - ---- - src/main/java/org/bukkit/craftbukkit/Spigot.java | 9 ++++++++- - src/main/resources/configurations/bukkit.yml | 2 +- - 2 files changed, 9 insertions(+), 2 deletions(-) - -diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java -index a53c7b0..30bc542 100644 ---- a/src/main/java/org/bukkit/craftbukkit/Spigot.java -+++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java -@@ -7,7 +7,14 @@ public class Spigot { - public static void initialize(CraftServer server, SimpleCommandMap commandMap, YamlConfiguration configuration) { - commandMap.register("bukkit", new org.bukkit.craftbukkit.command.RestartCommand("restart")); - -- org.bukkit.craftbukkit.util.WatchdogThread.startThread(configuration.getInt("settings.timeout-time", 180), configuration.getBoolean("settings.restart-on-crash", false)); -+ int timeout = configuration.getInt("settings.timeout-time", 300); -+ if (timeout == 180) { -+ timeout = 300; -+ server.getLogger().info("Migrating to new timeout time of 300"); -+ configuration.set("settings.timeout-time", timeout); -+ server.saveConfig(); -+ } -+ org.bukkit.craftbukkit.util.WatchdogThread.startThread(timeout, configuration.getBoolean("settings.restart-on-crash", false)); - - server.whitelistMessage = configuration.getString("settings.whitelist-message", server.whitelistMessage); - server.stopMessage = configuration.getString("settings.stop-message", server.stopMessage); -diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml -index 5262ae1..55bfb77 100644 ---- a/src/main/resources/configurations/bukkit.yml -+++ b/src/main/resources/configurations/bukkit.yml -@@ -26,7 +26,7 @@ settings: - deprecated-verbose: default - shutdown-message: Server closed - restart-script-location: start.bat -- timeout-time: 180 -+ timeout-time: 300 - restart-on-crash: false - filter-unsafe-ips: false - whitelist-message: You are not white-listed on this server! --- -1.8.1-rc2 - diff --git a/CraftBukkit-Patches/0010-Fix-various-crop-growth-modifier-formula-issues.patch b/CraftBukkit-Patches/0009-Fix-various-crop-growth-modifier-formula-issues.patch similarity index 99% rename from CraftBukkit-Patches/0010-Fix-various-crop-growth-modifier-formula-issues.patch rename to CraftBukkit-Patches/0009-Fix-various-crop-growth-modifier-formula-issues.patch index 0da1275026..22d0e9a63a 100644 --- a/CraftBukkit-Patches/0010-Fix-various-crop-growth-modifier-formula-issues.patch +++ b/CraftBukkit-Patches/0009-Fix-various-crop-growth-modifier-formula-issues.patch @@ -1,4 +1,4 @@ -From 25d363d1f0fdc54987a6d6bc6f06eb53c6129637 Mon Sep 17 00:00:00 2001 +From b5b44a60c5a1f64ba4ce828bb5fa112e1552cd72 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 11 Jan 2013 11:08:45 -0500 Subject: [PATCH] Fix various crop growth modifier formula issues diff --git a/CraftBukkit-Patches/0011-Add-OldChunkLoader-from-mc-dev-for-diff-visibility.patch b/CraftBukkit-Patches/0010-Add-OldChunkLoader-from-mc-dev-for-diff-visibility.patch similarity index 98% rename from CraftBukkit-Patches/0011-Add-OldChunkLoader-from-mc-dev-for-diff-visibility.patch rename to CraftBukkit-Patches/0010-Add-OldChunkLoader-from-mc-dev-for-diff-visibility.patch index c114d21bd6..f1a1572d8a 100644 --- a/CraftBukkit-Patches/0011-Add-OldChunkLoader-from-mc-dev-for-diff-visibility.patch +++ b/CraftBukkit-Patches/0010-Add-OldChunkLoader-from-mc-dev-for-diff-visibility.patch @@ -1,4 +1,4 @@ -From c88bb483e5104872c4492f006b107625f9c91939 Mon Sep 17 00:00:00 2001 +From 5403a45cb37298605612b7b059ea963a09afa453 Mon Sep 17 00:00:00 2001 From: Agaricus Date: Sun, 13 Jan 2013 03:41:38 -0800 Subject: [PATCH] Add OldChunkLoader from mc-dev for diff visibility diff --git a/CraftBukkit-Patches/0012-Fix-mcRegion-to-Anvil-conversion.patch b/CraftBukkit-Patches/0011-Fix-mcRegion-to-Anvil-conversion.patch similarity index 95% rename from CraftBukkit-Patches/0012-Fix-mcRegion-to-Anvil-conversion.patch rename to CraftBukkit-Patches/0011-Fix-mcRegion-to-Anvil-conversion.patch index 6176319f29..5cd6510ebb 100644 --- a/CraftBukkit-Patches/0012-Fix-mcRegion-to-Anvil-conversion.patch +++ b/CraftBukkit-Patches/0011-Fix-mcRegion-to-Anvil-conversion.patch @@ -1,4 +1,4 @@ -From 6d940cd4bc4a1b7ba8e918f25711e916274adb4d Mon Sep 17 00:00:00 2001 +From 69eceb5d0258629d174e17d5a8e3547e196e2138 Mon Sep 17 00:00:00 2001 From: Agaricus Date: Sun, 13 Jan 2013 03:49:07 -0800 Subject: [PATCH] Fix mcRegion-to-Anvil conversion diff --git a/CraftBukkit-Patches/0013-Update-versioning-check-to-correctly-resolve-api-ver.patch b/CraftBukkit-Patches/0012-Update-versioning-check-to-correctly-resolve-api-ver.patch similarity index 94% rename from CraftBukkit-Patches/0013-Update-versioning-check-to-correctly-resolve-api-ver.patch rename to CraftBukkit-Patches/0012-Update-versioning-check-to-correctly-resolve-api-ver.patch index fe51021b72..0d606ebeda 100644 --- a/CraftBukkit-Patches/0013-Update-versioning-check-to-correctly-resolve-api-ver.patch +++ b/CraftBukkit-Patches/0012-Update-versioning-check-to-correctly-resolve-api-ver.patch @@ -1,4 +1,4 @@ -From e9aa88610fc3b464adc357a0b6bd435032e41a7d Mon Sep 17 00:00:00 2001 +From c202dc309048355e8243da6950dc27bbf2753ac9 Mon Sep 17 00:00:00 2001 From: md_5 Date: Tue, 15 Jan 2013 15:05:02 +1100 Subject: [PATCH] Update versioning check to correctly resolve api version. diff --git a/CraftBukkit-Patches/0014-Optimize-packet-used-to-unload-chunks-for-the-client.patch b/CraftBukkit-Patches/0013-Optimize-packet-used-to-unload-chunks-for-the-client.patch similarity index 97% rename from CraftBukkit-Patches/0014-Optimize-packet-used-to-unload-chunks-for-the-client.patch rename to CraftBukkit-Patches/0013-Optimize-packet-used-to-unload-chunks-for-the-client.patch index 2e4c3c0bbb..cbc336f5bd 100644 --- a/CraftBukkit-Patches/0014-Optimize-packet-used-to-unload-chunks-for-the-client.patch +++ b/CraftBukkit-Patches/0013-Optimize-packet-used-to-unload-chunks-for-the-client.patch @@ -1,4 +1,4 @@ -From c11561f896f9b4445894ad7e1c69505d1b567597 Mon Sep 17 00:00:00 2001 +From 2510ee47cc0bc0a9dc98effad61b9e8835192235 Mon Sep 17 00:00:00 2001 From: Ammar Askar Date: Fri, 18 Jan 2013 16:20:01 +0500 Subject: [PATCH] Optimize packet used to unload chunks for the client diff --git a/CraftBukkit-Patches/0015-Skip-entity.move-if-we-are-not-moving-anywhere.patch b/CraftBukkit-Patches/0014-Skip-entity.move-if-we-are-not-moving-anywhere.patch similarity index 89% rename from CraftBukkit-Patches/0015-Skip-entity.move-if-we-are-not-moving-anywhere.patch rename to CraftBukkit-Patches/0014-Skip-entity.move-if-we-are-not-moving-anywhere.patch index ecb8c21695..df0a30fe5f 100644 --- a/CraftBukkit-Patches/0015-Skip-entity.move-if-we-are-not-moving-anywhere.patch +++ b/CraftBukkit-Patches/0014-Skip-entity.move-if-we-are-not-moving-anywhere.patch @@ -1,4 +1,4 @@ -From 54137647a6488134d5268180e083f4ab05ae8215 Mon Sep 17 00:00:00 2001 +From e82bcce15b5b93aaaf2eb09c47f44db1d735ff51 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 19 Jan 2013 01:11:30 -0500 Subject: [PATCH] Skip entity.move() if we are not moving anywhere. @@ -8,7 +8,7 @@ Subject: [PATCH] Skip entity.move() if we are not moving anywhere. 1 file changed, 1 insertion(+) diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 26b7a1f..2340fad 100644 +index 71707ed..d0a58f8 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -423,6 +423,7 @@ public abstract class Entity { diff --git a/CraftBukkit-Patches/0016-Alternate-sync-free-but-safe-chunk-reference-cache.patch b/CraftBukkit-Patches/0015-Alternate-sync-free-but-safe-chunk-reference-cache.patch similarity index 94% rename from CraftBukkit-Patches/0016-Alternate-sync-free-but-safe-chunk-reference-cache.patch rename to CraftBukkit-Patches/0015-Alternate-sync-free-but-safe-chunk-reference-cache.patch index ce2209a725..00732851a0 100644 --- a/CraftBukkit-Patches/0016-Alternate-sync-free-but-safe-chunk-reference-cache.patch +++ b/CraftBukkit-Patches/0015-Alternate-sync-free-but-safe-chunk-reference-cache.patch @@ -1,4 +1,4 @@ -From 040e9d8a5a8437a06bbd4531fc788144defd447d Mon Sep 17 00:00:00 2001 +From 66bf9228164154e0da57d1a8dbabc6837b2da2f8 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Wed, 16 Jan 2013 15:27:22 -0600 Subject: [PATCH] Alternate, sync-free-but-safe chunk reference cache @@ -8,7 +8,7 @@ Subject: [PATCH] Alternate, sync-free-but-safe chunk reference cache 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 1e36467..e2426bc 100644 +index b1dd29e..41f4f31 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -297,15 +297,13 @@ public abstract class World implements IBlockAccess { diff --git a/CraftBukkit-Patches/0017-Add-Custom-Timings-to-various-points.patch b/CraftBukkit-Patches/0016-Add-Custom-Timings-to-various-points.patch similarity index 99% rename from CraftBukkit-Patches/0017-Add-Custom-Timings-to-various-points.patch rename to CraftBukkit-Patches/0016-Add-Custom-Timings-to-various-points.patch index 391897d98f..ba814bd3c7 100644 --- a/CraftBukkit-Patches/0017-Add-Custom-Timings-to-various-points.patch +++ b/CraftBukkit-Patches/0016-Add-Custom-Timings-to-various-points.patch @@ -1,4 +1,4 @@ -From c7e5718f1f1357d6dccdde091ee8598abc120cc1 Mon Sep 17 00:00:00 2001 +From ede0d69949d7d00980598f1944de83052162deb4 Mon Sep 17 00:00:00 2001 From: Aikar Date: Thu, 10 Jan 2013 00:18:11 -0500 Subject: [PATCH] Add Custom Timings to various points @@ -210,7 +210,7 @@ index 43a24f5..7ca0acf 100644 /* CraftBukkit start - No longer needed as we have already handled it in server.dispatchServerCommand above. diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index e2426bc..9b7bc02 100644 +index 41f4f31..c914461 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -14,6 +14,7 @@ import java.util.concurrent.Callable; @@ -325,5 +325,5 @@ index 0000000..bb0c191 + } +} -- -1.8.1.1 +1.8.1-rc2 diff --git a/CraftBukkit-Patches/0018-Better-more-flexible-itemstack-merging.patch b/CraftBukkit-Patches/0017-Better-more-flexible-itemstack-merging.patch similarity index 98% rename from CraftBukkit-Patches/0018-Better-more-flexible-itemstack-merging.patch rename to CraftBukkit-Patches/0017-Better-more-flexible-itemstack-merging.patch index af2d8a3f77..30e62bf03b 100644 --- a/CraftBukkit-Patches/0018-Better-more-flexible-itemstack-merging.patch +++ b/CraftBukkit-Patches/0017-Better-more-flexible-itemstack-merging.patch @@ -1,4 +1,4 @@ -From cde68c3d5bc4581749a7cf6afbd91a8213a2e1d5 Mon Sep 17 00:00:00 2001 +From f36116f21a496382c52e7cd3f0f97820c183fc49 Mon Sep 17 00:00:00 2001 From: md_5 Date: Fri, 25 Jan 2013 18:24:54 +1100 Subject: [PATCH] Better + more flexible itemstack merging @@ -40,7 +40,7 @@ index a7baa0f..5e3ac84 100644 } } else { diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 9b7bc02..262290f 100644 +index c914461..88007c3 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -923,31 +923,8 @@ public abstract class World implements IBlockAccess { diff --git a/CraftBukkit-Patches/0019-Add-oreobfuscator-for-Spigot.patch b/CraftBukkit-Patches/0018-Add-oreobfuscator-for-Spigot.patch similarity index 98% rename from CraftBukkit-Patches/0019-Add-oreobfuscator-for-Spigot.patch rename to CraftBukkit-Patches/0018-Add-oreobfuscator-for-Spigot.patch index 1deaa9465a..b06516f01a 100644 --- a/CraftBukkit-Patches/0019-Add-oreobfuscator-for-Spigot.patch +++ b/CraftBukkit-Patches/0018-Add-oreobfuscator-for-Spigot.patch @@ -1,4 +1,4 @@ -From 418300d476c22377bddb9789d3b434ac4a649a7e Mon Sep 17 00:00:00 2001 +From 2bbaa8a04d59da56e08aa738dfc96b19c8f01db4 Mon Sep 17 00:00:00 2001 From: lishid Date: Sat, 16 Feb 2013 10:05:25 +1100 Subject: [PATCH] Add oreobfuscator for Spigot. @@ -123,7 +123,7 @@ index 5faee12..55f9ffa 100644 if (false) { // Never trigger diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index a7785b7..204af22 100644 +index 257497e..1a3cc03 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -163,6 +163,12 @@ public final class CraftServer implements Server { @@ -305,10 +305,10 @@ index 0000000..3e74103 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java -index 8dda8b8..2600de4 100644 +index 4a4f949..3bfeb49 100644 --- a/src/main/java/org/bukkit/craftbukkit/Spigot.java +++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java -@@ -23,6 +23,14 @@ public class Spigot { +@@ -13,6 +13,14 @@ public class Spigot { server.commandComplete = configuration.getBoolean("settings.command-complete", true); server.spamGuardExclusions = configuration.getStringList("settings.spam-exclusions"); @@ -324,10 +324,10 @@ index 8dda8b8..2600de4 100644 server.getLogger().severe("[Spigot] You should not disable chunk-gc, unexpected behaviour may occur!"); } diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml -index 9d6d613..3228d17 100644 +index 0c92b66..78e9a66 100644 --- a/src/main/resources/configurations/bukkit.yml +++ b/src/main/resources/configurations/bukkit.yml -@@ -84,3 +84,9 @@ database: +@@ -81,3 +81,9 @@ database: driver: org.sqlite.JDBC password: walrus url: jdbc:sqlite:{DIR}{NAME}.db diff --git a/CraftBukkit-Patches/0020-Reduce-number-of-LivingEntity-collision-checks.patch b/CraftBukkit-Patches/0019-Reduce-number-of-LivingEntity-collision-checks.patch similarity index 94% rename from CraftBukkit-Patches/0020-Reduce-number-of-LivingEntity-collision-checks.patch rename to CraftBukkit-Patches/0019-Reduce-number-of-LivingEntity-collision-checks.patch index a11b18e864..9eaf782519 100644 --- a/CraftBukkit-Patches/0020-Reduce-number-of-LivingEntity-collision-checks.patch +++ b/CraftBukkit-Patches/0019-Reduce-number-of-LivingEntity-collision-checks.patch @@ -1,4 +1,4 @@ -From e9079818151c8df92e2d927b0f4f3308d9cea113 Mon Sep 17 00:00:00 2001 +From aedb805a7d9546c33994de3acee0da1814c0f6b5 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 18 Jan 2013 19:31:14 -0500 Subject: [PATCH] Reduce number of LivingEntity collision checks. @@ -33,5 +33,5 @@ index b2481aa..bbbb008 100644 this.o(entity); } -- -1.8.1.1 +1.8.1-rc2 diff --git a/CraftBukkit-Patches/0021-Only-count-entities-in-chunks-being-processed-for-th.patch b/CraftBukkit-Patches/0020-Only-count-entities-in-chunks-being-processed-for-th.patch similarity index 98% rename from CraftBukkit-Patches/0021-Only-count-entities-in-chunks-being-processed-for-th.patch rename to CraftBukkit-Patches/0020-Only-count-entities-in-chunks-being-processed-for-th.patch index 5492cf96ce..3f4ebfcf6d 100644 --- a/CraftBukkit-Patches/0021-Only-count-entities-in-chunks-being-processed-for-th.patch +++ b/CraftBukkit-Patches/0020-Only-count-entities-in-chunks-being-processed-for-th.patch @@ -1,4 +1,4 @@ -From 1c18e9b73bc9b0bce7ee99f0abf89b34b454b806 Mon Sep 17 00:00:00 2001 +From 7a0b264ffa3d6c7d4110f3e25059cc3f1bffee88 Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 29 Jan 2013 13:25:53 -0500 Subject: [PATCH] Only count entities in chunks being processed for the spawn diff --git a/CraftBukkit-Patches/0022-Send-maps-a-lot-less-often-to-combat-the-lag-they-ca.patch b/CraftBukkit-Patches/0021-Send-maps-a-lot-less-often-to-combat-the-lag-they-ca.patch similarity index 92% rename from CraftBukkit-Patches/0022-Send-maps-a-lot-less-often-to-combat-the-lag-they-ca.patch rename to CraftBukkit-Patches/0021-Send-maps-a-lot-less-often-to-combat-the-lag-they-ca.patch index 69040bb91c..bc67a0dc58 100644 --- a/CraftBukkit-Patches/0022-Send-maps-a-lot-less-often-to-combat-the-lag-they-ca.patch +++ b/CraftBukkit-Patches/0021-Send-maps-a-lot-less-often-to-combat-the-lag-they-ca.patch @@ -1,4 +1,4 @@ -From c990d9e10a9a8285c8d408c6cb665c1f1e640545 Mon Sep 17 00:00:00 2001 +From 2a34593e2cd2cff381e8d6d6e1a1427221cd24c4 Mon Sep 17 00:00:00 2001 From: md_5 Date: Sat, 2 Feb 2013 19:40:53 +1100 Subject: [PATCH] Send maps a lot less often to combat the lag they cause. @@ -24,7 +24,7 @@ index a026c4c..27a548f 100644 ItemStack i5 = i4.i(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 204af22..f00b28d 100644 +index 1a3cc03..6c7fa4f 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -179,6 +179,7 @@ public final class CraftServer implements Server { @@ -36,10 +36,10 @@ index 204af22..f00b28d 100644 static { diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java -index b124dab..c712b52 100644 +index 3bfeb49..5827820 100644 --- a/src/main/java/org/bukkit/craftbukkit/Spigot.java +++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java -@@ -22,6 +22,7 @@ public class Spigot { +@@ -12,6 +12,7 @@ public class Spigot { server.ipFilter = configuration.getBoolean("settings.filter-unsafe-ips", false); server.commandComplete = configuration.getBoolean("settings.command-complete", true); server.spamGuardExclusions = configuration.getStringList("settings.spam-exclusions"); @@ -48,10 +48,10 @@ index b124dab..c712b52 100644 server.orebfuscatorEnabled = configuration.getBoolean("orebfuscator.enable", false); server.orebfuscatorEngineMode = configuration.getInt("orebfuscator.engine-mode", 1); diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml -index 3228d17..3122a14 100644 +index 78e9a66..548f7c1 100644 --- a/src/main/resources/configurations/bukkit.yml +++ b/src/main/resources/configurations/bukkit.yml -@@ -34,6 +34,7 @@ settings: +@@ -31,6 +31,7 @@ settings: command-complete: true spam-exclusions: - /skill diff --git a/CraftBukkit-Patches/0023-Detect-remove-and-warn-about-null-tile-entities.patch b/CraftBukkit-Patches/0022-Detect-remove-and-warn-about-null-tile-entities.patch similarity index 92% rename from CraftBukkit-Patches/0023-Detect-remove-and-warn-about-null-tile-entities.patch rename to CraftBukkit-Patches/0022-Detect-remove-and-warn-about-null-tile-entities.patch index 77de6d28d3..e13c2db69d 100644 --- a/CraftBukkit-Patches/0023-Detect-remove-and-warn-about-null-tile-entities.patch +++ b/CraftBukkit-Patches/0022-Detect-remove-and-warn-about-null-tile-entities.patch @@ -1,4 +1,4 @@ -From c8578420f6c44d29e5f93dfbcee0b861c16794bd Mon Sep 17 00:00:00 2001 +From 04cff8e45e1fe99b3679b15d672c41ac1de31ffb Mon Sep 17 00:00:00 2001 From: md_5 Date: Sun, 3 Feb 2013 09:20:19 +1100 Subject: [PATCH] Detect, remove and warn about null tile entities. @@ -8,7 +8,7 @@ Subject: [PATCH] Detect, remove and warn about null tile entities. 1 file changed, 7 insertions(+) diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 262290f..cd7ad64 100644 +index 88007c3..9f05a52 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -1302,6 +1302,13 @@ public abstract class World implements IBlockAccess { diff --git a/CraftBukkit-Patches/0024-Tick-loop-optimization-sleep-for-as-long-as-possible.patch b/CraftBukkit-Patches/0023-Tick-loop-optimization-sleep-for-as-long-as-possible.patch similarity index 90% rename from CraftBukkit-Patches/0024-Tick-loop-optimization-sleep-for-as-long-as-possible.patch rename to CraftBukkit-Patches/0023-Tick-loop-optimization-sleep-for-as-long-as-possible.patch index 75cca2952a..61ff2534ea 100644 --- a/CraftBukkit-Patches/0024-Tick-loop-optimization-sleep-for-as-long-as-possible.patch +++ b/CraftBukkit-Patches/0023-Tick-loop-optimization-sleep-for-as-long-as-possible.patch @@ -1,17 +1,17 @@ -From c7b127737d0df2cfbbae9fa5abe6bbb85312139a Mon Sep 17 00:00:00 2001 +From 5edc0ce11f85c023f0d9afb33dc152d0e26bd15f Mon Sep 17 00:00:00 2001 From: md_5 Date: Sun, 3 Feb 2013 12:28:17 +1100 Subject: [PATCH] Tick loop optimization - sleep for as long as possible. --- .../java/net/minecraft/server/MinecraftServer.java | 50 +++++++++------------- - src/main/java/org/bukkit/craftbukkit/Spigot.java | 1 + + src/main/java/org/bukkit/craftbukkit/Spigot.java | 2 + .../craftbukkit/command/TicksPerSecondCommand.java | 35 +++++++++++++++ - 3 files changed, 56 insertions(+), 30 deletions(-) + 3 files changed, 57 insertions(+), 30 deletions(-) create mode 100644 src/main/java/org/bukkit/craftbukkit/command/TicksPerSecondCommand.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 955a3ac..99a6cf4 100644 +index 4bdf8aa..128016f 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -86,6 +86,12 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IMo @@ -82,17 +82,18 @@ index 955a3ac..99a6cf4 100644 this.a((CrashReport) null); } diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java -index c712b52..582dbab 100644 +index 5827820..1ead152 100644 --- a/src/main/java/org/bukkit/craftbukkit/Spigot.java +++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java -@@ -6,6 +6,7 @@ import org.bukkit.configuration.file.YamlConfiguration; +@@ -6,6 +6,8 @@ import org.bukkit.configuration.file.YamlConfiguration; public class Spigot { - public static void initialize(CraftServer server, SimpleCommandMap commandMap, YamlConfiguration configuration) { - commandMap.register("bukkit", new org.bukkit.craftbukkit.command.RestartCommand("restart")); -+ commandMap.register("bukkit", new org.bukkit.craftbukkit.command.TicksPerSecondCommand("tps")); - int timeout = configuration.getInt("settings.timeout-time", 300); - if (timeout == 180) { + public static void initialize(CraftServer server, SimpleCommandMap commandMap, YamlConfiguration configuration) { ++ commandMap.register("bukkit", new org.bukkit.craftbukkit.command.TicksPerSecondCommand("tps")); ++ + server.whitelistMessage = configuration.getString("settings.whitelist-message", server.whitelistMessage); + server.stopMessage = configuration.getString("settings.stop-message", server.stopMessage); + server.logCommands = configuration.getBoolean("settings.log-commands", true); diff --git a/src/main/java/org/bukkit/craftbukkit/command/TicksPerSecondCommand.java b/src/main/java/org/bukkit/craftbukkit/command/TicksPerSecondCommand.java new file mode 100644 index 0000000..f114a31 diff --git a/CraftBukkit-Patches/0025-Netty.patch b/CraftBukkit-Patches/0024-Netty.patch similarity index 99% rename from CraftBukkit-Patches/0025-Netty.patch rename to CraftBukkit-Patches/0024-Netty.patch index 0efe8dbf57..eba27d39f3 100644 --- a/CraftBukkit-Patches/0025-Netty.patch +++ b/CraftBukkit-Patches/0024-Netty.patch @@ -1,4 +1,4 @@ -From 4383e778b06659440cd8ce0e62366b035387c6d1 Mon Sep 17 00:00:00 2001 +From affa8e15e1628d9210a4ace9cb14214cd19ec404 Mon Sep 17 00:00:00 2001 From: md_5 Date: Thu, 14 Feb 2013 17:32:20 +1100 Subject: [PATCH] Netty @@ -271,7 +271,7 @@ index 0000000..f25af14 +} diff --git a/src/main/java/org/spigotmc/netty/NettyNetworkManager.java b/src/main/java/org/spigotmc/netty/NettyNetworkManager.java new file mode 100644 -index 0000000..baca853 +index 0000000..fe978fe --- /dev/null +++ b/src/main/java/org/spigotmc/netty/NettyNetworkManager.java @@ -0,0 +1,229 @@ diff --git a/CraftBukkit-Patches/0026-Entity-Activation-Range-This-feature-gives-3-new-con.patch b/CraftBukkit-Patches/0025-Entity-Activation-Range-This-feature-gives-3-new-con.patch similarity index 93% rename from CraftBukkit-Patches/0026-Entity-Activation-Range-This-feature-gives-3-new-con.patch rename to CraftBukkit-Patches/0025-Entity-Activation-Range-This-feature-gives-3-new-con.patch index 392d6b4a89..d3d63121a1 100644 --- a/CraftBukkit-Patches/0026-Entity-Activation-Range-This-feature-gives-3-new-con.patch +++ b/CraftBukkit-Patches/0025-Entity-Activation-Range-This-feature-gives-3-new-con.patch @@ -1,4 +1,4 @@ -From 805e4bb891c7e5a8bcdec220fb952fec33cbc1dd Mon Sep 17 00:00:00 2001 +From f097ee841d58b9a3051598d193d24c726331e668 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 16 Feb 2013 19:45:09 +1100 Subject: [PATCH] Entity Activation Range# This feature gives 3 new @@ -10,12 +10,12 @@ This change can have dramatic impact on gameplay if configured too low. Balance --- src/main/java/net/minecraft/server/Entity.java | 8 ++ .../java/net/minecraft/server/EntityArrow.java | 2 +- - src/main/java/net/minecraft/server/World.java | 10 +- + src/main/java/net/minecraft/server/World.java | 3 +- .../java/org/bukkit/craftbukkit/CraftWorld.java | 13 ++ src/main/java/org/bukkit/craftbukkit/Spigot.java | 149 +++++++++++++++++++++ .../java/org/bukkit/event/WorldTimingsHandler.java | 2 + src/main/resources/configurations/bukkit.yml | 3 + - 7 files changed, 185 insertions(+), 2 deletions(-) + 7 files changed, 178 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java index d0a58f8..9da5035 100644 @@ -57,7 +57,7 @@ index 916b9dc..bdd18f6 100644 public int shake = 0; public Entity shooter; diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index cd7ad64..53834a9 100644 +index 9f05a52..b1ccf1f 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -1241,6 +1241,7 @@ public abstract class World implements IBlockAccess { @@ -68,21 +68,7 @@ index cd7ad64..53834a9 100644 timings.entityTick.startTiming(); // Spigot for (i = 0; i < this.entityList.size(); ++i) { entity = (Entity) this.entityList.get(i); -@@ -1405,6 +1406,13 @@ public abstract class World implements IBlockAccess { - if (entity == null) { - return; - } -+ if (!entity.isActivated && !org.bukkit.craftbukkit.Spigot.checkIfActive(entity)) { -+ if (entity.vehicle == null) { -+ entity.ticksLived++; -+ } -+ return; -+ } -+ entity.isActivated = entity.defaultActivationState; - try { - tickEntity(entity, flag); - } catch (Exception e) { -@@ -1434,7 +1442,7 @@ public abstract class World implements IBlockAccess { +@@ -1404,7 +1405,7 @@ public abstract class World implements IBlockAccess { int j = MathHelper.floor(entity.locZ); byte b0 = 32; @@ -137,7 +123,7 @@ index 21bd64a..a083ae4 100644 public Block getBlockAt(int x, int y, int z) { diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java -index 6eeabec..2a5fd45 100644 +index 1ead152..a5b05ed 100644 --- a/src/main/java/org/bukkit/craftbukkit/Spigot.java +++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java @@ -1,7 +1,10 @@ @@ -150,8 +136,8 @@ index 6eeabec..2a5fd45 100644 +import java.util.List; public class Spigot { - public static void initialize(CraftServer server, SimpleCommandMap commandMap, YamlConfiguration configuration) { -@@ -36,5 +39,151 @@ public class Spigot { + +@@ -27,5 +30,151 @@ public class Spigot { if (server.chunkGCPeriod == 0) { server.getLogger().severe("[Spigot] You should not disable chunk-gc, unexpected behaviour may occur!"); } @@ -323,10 +309,10 @@ index bb0c191..6a4a05e 100644 } } diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml -index 3122a14..5933a88 100644 +index 548f7c1..eea3265 100644 --- a/src/main/resources/configurations/bukkit.yml +++ b/src/main/resources/configurations/bukkit.yml -@@ -50,6 +50,9 @@ world-settings: +@@ -47,6 +47,9 @@ world-settings: sugar-growth-modifier: 100 tree-growth-modifier: 100 mushroom-growth-modifier: 100 diff --git a/CraftBukkit-Patches/0027-Infrequently-send-tab-list-updates.patch b/CraftBukkit-Patches/0026-Infrequently-send-tab-list-updates.patch similarity index 90% rename from CraftBukkit-Patches/0027-Infrequently-send-tab-list-updates.patch rename to CraftBukkit-Patches/0026-Infrequently-send-tab-list-updates.patch index b7d040f659..8099a66d2a 100644 --- a/CraftBukkit-Patches/0027-Infrequently-send-tab-list-updates.patch +++ b/CraftBukkit-Patches/0026-Infrequently-send-tab-list-updates.patch @@ -1,4 +1,4 @@ -From a5d69c6fac6168ba145722a1e79027428c015bc1 Mon Sep 17 00:00:00 2001 +From 4210bd504bcd504a8557dd1e3c5cd584ea8086ad Mon Sep 17 00:00:00 2001 From: md_5 Date: Sat, 16 Feb 2013 19:05:15 +1100 Subject: [PATCH] Infrequently send tab list updates. @@ -36,7 +36,7 @@ index d13fa19..3fc66aa 100644 public void sendAll(Packet packet) { diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java -index 2a5fd45..e0ecf21 100644 +index a5b05ed..8c67fc3 100644 --- a/src/main/java/org/bukkit/craftbukkit/Spigot.java +++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java @@ -7,6 +7,7 @@ import org.bukkit.configuration.file.YamlConfiguration; @@ -44,10 +44,10 @@ index 2a5fd45..e0ecf21 100644 public class Spigot { + public static boolean tabPing = false; + public static void initialize(CraftServer server, SimpleCommandMap commandMap, YamlConfiguration configuration) { - commandMap.register("bukkit", new org.bukkit.craftbukkit.command.RestartCommand("restart")); commandMap.register("bukkit", new org.bukkit.craftbukkit.command.TicksPerSecondCommand("tps")); -@@ -40,6 +41,7 @@ public class Spigot { +@@ -31,6 +32,7 @@ public class Spigot { server.getLogger().severe("[Spigot] You should not disable chunk-gc, unexpected behaviour may occur!"); } @@ -56,10 +56,10 @@ index 2a5fd45..e0ecf21 100644 /** diff --git a/src/main/resources/configurations/bukkit.yml b/src/main/resources/configurations/bukkit.yml -index 5933a88..8ddda07 100644 +index eea3265..a35f3dd 100644 --- a/src/main/resources/configurations/bukkit.yml +++ b/src/main/resources/configurations/bukkit.yml -@@ -35,6 +35,7 @@ settings: +@@ -32,6 +32,7 @@ settings: spam-exclusions: - /skill map-send-interval: 10000 diff --git a/CraftBukkit-Patches/0028-Optimize-getTileEntities-performance.patch b/CraftBukkit-Patches/0027-Optimize-getTileEntities-performance.patch similarity index 96% rename from CraftBukkit-Patches/0028-Optimize-getTileEntities-performance.patch rename to CraftBukkit-Patches/0027-Optimize-getTileEntities-performance.patch index b74f9d45c2..104c525f2e 100644 --- a/CraftBukkit-Patches/0028-Optimize-getTileEntities-performance.patch +++ b/CraftBukkit-Patches/0027-Optimize-getTileEntities-performance.patch @@ -1,4 +1,4 @@ -From 67f4933a29bc5317157dbb033c8400ca26df6909 Mon Sep 17 00:00:00 2001 +From f7fb19c794aab4eb7dcd6d052f367830714a79f3 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Wed, 20 Feb 2013 23:07:53 -0500 Subject: [PATCH] Optimize getTileEntities performance diff --git a/CraftBukkit-Patches/0029-Improved-tile-entity-lookup-for-chunk-sending.patch b/CraftBukkit-Patches/0028-Improved-tile-entity-lookup-for-chunk-sending.patch similarity index 96% rename from CraftBukkit-Patches/0029-Improved-tile-entity-lookup-for-chunk-sending.patch rename to CraftBukkit-Patches/0028-Improved-tile-entity-lookup-for-chunk-sending.patch index 41069822e8..d8599131ad 100644 --- a/CraftBukkit-Patches/0029-Improved-tile-entity-lookup-for-chunk-sending.patch +++ b/CraftBukkit-Patches/0028-Improved-tile-entity-lookup-for-chunk-sending.patch @@ -1,4 +1,4 @@ -From 58eaa4790c1875741e06017f81a32801cfc3f4ad Mon Sep 17 00:00:00 2001 +From d5d64c9cc4c90075cca6aa720e5cab3109a4e5f1 Mon Sep 17 00:00:00 2001 From: shakytom Date: Wed, 20 Feb 2013 22:34:38 -0500 Subject: [PATCH] Improved tile entity lookup for chunk sending diff --git a/CraftBukkit-Patches/0030-Metrics.patch b/CraftBukkit-Patches/0029-Metrics.-Rewrite-the-Metrics-system-to-be-closer-to-.patch similarity index 99% rename from CraftBukkit-Patches/0030-Metrics.patch rename to CraftBukkit-Patches/0029-Metrics.-Rewrite-the-Metrics-system-to-be-closer-to-.patch index 9fae1395b0..a43425586f 100644 --- a/CraftBukkit-Patches/0030-Metrics.patch +++ b/CraftBukkit-Patches/0029-Metrics.-Rewrite-the-Metrics-system-to-be-closer-to-.patch @@ -1,4 +1,4 @@ -From 9371abd26d6cac2503d48f67ce8a6580349027bd Mon Sep 17 00:00:00 2001 +From ce3485e724f259f36bb13acbfdea7e7bb381b143 Mon Sep 17 00:00:00 2001 From: md_5 Date: Sat, 23 Feb 2013 08:58:35 +1100 Subject: [PATCH] Metrics. Rewrite the Metrics system to be closer to the @@ -11,7 +11,7 @@ Subject: [PATCH] Metrics. Rewrite the Metrics system to be closer to the create mode 100644 src/main/java/org/spigotmc/Metrics.java diff --git a/src/main/java/org/bukkit/craftbukkit/Spigot.java b/src/main/java/org/bukkit/craftbukkit/Spigot.java -index e0ecf21..95ff3c1 100644 +index 8c67fc3..5729cd6 100644 --- a/src/main/java/org/bukkit/craftbukkit/Spigot.java +++ b/src/main/java/org/bukkit/craftbukkit/Spigot.java @@ -1,13 +1,19 @@ @@ -31,10 +31,10 @@ index e0ecf21..95ff3c1 100644 public class Spigot { public static boolean tabPing = false; + private static Metrics metrics; + public static void initialize(CraftServer server, SimpleCommandMap commandMap, YamlConfiguration configuration) { - commandMap.register("bukkit", new org.bukkit.craftbukkit.command.RestartCommand("restart")); commandMap.register("bukkit", new org.bukkit.craftbukkit.command.TicksPerSecondCommand("tps")); -@@ -42,6 +48,15 @@ public class Spigot { +@@ -33,6 +39,15 @@ public class Spigot { } tabPing = configuration.getBoolean("settings.tab-ping", tabPing);